[Blender] Unity용 glb/gltf export 매뉴얼

2024. 6. 4. 14:49Blender

728x90
반응형

https://docs.blender.org/manual/en/4.0/addons/import_export/scene_gltf2.html#

 

glTF 2.0 — Blender Manual

The glTF specification identifies different ways the data can be stored. The importer handles all of these ways. The exporter will ask the user to select one of the following forms: glTF Separate (.gltf + .bin + textures) This produces a JSON text-based .g

docs.blender.org

https://github.com/KhronosGroup/glTF-Sample-Models/tree/main/2.0

 

glTF-Sample-Models/2.0 at main · KhronosGroup/glTF-Sample-Models

glTF Sample Models. Contribute to KhronosGroup/glTF-Sample-Models development by creating an account on GitHub.

github.com

 


 

glTF

glTF 파일 포맷은 주로 웹에서 사용되는 3D 모델링 포맷이다. 3D 모델 사이즈는 물론이고 압축을 풀고 렌더링하는 시간을 줄인다. Blender I/O은 다음과 같은 피쳐를 지원한다.

  • Meshes
  • Materials (Principled BSDF) and Shadeless (Unlit)
  • Textures
  • Cameras
  • Punctual lights (point, spot, and directional)
  • Extensions (listed below)
  • Extras (custom properties)
  • Animation (keyframe, shape key, and skinning)

 


 

 

Mesh

  • 사각형이나 n각형은 삼각형 메쉬로 컨버트 된다.
  • UV나 엣지에 따라서 블렌더보다 glTF에서 버텍스 수가 더 높을 수 있다.
  • 커브나 메쉬가 아닌 데이터는 보존되지 않으므로 꼭 필요하다면 export 시에 메쉬로 변환되어야 한다. Bezier와 Nurbs 커브로만 이루어진 glb 모델은 아무것도 보여지지 않는다.

 

 

GPU Instances

  • 블렌더 export - glb를 선택하면 우측 export 옵션에서 [GPU Instances]를 볼 수 있다.

  • 인스턴스는 메쉬여야 하며, 자식 오브젝트가 없어야 한다. 인스턴스는 같은 오브젝트의 자식이어야 한다.
  • 다양한 재질을 관리하지 않으며 생성된 파일은 같은 재질의 모든 인스턴스를 포함할 수 있다.
  • import 할 때, 동일한 메쉬 데이터를 공유하는 객체를 생성하여 인스턴스가 생성된다.

 


 

