바디 트랜스폼은 캐릭터의 질량 중심입니다. 메카님의 리타게팅 엔진에 사용되며 가장 안정적인 변위 모델을 제공합니다. 바디 방향은 아바타의 T-포즈를 기준으로 하체 및 상체 방향의 평균입니다.
바디 트랜스폼과 바디 방향은 아바타에 설정된 근육 정의를 사용하여 애니메이션 클립 에 저장됩니다. 이는 애니메이션 클립 에 저장된 유일한 월드 공간 커브입니다. 나머지 근육 커브와 IK 목표(손과 발)는 바디 트랜스폼을 기준으로 저장됩니다.
루트 트랜스폼은 바디 트랜스폼의 Y 평면에 투사되며 런타임 시 계산됩니다. 모든 프레임에서 루트 트랜스폼의 변경 사항이 계산됩니다. 그러면 이 변환의 변경 사항이 게임 오브젝트에 적용되어 게임 오브젝트가 이동합니다.
애니메이션 클립 에디터 설정(Root Transform Rotation, Root Transform Position (Y), Root Transform Position (XZ))은 바디 트랜스폼에서 루트 트랜스폼 투사를 제어할 수 있습니다. 이러한 설정에 따라 바디 트랜스폼의 일부가 루트 트랜스폼으로 이전될 수 있습니다. 예를 들어 모션 Y 위치를 루트 모션(궤도) 또는 포즈(바디 트랜스폼)의 일부로 지정할 수 있습니다. 이를 Baked into Pose 라고도 합니다.
Bake into Pose: 방향이 바디 트랜스폼(또는 포즈)에 그대로 유지됩니다. 루트 방향은 고정된 값으로 유지되고 델타 방향은 변화가 없습니다. 즉, 게임 오브젝트가 해당 애니메이션 클립 에 의해 전혀 회전되지 않습니다.
시작 및 정지 루트 방향이 비슷한 애니메이션 클립만 이 옵션을 사용해야 합니다. UI에 애니메이션 클립 이 적합한 후보임을 알리는 녹색 표시등이 표시됩니다. 적합한 후보로는 직선으로 걷기나 달리기가 있습니다.
Based Upon: 이를 통해 클립의 방향을 설정할 수 있습니다. Body Orientation 을 사용하면 클립이 몸의 정면 방향을 따르도록 설정됩니다. 이 기본 설정은 걷기, 달리기, 점프와 같은 대부분의 모션 캡처(Mocap) 데이터에 적합하지만, 몸의 정면 방향과 수직으로 움직이는 측면 이동과 같은 모션에는 부적절합니다. 이러한 경우에는 Offset 설정을 사용하여 방향을 수동으로 조정할 수 있습니다. 마지막으로 임포트된 클립의 저작(authoring)된 오프셋을 자동으로 추가하는 Original 이 있습니다. 일반적으로 아티스트가 설정한 방향을 준수하기 위해 키프레임 데이터와 함께 사용됩니다.
Offset: Based Upon 에서 해당 옵션이 선택된 경우 오프셋을 입력하는 데 사용합니다.
Root Transform Rotation에서 설명한 것과 동일한 개념을 사용합니다.
Bake into Pose: 모션의 Y 컴포넌트는 바디 트랜스폼(포즈)에 유지됩니다. 루트 트랜스폼의 Y 컴포넌트는 고정된 값으로 유지되고 델타 루트 위치 Y는 0입니다. 즉, 이 클립은 게임 오브젝트 높이를 변경하지 않습니다. 또한 클립이 Y 모션을 포즈에 베이크하는 데 적합한 후보임을 알리는 녹색 표시등이 표시됩니다.
대부분의 애니메이션 클립 은 이 설정을 활성화합니다. 위 또는 아래로의 점프처럼 GameObject 높이를 변경하는 클립에만 이 설정을 꺼야 합니다.
참고: Animator.gravityWeight는 Bake Into Pose 위치 Y 기반입니다. 활성화하면 gravityWeight = 1이고, 비활성화하면 disabled = 0입니다. gravityWeight 는 상태 간 전환 시에 클립에 블렌드됩니다.
Based Upon: Root Transform Rotation 과 유사한 방식으로 Original 또는 Mass Center (Body) 중에서 선택할 수 있습니다. 또한 높이를 변경하는 애니메이션 클립 에 매우 편리한 Feet 옵션이 있습니다(Bake into Pose 비활성화). Feet 를 사용하면 Root Transform Position Y는 모든 프레임에서 가장 낮은 발 Y와 일치합니다. 따라서 블렌딩 포인트는 항상 발 주위에 유지되어 블렌딩 또는 전환 시 떠다니는 문제를 방지합니다.
Offset: Offset 설정을 사용하여 Root Transform Rotation 과 유사한 방법으로 애니메이션 클립 높이를 수동으로 조정할 수 있습니다.
이 경우에도 Root Transform Rotation 및 Root Motion Position (Y) 에서 설명한 것과 동일한 개념이 사용됩니다.
Bake into Pose 는 일반적으로 델타 위치(XZ)를 강제로 0으로 설정하려는 ‘Idles’에 사용됩니다. 이렇게 하면 여러 번의 평가 후에 작은 델타가 누적되어 표류하는 것을 방지할 수 있습니다. 또한 Based Upon Original 을 사용하여 아티스트가 설정한 저작된 위치를 강제로 사용하는 키프레임 클립에 사용할 수 있습니다.
루프 포즈(블렌드 트리 또는 전환의 포즈 블렌딩 등)는 루트 트랜스폼의 레퍼런스에서 발생합니다. 루트 트랜스폼이 계산되면 포즈는 루트 트랜스폼을 기준으로 삼게 됩니다. 시작 프레임과 정지 프레임 간의 상대 포즈 차이가 계산되어 0–100%의 클립 범위에 따라 분포됩니다.
휴머노이드 루트 모션과 근본적으로 동일한 방식으로 작동하지만 바디 트랜스폼을 사용하여 루트 트랜스폼을 계산/예측하는 대신 Root Node 에서 설정한 트랜스폼을 사용합니다. 포즈(루트 모션 골격 아래에서 변환되는 모든 골격)는 루트 트랜스폼을 기준으로 만들어집니다.