Version: Unity 6.0 (6000.0)
언어 : 한국어
역운동학(IK)
루트 모션 스크립팅

루트 모션의 작동 방식

바디 트랜스폼

바디 트랜스폼은 캐릭터의 질량 중심입니다. 메카님의 리타게팅 엔진에 사용되며 가장 안정적인 변위 모델을 제공합니다. 바디 방향은 아바타의 T-포즈를 기준으로 하체 및 상체 방향의 평균입니다.

바디 트랜스폼과 바디 방향은 아바타에 설정된 근육 정의를 사용하여 애니메이션 클립 에 저장됩니다. 이는 애니메이션 클립 에 저장된 유일한 월드 공간 커브입니다. 나머지 근육 커브와 IK 목표(손과 발)는 바디 트랜스폼을 기준으로 저장됩니다.

루트 트랜스폼

루트 트랜스폼은 바디 트랜스폼의 Y 평면에 투사되며 런타임 시 계산됩니다. 모든 프레임에서 루트 트랜스폼의 변경 사항이 계산됩니다. 그러면 이 변환의 변경 사항이 게임 오브젝트에 적용되어 게임 오브젝트가 이동합니다.

캐릭터 아래의 원은 루트 트랜스폼을 나타냄
캐릭터 아래의 원은 루트 트랜스폼을 나타냄

애니메이션 클립 인스펙터

애니메이션 클립 에디터 설정(Root Transform Rotation, Root Transform Position (Y), Root Transform Position (XZ))은 바디 트랜스폼에서 루트 트랜스폼 투사를 제어할 수 있습니다. 이러한 설정에 따라 바디 트랜스폼의 일부가 루트 트랜스폼으로 이전될 수 있습니다. 예를 들어 모션 Y 위치를 루트 모션(궤도) 또는 포즈(바디 트랜스폼)의 일부로 지정할 수 있습니다. 이를 Baked into Pose 라고도 합니다.

Root Transform Rotation

Bake into Pose: 방향이 바디 트랜스폼(또는 포즈)에 그대로 유지됩니다. 루트 방향은 고정된 값으로 유지되고 델타 방향은 변화가 없습니다. 즉, 게임 오브젝트가 해당 애니메이션 클립 에 의해 전혀 회전되지 않습니다.

시작 및 정지 루트 방향이 비슷한 애니메이션 클립만 이 옵션을 사용해야 합니다. UI에 애니메이션 클립 이 적합한 후보임을 알리는 녹색 표시등이 표시됩니다. 적합한 후보로는 직선으로 걷기나 달리기가 있습니다.

Based Upon: 이를 통해 클립의 방향을 설정할 수 있습니다. Body Orientation 을 사용하면 클립이 몸의 정면 방향을 따르도록 설정됩니다. 이 기본 설정은 걷기, 달리기, 점프와 같은 대부분의 모션 캡처(Mocap) 데이터에 적합하지만, 몸의 정면 방향과 수직으로 움직이는 측면 이동과 같은 모션에는 부적절합니다. 이러한 경우에는 Offset 설정을 사용하여 방향을 수동으로 조정할 수 있습니다. 마지막으로 임포트된 클립의 저작(authoring)된 오프셋을 자동으로 추가하는 Original 이 있습니다. 일반적으로 아티스트가 설정한 방향을 준수하기 위해 키프레임 데이터와 함께 사용됩니다.

Offset: Based Upon 에서 해당 옵션이 선택된 경우 오프셋을 입력하는 데 사용합니다.

Root Transform Position (Y)

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 Position (XZ)

이 경우에도 Root Transform RotationRoot Motion Position (Y) 에서 설명한 것과 동일한 개념이 사용됩니다.

Bake into Pose 는 일반적으로 델타 위치(XZ)를 강제로 0으로 설정하려는 ‘Idles’에 사용됩니다. 이렇게 하면 여러 번의 평가 후에 작은 델타가 누적되어 표류하는 것을 방지할 수 있습니다. 또한 Based Upon Original 을 사용하여 아티스트가 설정한 저작된 위치를 강제로 사용하는 키프레임 클립에 사용할 수 있습니다.

루프 포즈

루프 포즈(블렌드 트리 또는 전환의 포즈 블렌딩 등)는 루트 트랜스폼의 레퍼런스에서 발생합니다. 루트 트랜스폼이 계산되면 포즈는 루트 트랜스폼을 기준으로 삼게 됩니다. 시작 프레임과 정지 프레임 간의 상대 포즈 차이가 계산되어 0–100%의 클립 범위에 따라 분포됩니다.

제네릭 루트 모션 및 루프 포즈

휴머노이드 루트 모션과 근본적으로 동일한 방식으로 작동하지만 바디 트랜스폼을 사용하여 루트 트랜스폼을 계산/예측하는 대신 Root Node 에서 설정한 트랜스폼을 사용합니다. 포즈(루트 모션 골격 아래에서 변환되는 모든 골격)는 루트 트랜스폼을 기준으로 만들어집니다.

역운동학(IK)
루트 모션 스크립팅