このセクションでは、アニメーションのリターゲットに使用する関数について説明します。
リターゲットはキャラクタにあらかじめ記録されたアニメーションを取得し、同じアニメーションを使用して、異なったスケルトン、寸法、または特性を持つ別のターゲット キャラクタの動きを操作します。リターゲットには、ソース キャラクタ、現在の位置を含む HIKCharacterState(通常、あらかじめ記録されたアニメーションから描画)、およびターゲット キャラクタが必要です。リターゲット ソルバは、ソース キャラクタのポーズを模倣してターゲット キャラクタに新しいポーズを作成し、そのポーズをユーザが指定する HIKCharacterState に保存します。このポーズを取得して、ゲームのターゲット キャラクタに適用します。
ターゲット キャラクタにさまざまなキャラクタのプロパティを指定して、リターゲット ソルバの操作を制御することもできます。たとえば、Reach の値を指定して、ターゲット キャラクタのボディのさまざまなパーツをソース キャラクタのボディの位置にどの程度近づけるかに影響を与えることができます。この手順は、リターゲット プロセス後に IK ソルバを呼び出して実行されます。
モジュール | |
| Low-LoD Retargeting | |
| このページでは、LOD の低いキャラクタへのリターゲットの実行に使用する関数の詳細について説明します。 | |
関数 | |
| void | HIKSolveForCharacter (const HIKCharacter *pDstCharacter, HIKCharacterState *pCharacterState, const HIKCharacter *pSrcCharacter, const HIKCharacterState *pSrcCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pDstPropertyState, const HIKPropertySetState *pSrcPropertyState) |
ソース キャラクタ pSrcCharacter に HIKCharacterState pSrcCharacterState を使用して、HIKCharacterState pCharacterState をターゲット キャラクタ pDstCharacter について計算します。表示... | |
| void | HIKSolveForCharacterPrepareEffectorSet (const HIKCharacter *pDstCharacter, HIKCharacterState *pDstCharacterState, const HIKCharacter *pSrcCharacter, const HIKCharacterState *pSrcCharacterState, HIKEffectorSetState *pEffectorSetState, const HIKPropertySetState *pDstPropertyState, const HIKPropertySetState *pSrcPropertyState) |
| IK pEffectorSetState をソース FK 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 | ||
| ) |
ソース キャラクタ pSrcCharacter に HIKCharacterState pSrcCharacterState を使用して、HIKCharacterState pCharacterState をターゲット キャラクタ pDstCharacter について計算します。
この関数は次の関数を順番に呼び出します。
| pDstCharacter | ターゲット キャラクタ | |
| [out] | pCharacterState | HIKCharacterState: ターゲット キャラクタ向け。 この HIKCharacterState は最終ソリューションの保存に使用されます。 |
| pSrcCharacter | ソース キャラクタ | |
| pSrcCharacterState | HIKCharacterState: ターゲット キャラクタに適用されるソース キャラクタの現在のポーズを含みます。 | |
| pEffectorSetState | HIKEffectorSetState: リターゲット後のフル ボディ IK パスに使用されます。 この状態に適切なソルバ ステップを設定するようにしてください。HIKSetIKSolvingStep() を参照してください。 | |
| pDstPropertyState | HIKPropertySetState: ソルバがターゲット キャラクタに使用するすべてのキャラクタ プロパティを含みます。 | |
| pSrcPropertyState | HIKPropertySetState: ソース キャラクタ向け。 この状態は、HIKSolvingStepContact ソルバ ステップを HIKEffectorSetState で有効にしている場合のみ使用されます。その場合、プロパティ HIKFootBottomToAnkleId が、この HIKPropertySetState から読み込まれ、ソース キャラクタの足首の高さを定義します。この値は、ターゲット キャラクタに生成するポーズの高さの適用に使用されます。 |
| void HIKSolveForCharacterPrepareEffectorSet | ( | const HIKCharacter * | pDstCharacter, |
| HIKCharacterState * | pDstCharacterState, | ||
| const HIKCharacter * | pSrcCharacter, | ||
| const HIKCharacterState * | pSrcCharacterState, | ||
| HIKEffectorSetState * | pEffectorSetState, | ||
| const HIKPropertySetState * | pDstPropertyState, | ||
| const HIKPropertySetState * | pSrcPropertyState | ||
| ) |
IK pEffectorSetState をソース FK pSrcCharacterState で同期し、ターゲット キャラクタ pDstCharacter に対する IK を調整します。
| pDstCharacter | ターゲット キャラクタ | |
| [out] | pDstCharacterState | HIKCharacterState: ターゲット キャラクタ向け。 この HIKCharacterState は最終ソリューションの保存に使用されます。 |
| pSrcCharacter | ソース キャラクタ | |
| pSrcCharacterState | HIKCharacterState: ターゲット キャラクタに適用されるソース キャラクタの現在のポーズを含みます。 | |
| [out] | pEffectorSetState | HIKEffectorSetState をこの関数で設定して、IK ソルバがリターゲットを確定するパスを制御します。 |
| pDstPropertyState | HIKPropertySetState: ソルバがターゲット キャラクタに使用するすべてのキャラクタ プロパティを含みます。 | |
| pSrcPropertyState | HIKPropertySetState: ソース キャラクタ向け。 この状態は、HIKSolvingStepContact ソルバ ステップを HIKEffectorSetState で有効にしている場合のみ使用されます。その場合、この HIKPropertySetState からプロパティ HIKFootBottomToAnkleId が読み込まれて、ソース キャラクタの足首の高さを定義します。この値は、ターゲット キャラクタに生成するポーズの高さの適用に使用されます。 |
| 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: ソルバがターゲット キャラクタに使用するすべてのキャラクタ プロパティを含みます。 |