UltKit

GLB FBX 변환

GLB는 웹에서 모델을 주고받는 형식이고, FBX는 많은 게임·애니메이션 파이프라인이 가져오는 형식입니다. 여기서 .glb를 변환하면 텍스처가 포함된 바이너리 FBX가 만들어져 Unity, Unreal Engine, Maya에서 바로 쓸 수 있습니다.

3D 모델 변환

또는 STL, OBJ, MTL … 파일을 여기에 끌어다 놓으세요 ·

파일당 최대 95 MB· 최대 20개 파일· 30분 뒤 삭제

출력

파일은 UltKit 서버에서 처리되며 30분 뒤 삭제됩니다.

사용 방법

  1. 1

    .glb 업로드

    GLB를 하나 또는 최대 20개, 개당 95 MB까지 추가합니다. .bin과 텍스처 파일이 따로 있는 .gltf는 GLB 하나로 묶은 뒤 올리는 것이 가장 간편합니다.

  2. 2

    바이너리 FBX와 텍스처 유지

    변환할 형식은 FBX, 파일 인코딩은 바이너리, 텍스처 및 재질 유지는 켜짐으로 되어 있어 이미지가 FBX 안에 포함됩니다. 모델이 뒤로 누운 채 들어오는 경우가 아니라면 위쪽 축은 유지로 두세요.

  3. 3

    변환 후 가져오기

    FBX로 변환을 누른 뒤, 파일을 엔진의 에셋 폴더로 끌어다 놓거나 Blender의 File › Import › FBX로 가져옵니다.

GLB와 FBX: 개방형 웹 형식과 Autodesk 교환 형식

GLB는 glTF 2.0의 바이너리 형태입니다. glTF 2.0은 Khronos Group이 2017년에 공개했고 2022년에 국제 표준 ISO/IEC 12113이 되었습니다. .glb 파일 하나에는 12바이트 헤더, 장면을 설명하는 JSON, 형상과 이미지를 담은 바이너리 청크가 들어 있습니다. 렌더러가 빠르게 불러오도록 설계되어 단위는 미터, 위쪽은 Y축이며, 재질은 three.js, Babylon.js, Android Scene Viewer가 똑같이 렌더링하는 물리 기반 metallic-roughness 모델을 따릅니다.

FBX는 Kaydara의 모션 캡처 소프트웨어 FiLMBOX의 파일 형식에서 시작했으며 2006년부터 Autodesk 소유입니다. 비공개 형식이라 주로 Autodesk FBX SDK를 통해서만 문서화되어 있지만, 여전히 게임 엔진과 애니메이션 도구의 기본 교환 형식입니다. Unity의 모델 임포터는 FBX를 기본으로 읽고, Unreal Engine의 가져오기 옵션은 FBX를 중심으로 짜여 있으며, Maya와 3ds Max는 리깅된 캐릭터를 스튜디오 간에 옮길 때 FBX를 씁니다.

GLB FBX 변환 후 남는 것

glTF 기능별 FBX 변환 결과
GLB에서FBX에서가져온 뒤 확인할 것
메시, UV, 노멀그대로 유지없음
노드 계층과 이름유지피벗 위치
스켈레톤과 스킨 웨이트본과 스킨 클러스터엔진의 리그 유형
애니메이션 클립, 모프 타깃애니메이션 테이크, 블렌드 셰이프클립 이름과 길이
베이스 컬러, 노멀, 이미시브 맵FBX 재질에 포함된 텍스처텍스처 연결
금속성·거칠기 값근사값으로 변환금속성·거칠기 맵 다시 연결
클리어코트, 투과 같은 확장 기능FBX에 대응 기능 없음엔진에서 다시 구성

Unity, Unreal Engine, Blender로 FBX 가져오기

Unity

  1. 01.fbx를 Project 창의 Assets 폴더로 끌어다 놓습니다.
  2. 02캐릭터라면 Rig 탭에서 Humanoid 또는 Generic을 고릅니다.
  3. 03맵을 편집하려면 Materials 탭에서 Extract Textures를 사용합니다.

Unreal Engine

  1. 01Content Browser에서 Import를 누르고 .fbx를 고릅니다.
  2. 02리깅된 모델이라면 Import Animations를 켭니다.
  3. 03크기가 100배 차이 나면 Import Uniform Scale을 확인합니다.

Blender

  1. 01File › Import › FBX (.fbx) 메뉴를 사용합니다.
  2. 02Shading 작업 공간을 열어 재질을 확인합니다.
  3. 03본 방향이 틀어졌다면 Automatic Bone Orientation을 사용합니다.

