이 섹션에서는 애니메이션을 대상 변경하는 데 사용되는 함수를 설명합니다.
대상 변경은 캐릭터에 대해 사전에 기록된 애니메이션을 가져와 동일한 애니메이션을 사용하여 매우 다른 골격, 차원 또는 특징을 가질 수 있는 다른 대상 캐릭터의 움직임을 구동합니다. 대상 변경을 위해서는 소스 캐릭터, 현재 해당 위치(일반적으로 사전에 기록된 애니메이션에서 가져옴) 및 대상 캐릭터가 포함된 HIKCharacterState가 있어야 합니다. 대상 변경 솔버는 소스 캐릭터의 포즈를 흉내내는 대상 캐릭터에 대해 새 포즈를 만들고 이 포즈를 제공하는 HIKCharacterState에 저장합니다. 게임에서 이 포즈를 검색하고 대상 캐릭터에 다시 적용합니다.
또한 대상 변경 솔버의 작동을 제어하는 대상 캐릭터에 대해 다양한 캐릭터 속성을 지정할 수 있습니다. 예를 들어 대상 캐릭터 몸체의 다른 부분이 소스 캐릭터의 몸체 위치와 얼마나 가깝게 일치해야 하는 정도에 영향을 주는 도달 값을 제공할 수 있습니다. 이 단계는 대상 변경 프로세스 이후 IK 솔버에 대한 호출을 통해 수행됩니다.
모듈 | |
| Low-LoD Retargeting | |
| 이 페이지는 낮은 정밀도 레벨을 사용하여 캐릭터에 대해 대상 변경을 수행하는 데 사용되는 함수를 자세히 설명합니다. | |
함수 | |
| void | HIKSolveForCharacter (const HIKCharacter *pDstCharacter, HIKCharacterState *pCharacterState, const HIKCharacter *pSrcCharacter, const HIKCharacterState *pSrcCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pDstPropertyState, const HIKPropertySetState *pSrcPropertyState) |
pSrcCharacter캐릭터의 포즈를 정의합니다.에서 소스 캐릭터 pSrcCharacterState가 주어지고 대상 캐릭터 캐릭터의 포즈를 정의합니다.HIKCharacterStatepCharacterStatepDstCharacter를 계산합니다. 자세한 내용... | |
| void | HIKSolveForCharacterPrepareEffectorSet (const HIKCharacter *pDstCharacter, HIKCharacterState *pDstCharacterState, const HIKCharacter *pSrcCharacter, const HIKCharacterState *pSrcCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pDstPropertyState, const HIKPropertySetState *pSrcPropertyState) |
| 소스 FK pEffectorSetState에서 IK pSrcCharacterState를 동기화하고 대상 캐릭터 pDstCharacter를 기준으로 IK를 조정합니다. 자세한 내용... | |
| void | HIKSolveForCharacterRetarget (const HIKCharacter *pDstCharacter, HIKCharacterState *pDstCharacterState, const HIKCharacter *pSrcCharacter, const HIKCharacterState *pSrcCharacterState, const HIKPropertySetState *pDstPropertyState) |
pSrcCharacter와 pDstCharacter 사이의 단순한 회전 매퍼 자세한 내용... | |
| void HIKSolveForCharacter | ( | const HIKCharacter * | pDstCharacter, |
| HIKCharacterState * | pCharacterState, | ||
| const HIKCharacter * | pSrcCharacter, | ||
| const HIKCharacterState * | pSrcCharacterState, | ||
| HIKEffectorSetState * | pEffectorSetState, | ||
| const HIKPropertySetState * | pDstPropertyState, | ||
| const HIKPropertySetState * | pSrcPropertyState | ||
| ) |
HIKCharacterStatepSrcCharacterState에서 소스 캐릭터 pSrcCharacter가 주어지고 대상 캐릭터 pDstCharacter에 대해 HIKCharacterStatepCharacterState를 계산합니다.
이 함수는 다음 함수를 순서대로 호출합니다.
| pDstCharacter | 대상 캐릭터 | |
| [out] | pCharacterState | HIKCharacterState - 대상 캐릭터용 최종 솔루션을 저장하는 데 이 HIKCharacterState가 사용됩니다. |
| pSrcCharacter | 소스 캐릭터 | |
| pSrcCharacterState | HIKCharacterState - 소스 캐릭터의 현재 포즈가 포함되어 있으며 대상 캐릭터에 적용됩니다. | |
| pEffectorSetState | HIKEffectorSetState - 대상 변경 후 전체 몸체 IK 패스에 사용됩니다. 이 상태에 대해 적절한 해석 단계를 설정하십시오. HIKSetIKSolvingStep()을 참조하십시오. | |
| pDstPropertyState | HIKPropertySetState - 대상 캐릭터에 대해 솔버에서 사용되는 모든 속성이 포함되어 있습니다. | |
| pSrcPropertyState | HIKPropertySetState - 소스 캐릭터용 이 상태는 HIKEffectorSetState에서 HIKSolvingStepContact 해석 단계를 사용한 경우에만 사용됩니다. 그런 경우 속성 HIKFootBottomToAnkleId을 이 HIKPropertySetState에서 읽어 소스 캐릭터의 발목의 높이를 정의합니다. 이 값은 대상 캐릭터에 대해 생성된 포즈의 높이를 적용하는 데 사용됩니다. |
| void HIKSolveForCharacterPrepareEffectorSet | ( | const HIKCharacter * | pDstCharacter, |
| HIKCharacterState * | pDstCharacterState, | ||
| const HIKCharacter * | pSrcCharacter, | ||
| const HIKCharacterState * | pSrcCharacterState, | ||
| HIKEffectorSetState * | pEffectorSetState, | ||
| const HIKPropertySetState * | pDstPropertyState, | ||
| const HIKPropertySetState * | pSrcPropertyState | ||
| ) |
소스 FK pSrcCharacterState에서 IK pEffectorSetState를 동기화하고 대상 캐릭터 pDstCharacter를 기준으로 IK를 조정합니다.
| pDstCharacter | 대상 캐릭터 | |
| [out] | pDstCharacterState | HIKCharacterState - 대상 캐릭터용 최종 솔루션을 저장하는 데 이 HIKCharacterState가 사용됩니다. |
| pSrcCharacter | 소스 캐릭터 | |
| pSrcCharacterState | HIKCharacterState - 소스 캐릭터의 현재 포즈가 포함되어 있으며 대상 캐릭터에 적용됩니다. | |
| [out] | pEffectorSetState | HIKEffectorSetState - 대상 변경을 마무리하는 데 IK 솔버를 통해 패스를 제어하는 이 함수에서 설정됩니다. |
| pDstPropertyState | HIKPropertySetState - 대상 캐릭터에 대해 솔버에서 사용되는 모든 속성이 포함되어 있습니다. | |
| pSrcPropertyState | HIKPropertySetState - 소스 캐릭터용 이 상태는 HIKEffectorSetState에서 HIKSolvingStepContact 해석 단계를 사용한 경우에만 사용됩니다. 그런 경우 속성 HIKFootBottomToAnkleId를 이 HIKPropertySetState에서 읽어 소스 캐릭터의 발목의 높이를 정의합니다. 이 값은 대상 캐릭터에 대해 생성된 포즈의 높이를 적용하는 데 사용됩니다. |
| void HIKSolveForCharacterRetarget | ( | const HIKCharacter * | pDstCharacter, |
| HIKCharacterState * | pDstCharacterState, | ||
| const HIKCharacter * | pSrcCharacter, | ||
| const HIKCharacterState * | pSrcCharacterState, | ||
| const HIKPropertySetState * | pDstPropertyState | ||
| ) |
pSrcCharacter와 pDstCharacter 사이의 단순한 회전 매퍼
| pDstCharacter | 대상 캐릭터 | |
| [out] | pDstCharacterState | HIKCharacterState - 대상 캐릭터용 최종 솔루션을 저장하는 데 이 HIKCharacterState가 사용됩니다. |
| pSrcCharacter | 소스 캐릭터 | |
| pSrcCharacterState | HIKCharacterState - 소스 캐릭터의 현재 포즈가 포함되어 있으며 대상 캐릭터에 적용됩니다. | |
| pDstPropertyState | HIKPropertySetState - 대상 캐릭터에 대해 솔버에서 사용되는 모든 속성이 포함되어 있습니다. |