Materials

  • metal/rough PBR을 지원한다.
    1. Base Color
    2. Metallic
    3. Roughness
    4. Baked Ambient Occlusion
    5. Normal Map (tangent space, +Y up)
    6. Emissive
  • spec/gloss PBR을 지원한다. (KHR_materials_pbrSpecularGlossiness)

  • Base Color
    • Principled BSDF의 Base Color 노드에 연결된 텍스쳐가 있다면 그 텍스쳐가, 연결된 노드가 없다면 해당 컬러가 glTF의 컬러가 된다.


  • Metallic/Roughness
    • Metallic과 Roughness 노드가 둘 다 연결되어있지 않다면, 해당 값 그대로 전달된다.
    • Roughness/Metallic 텍스쳐가 있다면, Metallic 값은 Blue 채널에, Roughness 값은 Green 채널에 연결된다. 이 경우 텍스쳐의 [Color Space]를 [Non-Color]로 설정해야 한다.
      여기서, 대부분의 텍스쳐는 Metallic과 Roughness를 따로 가지고 있기 때문에 하나의 텍스쳐로 묶어서 Green과 Blue 채널로 나눠주는 작업을 해야 한다.
      해당 작업은 포토샵에서 할 수 있으며 G, B 채널을 합치면 위와 같은 텍스쳐가 만들어 진다.

  • Baked Ambient Occlusion  
    • 현재 블렌더에서 glTF로 AO 텍스쳐를 바로 연결할 수는 없지만, Custom Node를 "glTF Material Output"으로 이름 짓고 input 이름을 "Occlusion"이라고 명명하면 AO 맵을 사용할 수 있다.
    • Custom Node는 매뉴얼로 직접 만들 수도 있고, (링크)의 물병 gltf 모델을 불러와서 직접 Custom Node를 살펴볼 수 있다. 해당 노드는 Occlusion과 Thickness의 Input으로 이루어져 있는 것을 볼 수 있었다.
    • 블렌더에서 glTF Add-on을 설치한 후 [Shader Editor Add-ons]를 활성화 하면 [Shading] 패널에서 "Shift+A" 단축키로 [glTF Material Output] 노드를 사용할 수 있다.
    •  AO 텍스쳐를 커스텀 노드의 Occlusion 부분에 연결한다. 혹시 특정 컬러 채널에 들어있다면 Red 채널을 커스텀 노드의 Occlusion 부분에 연결하면 된다.
       
    • 유니티에 AO 텍스쳐가 성공적으로 들어온 것을 볼 수 있다. 아쉽게도 Occlusion Strength 값을 조절할 수 있는 기능은 없는 것으로 보인다.
    • 실시간 그림자를 계산하기 힘든 환경에서 AO 맵은 유용하다.
    • Cycles 렌더러로 만든 AO 맵 또한 커스텀 노드에 연결하여 사용할 수 있다.

 

 


  • Normal Map
    • 노말맵을 사용하기 위해서는 노말맵으로 사용할 텍스쳐 노드를 [Normal Map] 노드에 연결한 후 BSDF의 [Normal] 부분에 연결한다. 보통 [Normal Map] 노드는 디폴트로 있기 때문에 일반적인 방식으로 잇기만 하면 된다.
    • 텍스쳐 [Color Space]를 [Non-Color]로 설정한다.
    • [Normal Map] 노드는 반드시 [Tangent Space]로 설정되어 있어야 한다. (glTF에서 유일하게 지원)
    • Normal Strength도 적용되지만 최대 1.0 까지만 적용된다.
    • Cycles Render의 [Bake] - [Normal]로 구운 노말 텍스쳐 또한 동일한 방법으로 사용할 수 있다.


  • Emissive
    • Principled BSDF의 [Emission] - [Color] 노드와 Emissive Texture를 연결하면 적용이 된다.
    • 테스트 결과, [Emission]의 [Strenght]는 0~1까지의 값이 전달된다. 1 이상은 1과 같게 보여진다.
    • Emission 셰이더를 사용하는 방법으로는, 아래와 같이 사용할 수 있다.
    • Emissive 텍스쳐만 사용하는 메테리얼에서는 다른 채널과의 영향을 최소화하기 위해서 [Base Color]를 블랙, [Roughness]를 1.0으로 설정하기를 권장한다.
    • Emission 셰이더를 사용한 [Strength]도 0~1 사이의 값을 사용할 수 있었다. 1 보다 크면 " KHR_materials_emissive_strength" 확장자를 사용한다고는 되어있지만 엄청 밝은 값이 적용되지는 않는다.
    • 여기서, 1 이상의 Emission 값을 주려면, glb가 아닌 glTF 파일을 수정하면 된다.
      glTF 스크립트 파일에서 materials를 검색하여 "materials" 배열을 찾고 해당하는 이름의 메테리얼에서 "emissiveFactor" 배열의 값을 높인다.


  • Clearcoat
    • 만약 CoatRoughness 텍스쳐를 사용한다면, [Color Space]는 [Non-Color]로 설정하고, R 채널에는 Clearcoat 값이, G 채널에는 Clearcoat Roughness 값이 저장된다. 만약 흑백 이미지라면 remap 된다.
    • ClearcoatNormal은 마찬가지로 [Color Space]는 [Non-Color]로 설정하고, Base Normal과 같은 방법으로 아래 사진처럼 연결하면 된다.
    • 간단하게 사용하기 위해서는 텍스쳐를 바로 [Coat] - [Weight]에 연결해도 된다고 한다.


  • Sheen
    • Sheen은 미세한 섬유, 옷의 벨벳과 같은 느낌의 반사를 주는 효과이다.
    • [Sheen] - [Roughness]에 SheenRoughness 텍스쳐를 연결한다. A(알파) 채널의 값을 사용한다.
    • 매뉴얼에 있는 [sheenRoughness Factor] 노드를 찾지는 못했다. 직접적으로 [Sheen] - [Weight]에 연결하면 glTF 파일 상에서 "KHR_materials_sheen" 확장을 사용하게 되지만 Unity에서는 다른 적용점은 없어 보인다.
      [Sheen] - [Roughness]에 연결하면 확장자도 추가되지 않았다.
    • Blender의 렌더러를 Cycles로 바꾸고 [Sheen BSDF]를 추가했지만 확장자가 추가되지 않았다.


  • Specular
    • [Principled BSDF] 노드의 [Specular] 부분에 default 값이 아닌 다른 값이 들어가면 " KHR_materials_specular" 확장자를 사용하게 된다.
    • 따로 Unity에 값이 들어가지 않기 때문에 필요해 보이지는 않는다.


  • Transmission
    • Transmission이 Alpha Blending과 다른 점은, Alpha Blending은 투명으로 물체 자체를 없애지만 Transmission은 고체이면서 정반사가 아닌 유리와 같은 물체의 물리적 성질을 표현한다.
    • default 값이 아닌 다른 값을 부여하면 "KHR_materials_transmission" 확장자가 사용된다.
    • Roughness와 같이 사용하면 서리 낀 유리 느낌도 줄 수 있다.
    • 굴절을 표현하기 위해서는 "KHR_materials_volume" 확장자도 같이 사용되어야 한다.
    • 따로 Unity에 값이 들어가지 않기 때문에 필요해 보이지는 않는다.

  • IOR
    • [Principled BSDF]에서 값이 1.5이면 defualt 이기 때문에 "KHR_materials_ior" 확장자를 사용하지 않는다. 값을 변경하면 확장자를 사용한다.
    • transmission, volume, specular 확장자가 같이 export 된다면 ior 확장자도 같이 export 된다.
    • 따로 Unity에 값이 들어가지 않기 때문에 필요해보이지는 않는다.

  • Volume
    • [Volume Absorption] 노드를 Output의 [Volume]에 연결해야 export 할 수 있다. "KHR_materials_volume" 확장자를 사용한다.
    • [Transmission] 값을 일정 부분 부여해야 export 할 수 있다.
    • [Volume Absorption] 노드는 glTF의 감쇠 색상으로 사용된다. 텍스쳐는 필요하지 않다.
    • [Volume Absorption] - [Density] 값은 감쇠 거리의 역수로 사용된다.
    • [Thickness]를 사용하기 위해서는 커스텀 [glTF Material Output] 노드를 사용해야 하며 텍스쳐의 G 채널을 사용한다.
    • 따로 Unity에 값이 들어가지 않기 때문에 필요해보이지는 않는다.

  • glTF Variants
    • glTF Variants를 사용하기 위해서 Blender Add-on을 설치해야 한다.
    • 설치하면 [Add Material Variant]와 [+] 버튼을 이용해서 메테리얼 베리언트를 생성할 수 있다.
      • [Display Variant]는 해당 메테리얼을 보는 버튼
      • [Assign To Variant]는 해당 메테리얼에 현재 메테리얼을 적용하는 버튼
      • [Rest To Original]은 Original로 설정된 메테리얼을 표시하는 버튼
      • [Assign as Original]은 해당 메테리얼 베리언트를 Original로 설정하는 버튼이다.
      • 정작 Unity에 import 해보니 지원되지 않는 확장자라는 오류와 함께 아예 glb가 로드되지 않았다.


  • Double-Sided/Backface Culling
    • Backface Culling 여부는 Blender Material 설정에서 바꿀 수 있다.
    • 유니티 메테리얼 설정에서 [Render Face]가 [Both]에서 [Front]로 바뀐 것을 볼 수 있다.


  • Blend Modes
    • Blender에서 사용할 수 있는 [Blender Mode] 중, [Opaque], [Alpha Blend], [Alpha Clip]을 지원한다.
    • [Opaque] 설정
    • [Alpha Blend] 또는 [Alpha Hashed] 설정
    • [Alpha Clip] 설정

 

  • UV Mapping
    • [UV Map] 노드와 [Mapping] 노드를 이용해서 어떤 이미지 텍스쳐든 컨트롤할 수 있다.
    • [Mapping] 노드를 이용하면 "KHR_texture_transform" 확장자를 사용하게 된다.
    • [Mapping] 노드의 [Type]은 [Point]로 설정하기를 추천한다.
    • 아래의 축에 대한 변경을 지원한다.
      - Location X / Y
      - Rotation Z
      - Scale X / Y
    • Default 설정
    • Location 변경 (X:0.2/ Y:0.2)
    • Rotation 변경 (Z:10)
    • Scale 변경 (X:1.5/Y:1.2)
    • [Mapping] 노드의 [Type]이 [Texture]로 설정되어 있다면 Scale의 X, Y 값이 동일해야 한다. 테스트 결과 상관은 없어 보인다.


  • Factors
    • 수학적 계산이 들어가야 한다면 Factor값을 조절해야 한다.
    • [Mix Color] 노드를 이용해서 컬러 Factor를 계산한다.
      • A 컬러에 노드를 연결하고 B 컬러를 컬러 Factor로 사용한다.
      • 이렇게 설정하면 A 컬러에 Base Color 텍스쳐를 사용할 수 있고 B 컬러에 Blend 될 색상까지 Unity에 가져갈 수 있다.
    • [Math] 노드를 이용해서 스칼라 Factor를 계산한다.
      • [Multiply] 노드의 위쪽 [Value]에는 스칼라 값을 넣고 아래쪽 [Value]에는 Factor 값을 입력하여 최종적으로 계산된 값이 [Roughness]에 전달되었다.

  • Unlit Material
    • 매뉴얼에 나와있는 대로 이미지 텍스쳐와 [Transparent BSDF]를 [Mix Shader]로 묶어서 [Factor] 부분에는 [Light Path] - [Is Camera Ray]를 연결하면 Unity에 "glTF-unlit" 셰이더가 로드되는 것을 볼 수 있다.
    • [Transparent BSDF]의 색상을 바꿔도 따로 Unity에서 [Base Color]가 바뀌지는 않는다.
    • [Principled BSDF] 셰이더를 사용하지 않고 이미지 텍스쳐를 바로 Output에 연결해도 unlit 메테리얼을 사용할 수 있다.

 


 