GLB를 FBX로 변환한 뒤 생기는 문제는 대부분 형상이 아니라 재질에서 나옵니다. glTF는 앰비언트 오클루전, 거칠기, 금속성을 이미지 하나의 빨강·초록·파랑 채널에 묶어 넣는 경우가 많습니다. FBX의 전통적인 재질 모델에는 이렇게 묶인 텍스처를 넣을 자리가 없어서, 엔진은 이를 별도 이미지로 가져오고 직접 연결해야 합니다. GLB 안에 WebP로 저장된 텍스처도 주의할 점입니다. WebP를 읽는 FBX 임포터가 드물어 PNG나 JPEG여야 합니다. 그 장단점은 WebP를 JPG로 바꿔야 할 때와 이유에서 설명합니다.

목적지가 엔진이 아니라 렌더러나 3D 프린터용 정적 메시라면 FBX가 맞지 않을 수 있습니다. 단순 메시 형식이 무엇을 유지하는지는 FBX OBJ 변환에서 확인하세요. iPhone의 Apple AR Quick Look용이라면 같은 GLB로 GLB USDZ 변환을 사용하세요.

GLB

glTF 바이너리(GLB)

GLB는 Khronos Group이 2017년에 발표한 3D 전송 형식 glTF 2.0의 바이너리 버전입니다. 형상, PBR 재질, 텍스처, 애니메이션을 빠르게 불러오도록 설계된 작고 단일한 파일 하나에 담습니다. 웹 3D, AR 뷰어, Android Scene Viewer, 온라인 3D 모델 마켓에서 널리 쓰입니다. 일부 오래된 데스크톱 3D 도구와 CAD 프로그램은 가져오지 못합니다.

압축 방식
–
투명도
–
애니메이션
예
도입 연도
2017 · Khronos Group
GLB 변환

FBX

Filmbox(FBX)

FBX는 Kaydara가 자사의 Filmbox 소프트웨어용으로 만든 3D 형식으로, 2006년부터 Autodesk가 소유하고 있습니다. 메시, 재질, 텍스처, 스켈레톤, 스키닝, 카메라, 조명, 애니메이션을 파일 하나에 저장합니다. Unity, Unreal Engine, Maya, 3ds Max, Blender에서 게임 에셋을 주고받는 표준 형식입니다. 독점 형식이라 내보내기 도구와 SDK 버전에 따라 동작이 다를 수 있습니다.

압축 방식
–
투명도
–
애니메이션
예
도입 연도
Kaydara (now Autodesk)
FBX 변환

GLB를 FBX로 변환하는 이유는 웹, 마켓플레이스, 3D 스캐너 앱에서 받은 모델을 Autodesk 형식 중심으로 짜인 Unity, Unreal Engine, Maya, 3ds Max 작업 흐름으로 옮기기 위해서입니다.

GLB FBX 변환 자주 묻는 질문

FBX로 변환한 뒤에도 GLB의 애니메이션이 재생되나요?

스켈레탈 애니메이션과 블렌드 셰이프(모프 타깃) 애니메이션은 두 형식 모두에 있으므로, GLB에 저장된 클립은 FBX에도 들어갈 자리가 있습니다. 가져온 뒤 엔진의 애니메이션 미리보기에서 클립을 하나씩 확인하세요. 특히 GLB에 클립이 여러 개였다면 일부 임포터가 이를 나누거나 이름을 바꾸기 때문입니다.

변환 후 Unity에서 재질이 회색이나 플라스틱처럼 보이는 이유는 무엇인가요?

glTF 재질은 금속성(metallic)과 거칠기(roughness) 값을 쓰고 이를 텍스처 하나에 묶어 두는 경우가 많지만, FBX 재질은 디퓨즈와 스페큘러를 중심으로 설계되었습니다. 베이스 컬러와 노멀 맵은 대개 그대로 넘어오지만, 금속성과 거칠기는 엔진의 재질 편집기에서 다시 연결해야 할 수 있습니다.

Blender에서 쓰려면 GLB를 FBX로 변환해야 하나요?

여는 것만이라면 필요 없습니다. Blender는 2.80 버전부터 glTF 2.0 임포터를 기본 제공하므로 File › Import › glTF 2.0으로 GLB를 바로 읽습니다. 파이프라인의 다음 도구가 FBX를 요구할 때만 변환하세요.

바이너리 FBX와 ASCII FBX 중 무엇을 골라야 하나요?

바이너리입니다. 더 작고 더 빨리 불러오며 Unity, Unreal, Maya가 기대하는 형식입니다. Blender의 FBX 임포터는 ASCII FBX를 아예 읽지 못합니다. 파일을 텍스트로 읽어야 하는 스크립트나 비교 도구가 있을 때만 ASCII를 고르세요.

Unreal에서 FBX 모델이 100배 크거나 작게 나오는 이유는 무엇인가요?

glTF는 미터 단위, Unreal은 센티미터 단위를 쓰고, FBX에는 임포터마다 다르게 해석하는 단위 배율이 들어 있습니다. 크기가 100배 차이 나면 가져오기의 균일 배율(import uniform scale)을 조정하거나 변환 전에 모델 단위를 설정한 뒤, 치수를 아는 부분으로 확인하세요.