Godot는 glTF 2.0을 네이티브로 지원하므로, 별도의 플러그인 없이 GLB 파일을 불러올 수 있습니다. 순서는 ".glb를 프로젝트 폴더에 복사한다"가 전부이고, 나머지는 Godot가 자동으로 가져오며 FileSystem 독에서 씬으로 드래그해 배치할 수 있습니다. 게다가 공식 문서는 지원하는 3D 형식 목록에서 glTF 2.0을 "권장(recommended)"이라고 명시하고 있습니다(출처: Godot Docs - Available 3D formats, 2026년 7월 기준).
이 글에서는 GLB를 Godot로 가져와 게임에서 쓸 수 있게 만들기까지의 흐름을 공식 문서의 내용에 따라 해설합니다. 버전은 2026년 7월 기준 안정판(Godot Engine 4.7 계열)의 문서를 기준으로 했습니다.
이 글에서 알 수 있는 것
※현재 Figmee는 업로드한 그림이나 일러스트로 피규어풍 이미지와 3D 모델 데이터(GLB / 3MF)를 생성·다운로드할 수 있는 서비스입니다. 실물 3D 프린트 제품의 판매는 준비 중(Coming Soon)입니다.
Godot가 지원하는 3D 형식
공식 문서가 꼽는 3D 씬의 지원 형식은 다음과 같습니다.
| 형식 | 위치 | 보충 |
|---|---|---|
| glTF 2.0 | 권장 | 텍스트 형식 .gltf와 바이너리 형식 .glb 모두 지원 |
| .blend | 지원 | Blender 파일을 직접 다룰 수 있음 |
| DAE(COLLADA) | 지원 | 오래전부터 쓰여 온 교환 형식 |
| OBJ(Wavefront) | 지원 | 형상 중심의 단순한 형식 |
| FBX | 지원 | 널리 쓰이는 업계 표준 형식 |
.glb에 대해서는 "glTF 바이너리 파일(.glb)은 크기가 더 작은 선택지로, 메시와 텍스처 설정을 포함한다"고 설명합니다. 텍스처까지 파일 하나에 들어가기 때문에 폴더 사이를 옮겨도 참조가 깨지지 않습니다. 이 성질은 파일을 주고받을 때 큰 장점이 됩니다. GLB라는 형식 자체는 GLB 파일이란?에서 해설하고 있습니다.
Unity가 기본으로는 glTF를 지원하지 않아 공식 패키지를 추가해야 하는 데 비해, Godot는 처음부터 지원합니다. 이것이 두 엔진의 알기 쉬운 차이입니다(Unity 쪽 순서는 Unity에서 GLB를 가져오는 방법을 참고하세요).
왜 glTF 2.0이 권장일까
이유는 세 가지로 정리할 수 있습니다.
1. 참조가 깨지지 않는다. .glb는 메시와 텍스처를 파일 하나에 담습니다. 텍스처를 별도 파일로 두는 형식에서는 폴더 구성을 바꾸는 순간 이미지 링크가 끊겨 새하얀 모델이 되지만, GLB에서는 이런 일이 일어나지 않습니다.
2. 실시간 표시를 전제로 설계되었다. glTF는 Khronos Group이 정한, 실행 중에 빠르게 불러와 표시하기 위한 형식입니다. 게임 엔진이 다루는 목적과 애초에 일치합니다.
3. 활용처가 넓다. 같은 GLB를 웹 브라우저 표시, 다른 엔진, 3D 뷰어 등 다른 용도에도 그대로 쓸 수 있습니다. 엔진 전용 형식으로 변환해 버리면 이런 범용성은 사라집니다.
Godot에서 GLB를 가져오는 순서(소요 시간 3분)
- 프로젝트 폴더에
.glb를 복사한다(30초). Godot 에디터를 연 상태에서 OS의 파일 관리자로 프로젝트 폴더(res://아래)에 파일을 넣습니다. 에디터로 돌아오면 FileSystem 독에 자동으로 나타납니다. - FileSystem 독에서 파일을 선택한다(10초). 선택하면 화면의 Import 독에 가져오기 설정이 표시됩니다.
- Import 독의 설정을 확인한다(1분). 설정은 몇 개의 섹션으로 나뉘어 있습니다.
- Root Type / Name: 루트 노드의 타입과 이름
- Meshes: 탄젠트 생성, LOD, 라이트 베이크에 관한 설정
- Animation: 프레임 레이트와 트랙 최적화
- Import Script: 가져온 뒤의 처리를 자동화하는 스크립트
- 설정을 바꿨다면
Reimport를 누른다(20초). 누르기 전까지 변경 사항은 반영되지 않습니다. - 씬으로 드래그 앤 드롭한다(10초). FileSystem 독에서 열려 있는 씬의 뷰나 노드 트리로 드래그합니다. 공식 문서에 따르면 이 경우 루트 노드의 이름이 파일 이름에 맞춰 바뀝니다.
- 표시를 확인한다(1분). 새까맣게 보인다면 씬에 라이트가 없거나 환경(WorldEnvironment)이 설정되지 않았을 가능성이 있습니다.
더 세세하게 조정하고 싶을 때는 Advanced Import Settings(고급 가져오기 설정) 대화 상자를 엽니다. FileSystem 독에서 3D 씬을 더블 클릭하거나 Import 독의 Advanced… 버튼으로 열 수 있습니다(출처: Godot Docs - Import configuration, 2026년 7월 기준). 개별 메시나 머티리얼마다 설정을 덮어쓰고 싶을 때 이곳을 씁니다.
알아 두어야 할 사양: 원본 파일에는 덮어쓸 수 없다
Godot에서 3D 데이터를 다룰 때 가장 먼저 이해해 두면 좋은 사양이 있습니다. 공식 문서는 이렇게 씁니다. "Godot는 자체 씬 형식(.tscn / .scn)으로만 저장할 수 있으며, 원본 3D 씬 파일에 덮어써서 저장할 수는 없다."
가져온 GLB는 Godot 내부에서 PackedScene(메시·머티리얼·스켈레톤·애니메이션을 포함한 Godot 네이티브 형식의 씬)으로 다뤄집니다. 즉 Godot에서 가한 변경은 원본 .glb에 되돌아가지 않습니다.
실무에서의 의미는 두 가지입니다.
- 원본 데이터는 항상 "소스"로 따로 관리한다. Blender 프로젝트나 생성 원본 GLB를 남겨 둡니다.
- Godot 쪽 작업은 가져온 씬을 상속한 별도 씬에서 한다. 이렇게 해 두면 원본 데이터를 교체해 다시 가져와도 작업 내용이 사라지지 않습니다.
AI로 생성한 3D 모델은 다시 생성하면 다른 변형을 얻을 수 있습니다. "모델을 교체한다"는 전제로 구조를 짜 두면 나중에 되돌아가는 작업이 잘 생기지 않습니다. 편집 경로 전체에 대한 생각은 AI로 만든 3D 모델 편집 방법 총정리에 정리해 두었습니다.
게임에서 쓰기: 노드 이름 접미사로 충돌 판정 만들기
Godot에는 원본 데이터의 노드 이름에 붙은 접미사(서픽스)를 보고 가져올 때 노드의 종류를 바꾸는 편리한 구조가 있습니다. 접미사는 -, $, _ 중 하나로 구분할 수 있으며 대소문자는 구별하지 않습니다(출처: Godot Docs - Node type customization, 2026년 7월 기준).
| 접미사 | 가져올 때의 동작 |
|---|---|
-col | 삼각형 메시의 정적 충돌 판정을 자식 노드로 생성한다 |
-convcol | 삼각형 메시 대신 ConvexPolygonShape3D를 생성한다 |
-colonly | 메시를 제거하고 StaticBody3D의 충돌 판정만 남긴다 |
-convcolonly | -colonly와 같지만 볼록 분해를 사용한다 |
-rigid | 메시를 RigidBody3D로 가져온다 |
-navmesh | 내비게이션 메시로 변환한다 |
-occ / -occonly | 오클루더(Occluder3D)를 생성 / 메시를 오클루더로 변환한다 |
-noimp | 타입과 관계없이 가져올 때 노드와 애니메이션을 제거한다 |
-vcol | 버텍스 컬러 플래그를 켠다 |
-alpha | 투명(TRANSPARENCY_ALPHA) 모드를 적용한다 |
-loop / -cycle | 애니메이션의 루프 플래그를 설정한다 |
여기에 함정이 있습니다. 접미사는 "원본 데이터의 노드 이름"에 붙어 있어야 합니다. AI로 생성한 3D 모델의 노드 이름은 자동으로 정해지므로, 그대로는 충돌 판정이 붙지 않습니다. 방법은 두 가지입니다.
- Blender에서 이름을 바꾼 뒤 내보낸다(권장). GLB를 일단 Blender에서 열고 오브젝트 이름을
Character-col처럼 바꾼 다음 다시 GLB로 내보냅니다. 이후에는 다시 가져오기만 하면 충돌 판정이 붙은 상태가 됩니다. - Godot 쪽에서 직접 추가한다. 배치한 씬에 StaticBody3D와 CollisionShape3D를 직접 추가합니다. 한 개뿐이라면 이쪽이 더 빠를 때도 있습니다.
삼각형 메시의 충돌 판정은 형태에 충실하지만 처리가 무거워집니다. 움직이는 캐릭터에는 단순한 형태(캡슐·박스·볼록 형태)를 쓰고, 움직이지 않는 배경 오브젝트에만 삼각형 메시를 쓰는 것이 부하 면에서 다루기 쉬운 배분입니다.
가져온 뒤 확인할 3가지
1. 스케일
배치한 순간 지나치게 크거나 작을 때가 있습니다. 원본 데이터의 치수 때문이며 오류가 아닙니다. 기존 오브젝트나 상정한 캐릭터의 키와 나란히 놓고 상대적으로 맞춥니다.
2. 머티리얼의 보이는 모습
glTF의 머티리얼은 물리 기반(PBR)으로, 금속감(메탈릭)과 표면의 거칠기(러프니스)로 질감이 정해집니다. 툰 스타일 게임에서는 이 음영이 그림체와 어울리지 않을 때가 있습니다. 그럴 때는 Godot 쪽에서 머티리얼을 교체합니다. 색과 질감의 원리는 텍스처란?에서 해설하고 있습니다.
3. 면의 수
AI 생성 모델이나 공들여 만든 모델은 실시간 표시 기준으로 보면 면이 많을 때가 있습니다. 동시에 몇 개를 표시할지를 기준으로, 필요하다면 내보내기 전에 줄입니다(폴리곤 수란?). Import 독의 Meshes 섹션에는 LOD 설정도 있으므로, 거리에 따른 단순화를 맡기는 방법도 있습니다.
GLB를 가져올 수 없거나 표시가 이상할 때의 대처법
| 증상 | 생각할 수 있는 원인 | 대처 |
|---|---|---|
| FileSystem 독에 파일이 나타나지 않는다 | 에디터가 폴더 변경을 감지하지 못했다 | 에디터에 한 번 포커스를 되돌린다. 프로젝트를 다시 연다 |
| 설정을 바꿨는데 반영되지 않는다 | Reimport를 누르지 않았다 | Import 독에서 Reimport를 실행한다 |
| 새까맣게 아무것도 안 보인다 | 씬에 라이트나 환경이 없다 | 라이트(DirectionalLight3D 등)나 WorldEnvironment를 추가한다 |
| 통과해 버린다·지면 위에 서지 않는다 | 충돌 판정이 생성되지 않았다 | 원본 데이터에 -col을 붙여 내보내거나 직접 추가한다 |
| 동작이 무겁다 | 면의 수·삼각형 메시의 충돌 판정 | LOD를 쓴다. 충돌 판정을 단순한 형상으로 바꾼다 |
| 원본 파일을 편집해도 변화가 없다 | 다른 복사본을 편집하고 있다 | res:// 아래의 실제 파일을 교체해 다시 가져온다 |
| 포즈를 바꿀 수 없다 | 본이 들어 있지 않다 | 리깅이라는 별도 공정이 필요하다 |
마지막 항목은 AI로 생성한 3D 모델을 쓸 때 반드시 부딪히는 부분입니다. 그림 한 장으로 생성한 모델은 뼈가 들어 있지 않은 정지 메시이므로, 그대로는 걷게 하거나 포즈를 바꿀 수 없습니다. 전시·배경·소품·회전 표시 같은 용도라면 추가 공정 없이 쓸 수 있지만, 캐릭터로 움직이고 싶다면 리깅 공정이 따로 필요하다는 점을 계획에 넣어 두세요(리깅이란?).
자주 묻는 질문
Godot에서 GLB를 불러오려면 플러그인이 필요한가요?
필요 없습니다. glTF 2.0은 Godot가 기본으로 지원하며, 공식 문서에서도 권장 형식으로 꼽고 있습니다. .glb(바이너리)와 .gltf(텍스트) 모두 지원합니다. .gltf를 쓸 때는 딸린 이미지 파일 등도 함께 배치하세요. .glb는 파일 하나에 들어 있으므로 그런 수고가 없습니다.
가져온 모델에 충돌 판정을 붙이려면?
원본 데이터의 노드 이름에 -col(삼각형 메시의 충돌 판정을 자식으로 생성)이나 -colonly(메시를 지우고 충돌 판정만 남김) 같은 접미사를 붙여 내보내면 가져올 때 자동으로 만들어집니다. 이름을 바꿀 수 없다면 Godot 쪽에서 StaticBody3D와 CollisionShape3D를 직접 추가합니다.
Godot에서 편집한 내용을 원본 GLB에 되돌릴 수 있나요?
되돌릴 수 없습니다. Godot는 자체 씬 형식(.tscn / .scn)으로만 저장할 수 있는 사양입니다. 원본 데이터는 따로 보관하고, Godot 쪽 작업은 상속한 씬에서 하는 것이 안전한 진행 방법입니다. 형태 자체를 바꾸고 싶다면 Blender 등 외부 소프트웨어에서 편집한 뒤 다시 내보내 Godot로 다시 가져옵니다.
AI로 생성한 3D 모델을 시험해 본다면 Unity와 Godot 중 어느 쪽이 간편한가요?
"불러오기까지의 단계 수"만 보면 Godot입니다. glTF 2.0을 네이티브로 지원하므로 파일을 넣기만 하면 표시까지 진행할 수 있습니다. Unity는 공식 패키지를 하나 추가하는 수고가 들지만, 추가한 뒤의 다루기 쉬움은 다르지 않습니다. 이미 어느 한쪽 엔진에서 프로젝트가 돌아가고 있다면 그 엔진에 맞추는 것이 합리적입니다. 둘 다 무료로 시작할 수 있으니, 우선 한 개를 실제로 불러와 표시와 부하를 직접 눈으로 확인하는 데서 시작하면 충분합니다.
가져온 모델의 일부만 쓰고 싶을 때는?
Advanced Import Settings 대화 상자를 열면 메시나 머티리얼을 하나하나 확인하면서 설정을 덮어쓸 수 있습니다. 필요 없는 노드는 원본 데이터 쪽 이름에 -noimp를 붙여 내보내면 가져올 때 제거됩니다. 배치한 뒤 필요 없는 노드를 삭제하는 방법도 괜찮지만, 모델을 교체할 때마다 같은 작업이 생기므로 반복할 거라면 원본 데이터 쪽에서 처리해 두는 편이 수고가 줄어듭니다.
정리
Godot로 GLB를 가져오는 작업은 ① 프로젝트 폴더에 .glb를 넣는다 → ② Import 독에서 설정을 확인하고 Reimport → ③ FileSystem 독에서 씬으로 드래그의 3단계로 끝납니다. glTF 2.0은 네이티브 지원이자 권장 형식이므로 별도의 플러그인은 필요 없습니다.
기억해 둘 점은 두 가지입니다. 하나는 원본 3D 파일에는 덮어써서 저장할 수 없다는 사양입니다. 원본 데이터는 소스로 관리하고, 작업은 상속 씬에서 합니다. 또 하나는 노드 이름 접미사에 의한 자동 생성으로, -col 등을 원본 데이터 쪽에 붙여 두면 충돌 판정 작성을 자동화할 수 있습니다. 이 두 가지를 처음부터 이해해 두면 모델을 교체하며 개발을 진행해도 구조가 무너지지 않습니다.




