웹 및 게임 엔진용 3D 애니메이션 내보내기 방법
웹 또는 게임 엔진용 3D 애니메이션을 내보내려면 glTF — GLB는 glTF의 단일 파일 바이너리 형식입니다 — 또는 FBX를 사용하세요. 둘 다 노드 계층, 스켈레톤, 스킨 웨이트 및 키프레임 클립을 저장합니다. glTF는 브라우저와 대부분의 엔진이 기본적으로 읽는 개방형 표준이며, FBX는 Maya, 3ds Max, Unity 및 Unreal 파이프라인에서 오랫동안 사용되어 온 교환 형식입니다. 내보내기 시 무엇이 유지되는지는 익스포터에 따라 다르므로, 제약 조건, IK 및 절차적 모션은 먼저 키프레임으로 베이크해야 합니다.
간단한 답변
형식이 저장할 수 없는 IK, 제약 조건, 드라이버, 시뮬레이션 등은 키프레임으로 베이크하고, 클립의 이름과 길이를 확인한 다음, 웹 및 대부분의 최신 엔진용으로는 GLB를, 파이프라인에서 예상하는 경우 FBX를 내보내세요. 트랜스폼, 스켈레탈 애니메이션 및 셰이프 키 웨이트는 전달되지만, 릭 컨트롤, 사용자 지정 곡선 및 키 지정된 재질 값은 일반적으로 전달되지 않습니다. 파일을 사용하기 전에 대상에서 열어 확인하세요.
단계별
- 1
포맷이 저장할 수 없는 것을 베이크하기
파일 형식은 키프레임을 저장하며, 키프레임을 생성한 시스템은 저장하지 않습니다. IK 솔버, 제약 조건, 드라이버, 표현식 및 시뮬레이션은 내보내기 전에 일반 키로 샘플링되어야 합니다. 그렇지 않으면 해당 부분이 움직임 없이 파일에 로드됩니다. Studio에서는 리깅 패널의 Bake IK와 애니메이트 ▸ Bake motion to keyframes… (드라이버용)을 통해 이 작업을 수행할 수 있습니다.
- 2
클립 이름 지정 및 다듬기
엔진은 파일 내 각 애니메이션을 이름별로 별도의 클립으로 가져옵니다. 프로그래머가 인식할 수 있는 이름 — Walk, Idle, Open — 을 클립에 부여하고 각 클립의 길이를 확인하세요. 끝에서 20프레임 뒤에 불필요한 키가 있는 클립은 20프레임 동안 아무것도 재생하지 않을 것이기 때문입니다.
- 3
형식 선택
웹 및 Godot, Blender, three.js, Babylon.js의 경우 GLB를 사용하세요. 이들은 glTF를 기본적으로 읽습니다. Unity는 glTFast와 같은 패키지를 통해 읽고, Unreal도 가져올 수 있습니다. 파이프라인이 FBX를 중심으로 구축된 경우 — Maya, 3ds Max 및 많은 Unity, Unreal 프로젝트에서 FBX를 사용합니다.
- 4
내보내기
Studio에서 파일(File) ▸ 3D 모델 내보내기(Export 3D model)…를 선택하고 애니메이션을 지원하는 두 가지 형식인 GLB 또는 glTF를 선택하세요. 작업 중이던 클립이 먼저 포함되어 장면의 모든 클립이 기록됩니다. 웹용 내보내기(Export for the web)…는 애니메이션을 재생하는 페이지, 임베드, React 컴포넌트 또는 three.js 모듈을 생성합니다.
- 5
대상에서 확인
파일을 해당 엔진이나 뷰어로 가져와 모든 클립을 재생해 보세요. 스케일, 방향, 루핑, 이징된 모션이 여전히 부드러운지 확인하세요 — 아래의 문제점들은 여기서 나타나거나 전혀 나타나지 않을 수 있습니다.
애니메이션을 위한 glTF 및 GLB
glTF 2.0은 애니메이션을 채널로 저장하며, 각 채널은 노드의 변환, 회전 또는 스케일, 또는 메시의 모프 타겟(셰이프 키) 웨이트를 대상으로 합니다. 각 채널은 LINEAR, STEP 또는 CUBICSPLINE 보간을 사용하여 키프레임을 샘플링하며, 시간은 프레임 대신 초 단위로 저장되고, 회전은 쿼터니언입니다. 스킨드 메시는 조인트, 역 바인드 매트릭스, 그리고 세트당 정점마다 최대 4개의 웨이트를 포함합니다.
이는 의도적으로 범위가 좁게 설계되어 glTF가 거의 모든 곳에서 변환 없이 로드되는 이유입니다. 키프레임된 재질 색상, 조명 강도, 카메라 초점 거리 등 그 외의 모든 것은 KHR_animation_pointer와 같은 확장이 필요하며, 확장 지원은 엔진마다 다릅니다. glTF는 또한 정의상 미터 단위에 Y-up 방식이므로, 잘못된 크기로 로드되는 경우가 거의 없습니다.
애니메이션을 위한 FBX
FBX는 Autodesk의 독점 형식으로, 지난 20년간 DCC와 게임 엔진 간에 리깅되고 애니메이션된 캐릭터를 이동시키는 데 기본적으로 사용되어 왔습니다. 스켈레톤, 스키닝, 블렌드 셰이프, 여러 테이크 및 프레임 속도를 저장하며, Mixamo, Unity 및 Unreal 모두 FBX를 능숙하게 지원합니다.
FBX의 단점은 유연성을 제공하는 바로 그 특징에서 비롯됩니다. 단위 및 축 규칙이 익스포터마다 다르기 때문에, 한 도구에서 내보낸 FBX 파일이 100배 더 크거나 뒤집힌 상태로 로드될 수 있으며, SDK 버전마다 세부 사항이 다릅니다. Maya 및 Mixamo의 많은 파일은 센티미터 단위인 반면, glTF는 미터 단위입니다.
무엇이 전달되고 무엇이 전달되지 않는가
안정적으로 전달되는 것: 오브젝트 변환, 본의 스켈레탈 애니메이션, 셰이프 키 웨이트 및 클립 구조. 일반적으로 손실되는 것: IK 및 제약 조건, 드라이버 및 표현식, 커스텀 릭 컨트롤, 그리고 키프레임된 재질, 조명 및 카메라 렌즈 값. 첫 번째 손실 그룹은 키로 베이크하고, 두 번째 그룹의 경우 대상이 확장을 지원하는지 또는 효과를 다시 구축해야 하는지 확인하세요.
커브는 미묘한 부분입니다. 익스포터마다 베지어 탄젠트를 유지하는지, 큐빅 스플라인 데이터를 작성하는지, 또는 커브를 키로 샘플링하는지 다릅니다. 설정한 키만 선형 보간으로 작성하는 익스포터는 넓게 간격이 벌어진 키 사이의 강한 이징을 평탄하게 만듭니다. 엔진에서 정확한 이징이 중요하다면, 이징 내부에 키를 추가하거나 프레임 속도로 모션을 베이크하세요.
Mixos Studio에서 애니메이션 내보내기
Studio의 GLB 및 glTF 내보내기는 키프레임된 오브젝트 변환 및 셰이프 키 웨이트를 포함하며, 각 오브젝트가 자체 로컬 공간에서 애니메이션되도록 씬 계층을 유지하고, 씬의 모든 클립을 작성합니다. FBX, OBJ, STL 및 USDZ 대상은 애니메이션을 포함하지 않으며, 내보내기 대화 상자에서 다운로드 전에 이를 알려줍니다.
두 가지 제한 사항을 알아두면 좋습니다. 키는 설정한 시간에 작성되며 파일 내에서 선형으로 보간되므로, 엔진이 정확하게 재현해야 하는 경우 긴 이징 내부에 키를 추가하세요. 그리고 키프레임된 재질, 조명 및 카메라 값은 코어 glTF에 채널이 없기 때문에 씬에 남아 있습니다. .mxs 씬 파일은 모델 형식이 저장할 수 없는 모든 것 — 제너레이터, 모디파이어, 애니메이션 및 렌더 설정 — 을 대상이 Studio 자체일 경우를 대비하여 보관합니다. 내보내기는 유료 플랜에서 가능하며, 애니메이션 작업 및 미리보기는 무료입니다.
자주 묻는 질문
애니메이션에 GLB와 FBX 중 어느 것이 더 좋나요?
웹과 Godot, three.js처럼 glTF를 기본적으로 읽는 엔진에는 GLB가 적합합니다 — 이는 개방형 표준이며, 미터법을 사용하고 도구 간에 일관성이 있습니다. Maya, 3ds Max, 그리고 많은 Unity 및 Unreal 프로젝트와 같이 FBX를 중심으로 파이프라인이 구축된 곳에는 FBX를 사용합니다. 둘 다 스켈레탈 애니메이션과 셰이프 키를 지원합니다.
glTF는 애니메이션을 지원하나요?
네. glTF 2.0은 노드 변환, 회전, 스케일 및 모프 타겟 웨이트를 선형, 스텝 또는 큐빅 스플라인 보간으로 애니메이션하며 스킨드 메시를 지원합니다. 재질 값과 같은 다른 속성을 애니메이션하려면 확장이 필요합니다.
내보낸 애니메이션이 움직이지 않는 이유는 무엇인가요?
일반적으로 모션이 포맷이 저장하지 않는 것 — IK 솔버, 제약 조건, 드라이버 또는 시뮬레이션 등 — 에서 비롯되었고 내보내기 전에 키프레임으로 베이크되지 않았기 때문입니다. 다른 일반적인 원인은 엔진이 클립을 재생하지 않는 것입니다. 대부분의 경우 클립을 할당하거나 자동 재생으로 설정해야 합니다.
엔진에서 애니메이션 크기가 잘못되거나 회전되어 보이는 이유는 무엇인가요?
단위 및 축 규칙 때문입니다. glTF는 항상 미터 단위에 Y-up 방식이며, FBX는 익스포터에 따라 다르지만 종종 센티미터 단위입니다. 클립별로 수정하는 대신 내보낼 때 단위 및 축 옵션을 설정하거나 가져올 때 단일 스케일을 적용하세요.
브라우저에서 애니메이션을 내보낼 수 있나요?
네. Mixos Studio는 애니메이션된 씬을 모든 클립과 함께 GLB 또는 glTF로 내보내거나, 이를 재생하는 웹 페이지 또는 three.js 모듈로 내보냅니다. 애니메이션 작업은 무료이며, 내보내기는 유료 플랜에서 가능합니다.
씬을 애니메이션하고 GLB로 내보내세요 — 웹과 대부분의 엔진이 기본적으로 읽는 형식으로, 모든 클립을 포함합니다.