Third-party glTF Extensions

  • 기존의 glTF add-on을 변경하지 않고 Python으로 glTF extension을 만들 수 있다. 아래 링크 참고'
  • 외부 extension prefix에 unity도 있다.
 

glTF-Blender-IO/example-addons at main · KhronosGroup/glTF-Blender-IO

Blender glTF 2.0 importer and exporter. Contribute to KhronosGroup/glTF-Blender-IO development by creating an account on GitHub.

github.com

 

 

glTF/extensions/Prefixes.md at main · KhronosGroup/glTF

glTF – Runtime 3D Asset Delivery. Contribute to KhronosGroup/glTF development by creating an account on GitHub.

github.com

 

 


 

 

Animations

- glTF의 애니메이션은 Transform 또는 Pose Bone 또는 Shape Key를 바꾼다.

- 하나의 애니메이션이 여러 오브젝트에 영향을 주거나 여러 애니메이션이 하나의 glTF에 포함될 수 있다.

 

  • Import
    • 애니메이션 중 첫 번째 애니메이션은 자동으로 플레이된다.
    • 파일에 다중 애니메이션이 있다면 나머지는 NLA(NonLinear Animation) 에디터에서 구성된다.
    • 다중 애니메이션이 있는 여우 샘플(링크)을 살펴보면, 총 3개의 애니메이션이 포함되어 있고 가장 첫 번째 애니메이션인 Survey 애니메이션이 Unity에서 자동으로 실행되는 것을 볼 수 있다.
    • 다른 애니메이션을 보고 싶다면 Walk 또는 Run 애니메이션 옆에 별 모양을 누르면 된다. 이 경우 Unity에서 Run 애니메이션이 실행된다. 어떤 애니메이션의 별 모양을 누른 상태로 export해도 마찬가지. 이유는 모르겠다.
    • 현재 애니메이션을 가지고 있는 이 모델의 멈춰있는 모습은 볼 수 없다.
    • Plug-in의 [Animation UI]를 활성화하여 애니메이션 스위쳐를 볼 수 있다. 라고 했지만 어디서 이 부분을 확인할 수 있는지 찾지 못했다.
  • Export
    • [Export] - [Animation Mode] 옵션들을 보면 여러 선택지가 있다.
      • Actions
        - 오브젝트에 활성화된 action 또는 NLA 트랙에 저장된 action은 export 될 수 있다. 연결되어 있지 않은 action은 export 되지 않는다.
        - 여러 애니메이션을 export 하고 싶다면 NLA 트랙에 저장해야 한다.
        - 만약 두 오브젝트에 같은 이름의 Track이 설정되어 있다면, 같이 실행된다.
      • Active Actions merged
        - NLA를 사용하지 않고 활성화된 하나의 애니메이션만 export 된다.
      • NLA Tracks
        - 각각의 NLA 트랙은 독립되어 glTF 애니메이션으로 export 된다.
        - Strip modifier 또는 같은 트랙에 여러 액션을 사용하는 상황에 유용하다.
        - 다른 두 오브젝트의 각각의 트랙을 같은 이름으로 설정하면 애니메이션이 같이 실행된다.
      • Scene
        - Blender viewport에서 보는 것처럼 export 된다.
        - 하나의 애니메이션 또는 각각의 오브젝트를 export 할 수 있다.
      • 주의 사항
        - Bone Transformation을 이용하여 key animation을 샘플링하기 위해서는 뼈의 아마추어 바로 아래 메쉬에 children으로 있어야 한다.
        - Actions와 Active Actions merged만이 샘플 되지 않은 애니메이션을 처리할 수 있다.
    • Animation Export 지원되는 부분
      - 오브젝트 Transform (Location, Rotation, Scale)
      - Pose Bones
      - Shape Key Values
    • Animation Export 지원되지 않는 부분
      - Other Properties
      - Physics
      - Lights
      - Materials
  • Animation에 대해 내가 내린 결론
    - 하나의 glb 파일 안에 여러 애니메이션이 있을 때 유니티 스크립트를 통해서 각각의 애니메이션을 제어할 수 있는 지를 연구해보아야 한다. (three.js 웹에서는 코드를 통해서 다중 애니메이션 각각의 컨트롤이 가능.)
    - 지금으로서는 Unity에서 애니메이션이 자동 실행되며 하나의 애니메이션만 사용 가능하다. 만약 다중 glb 파일이 있을 경우 같은 애니메이션을 사용하고 싶을 때는 NLA에서 그룹 이름을 같게 만들어주면 된다.

 

 


 

 

