애니메이션 궤적 대상 변경

일부 애니메이션 엔진에서는 연속된 애니메이션 프레임 간의 변환 및 회전 델타로 표현되는, 캐릭터 애니메이션에 대한 궤적 정보를 추적합니다. 이 정보를 통해 엔진은 시작 위치에 관계없이 여러 가지 다른 애니메이션을 혼합할 수 있습니다. 각 프레임에서 애니메이션의 변환, 회전 및 배율 조정 델타를 함께 혼합하면 혼합 결과는 이전 프레임에 비해 적합한 변환, 회전 및 배율 조정으로 완성됩니다.

그러나 이 궤적 혼합은 걷기 애니메이션 대상을 큰 캐릭터에서 훨씬 더 작은 캐릭터로 변경하는 경우처럼 애니메이션 대상을 비율이 다른 캐릭터로 변경할 때 문제가 될 수 있습니다.

이 문제를 해결하기 위해 HumanIK에서는 소스 캐릭터의 애니메이션에 대해 지정한 변환 및 회전 델타를 대상 캐릭터의 캐릭터 공간으로 변환할 수 있습니다. 이렇게 조정된 델타 값은 대상 캐릭터가 따라 이동할 실제 궤적을 애니메이션 엔진에 제공하므로 대상 변경된 애니메이션 위에 다른 애니메이션을 혼합할 수 있습니다.

궤적 대상 변경 설정

아래 지침은 HumanIK 사용에서 제공하는 대상 변경 설정 및 수행에 대한 기본 지침을 기반으로 합니다.

  1. 대상 캐릭터의 HIKPropertySetState를 설정하는 경우 다음을 수행합니다.

    • HIKHipsTranslationModeId 속성의 값을 2로 설정합니다. 이 값은 대상 변경 솔버에서 대상 변경을 수행할 때 HipsTranslationId 노드에 포함된 델타를 조정하도록 지시합니다.
    • HIKForceActorSpaceId의 모드를 0(기본값)으로 설정합니다.

  2. 각 프레임에서, 소스 캐릭터의 HIKCharacterState를 설정하는 경우 애니메이션의 이전 프레임 이후 델타 변환, 회전 및 배율 조정 값을 소스 캐릭터의 HipsTranslationId 노드에서 유지하는 값에 저장합니다.
  3. 각 프레임에서, 대상 캐릭터의 HIKCharacterState에서 대상 변경 결과를 검색하는 경우 대상 캐릭터의 HipsTranslationId 노드에서 조정된 델타 변환 및 델타 회전을 검색합니다. 전역 공간에 값이 표현됩니다.

    소스 캐릭터에 HipsTranslationId 노드가 없는 경우 대상 캐릭터의 HipsTranslationId 노드에 소스 캐릭터의 HipsNodeId 노드에서 대상 변경된 값이 포함됩니다.