Export Settings

  • Keep Original
    -  가능한 오리지널 텍스쳐 파일을 유지한다. 2개 이상의 텍스쳐를 사용한다면 PBR 표준에 의해 하나의 텍스쳐만 사용된다.
  • Textures
    - 텍스쳐 파일을 위치하는 파일 경로.
  • Copyright
    - 모델에 대한 법적인 권리 또는 조건
  • Remember Export Settings
    - .blend 파일에 export setting을 저장한다.

  • Custom Properties
    - 커스텀 설정을 export
  • Cameras
    - 카메라를 export
  • Punctual Lights
    - Directional, Point, Spot Light를 export. "KHR_lights_punctual" 확장자를 사용한다.

  • Y Up
    - glTF 규칙을 사용하여 Y축 방향을 위쪽으로 설정

  • GPU Instances
    - "EXT_mesh_gpu_instancing" 확장자를 사용하여 export 한다.
  • Apply Modifiers
    - 모든 Modifier가 계산된 후의 결과를 export 한다.
  • Attributes
    - Attribute는 메쉬 요소 별로 저장 데이터이다. Data 패널에서 확인할 수 있으며 사용자 정의 속성이 나열된다.
    - Underscore로 시작하는 Attribute가 export 된다.
  • Loose Edges
    - loose edge를 라인으로 export 한다. 첫 번째 메테리얼 슬롯을 이용한다.
    - Loose Edge는 평면을 이루지 않는 직선을 말한다.
  • Loose Points
    - loose point를 glTF 포인트로 export 한다. 첫 번째 메테리얼 슬롯을 이용한다.
    - Loose Point는 평면을 이루지 않는 점을 말한다.

  • Materials
    - Export : 모든 메테리얼을 export 한다.
    - Placeholder : 메테리얼의 자리는 남아있되 메테리얼 자체가 export 되지는 않는다.
    - No Export : 메테리얼 export도 되지 않고 Unity Hierarchy 창에서 한 메쉬 안에 메테리얼 단위로 메쉬가 나눠지지도 않는다.
  • Images
    - PNG는 손실 없이, JPEG는 작은 파일로 내보낼 때 사용. WebP는 png/jpg fallback 없이.
  • Image Quality
    - jpeg 또는 WebP 파일 export 시에 퀄리티를 설정한다.
  • Create WebP
    - WebP 텍스쳐를 생성한다. 이미 WebP 텍스쳐라면 아무 일도 일어나지 않는다.
  • WebP fallback
    - 모든 WebP 텍스쳐에 대해 png fallback 텍스쳐를 생성한다.

  • Use Sparse Accessor if better
    - 공간을 절약할 수 있다면 Sparse Accessor를 사용한다.
  • Omitting Sparse Accessor if data is empty
    - 데이터가 비어있다면, Sparse Accessor를 생략한다. 모든 뷰어가 정확하게 관리하지 않기 때문에 default 값은 off.
  • Sparse Accessor란
    - 데이터를 효율적으로 저장하고 접근하는 데에 사용되는 glTF 개념으로, 많은 zero 값이나 default 값을 저장하지 않는다. 특히 많은 요소나 중복되는 요소가 있을 때 데이터를 줄일 수 있다.

  • Use Rest Position Armature
    - rest 포즈로 아마추어 뼈대 내보내기. 체크 해제 되어있다면, 현재 프레임 포즈가 rest 포즈가 된다.
  • Export Deformation Bones Only
    - 다른 뼈대 말고 Deformation 뼈대만 export 한다. Deformation 뼈대 애니메이션이 bake 된다.
    *Deformation Bone이란 (링크)
    - 뼈대가 직접적으로 주변의 메쉬를 변형시키는 것을 말한다. [Envleope] 설정으로 주변의 메쉬에 주는 영향력 범위를 조절할 수 있다.
  • Flatten Bone Hierarchy
    - 분해 불가능한 TRS(Translation/Rotation/Scale) matrix인 경우 유용하다.
    *TRS Matirx란
    - Translation, Rotation, Scale 값을 가진 4x4 행렬로 복잡한 오브젝트 조작을 효율적으로 나타낼 수 있다. 분해 불가능한 TRS 행렬의 경우는 다음과 같다.
    - Shear(전단) Transformation일 때 쉽게 표시될 수 없다.
    - Non-uniform인 Scaling과 Rotation일 때 확실하게 표시될 수 없다.
    - 소수점의 한계로 인해 작은 에러가 쌓여 행렬에 수치적으로 정확하게 표시될 수 없다.

  • Bone Influences
    - joint vertex가 얼마나 많은 영향을 주는지를 결정한다.
  • Include All Bone Influences
    - 모든 joint vertex를 export 한다. 많은 viewer에서 모델이 다르게 보여진다.

  • Lighting Mode
    - Standard : 물리적 기반의 glTF 라이트를 사용(cd, lx, nt)
    - Unitless : 비물리적 기반의 단위 없는 라이트 사용. 노출 제어가 없는 경우 유용하다.

  • Compression
    - Google Draco를 사용한 메쉬 압축
    *Google Draco (링크)
    - 3D 메쉬와 포인트 클라우드를 압축하고 해제하는 라이브러리로, 3D 그래픽의 저장 및 전송을 개선한다.
    - 더 빠른 앱 다운로드, 더 빠른 브라우저를 통한 3D 그래픽 로드, AR 및 VR에서 적은 대역폭으로 전송하고 빠르게 렌더할 수 있다.
  •  Compression level
    - 큰 값일수록 많은 압축이 된다. 큰 압축은 encoding과 decoding 시간을 느려지게 한다.
    - 이하 모든 값은 높을수록 높은 압축률로 적용된다.

*해당 압축 기능으로 Unity에 모델을 올려보았지만 Draco를 지원하지 않는다고 에러 메시지를 볼 수 있었다.

 

Draco Unity github에서 패키지를 다운 받을 수 있다. 런타임에서도 decoding 될 수 있다고 매뉴얼에 쓰여있다. (링크)

해당 패키지를 사용하기 위해서 Package Manager에서 설치를 해보았다. 

https://github.com/atteneder/DracoUnity.git

Draco for Unity 패키지를 통해서 compressed 된 glb를 불러오는 데에 성공했다. glb 차제의 용량은 3407KB에서 639KB까지 줄었다.


  • Animation mode
    - 위쪽 Animations - Export 항목 참고

  • Bake All Objects Animations
    - 강제로 모든 오브젝트의 애니메이션을 export 한다. 일부 애니메이션이 제한될 때 유용하다.

  • Use Current Frame as Object Rest Transformations
    - 현재 애니메이션 프레임으로 씬을 Export 한다. 체크 해제 되어있다면 0 프레임이 기준이 된다.
  • Limit to Playback Range
    - 선택한 재생 범위에 맞게 애니메이션을 자른다.
  • Negative Frames
    - 일부 프레임이 음수 프레임에 있으면 애니메이션을 슬라이드 하거나 자른다.

  • Export all Armature Actions
    - 싱글 아마추어에 바운드된 모든 액션 export. 다중 아마추어 export를 지원하지 않는다.
  • Reset pose bones between actions
    - 각 액션 사이의 pose bone을 리셋한다. 일부 애니메이션에서 몇몇 뼈대의 키가 설정되지 않은 경우 필요하다.

  • Sampling Animations
    - 모든 애니메이션을 샘플링한다. 애니메이션을 샘플링하지 않으면 잘못된 애니메이션 내보내기가 발생할 수 있다.
  • Sampling Rate
    - 애니메이션 값을 평가하는 빈도 (프레임 단위)

  • Optimize Animation Size
    - 동일한 키프레임일 경우 중복된 부분을 지워 파일 크기를 줄인다.
  • Force keeping channels for bones
    - rig의 모든 키프레임이 동일할 경우 최소한의 애니메이션을 강제로 남긴다.
  • Force keeping channel for objects
    - 오브젝트의 transformation 키프레임 값이 동일할 경우 최소한의 애니메이션을 강제로 남긴다.
728x90
반응형