リターゲット

モジュール説明

このセクションでは、アニメーションのリターゲットに使用する関数について説明します。

リターゲットはキャラクタにあらかじめ記録されたアニメーションを取得し、同じアニメーションを使用して、異なったスケルトン、寸法、または特性を持つ別のターゲット キャラクタの動きを操作します。リターゲットには、ソース キャラクタ、現在の位置を含む 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)
 ソース キャラクタ pSrcCharacterHIKCharacterState 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)
 pSrcCharacterpDstCharacter との間の単純な回転マッパー表示...
 

関数のドキュメント

void HIKSolveForCharacter ( const HIKCharacter pDstCharacter,
HIKCharacterState pCharacterState,
const HIKCharacter pSrcCharacter,
const HIKCharacterState pSrcCharacterState,
HIKEffectorSetState pEffectorSetState,
const HIKPropertySetState pDstPropertyState,
const HIKPropertySetState pSrcPropertyState 
)

ソース キャラクタ pSrcCharacterHIKCharacterState pSrcCharacterState を使用して、HIKCharacterState pCharacterState をターゲット キャラクタ pDstCharacter について計算します。

この関数は次の関数を順番に呼び出します。

パラメータ:
pDstCharacterターゲット キャラクタ
[out]pCharacterStateHIKCharacterState: ターゲット キャラクタ向け。 この HIKCharacterState は最終ソリューションの保存に使用されます。
pSrcCharacterソース キャラクタ
pSrcCharacterStateHIKCharacterState: ターゲット キャラクタに適用されるソース キャラクタの現在のポーズを含みます。
pEffectorSetStateHIKEffectorSetState: リターゲット後のフル ボディ IK パスに使用されます。 この状態に適切なソルバ ステップを設定するようにしてください。HIKSetIKSolvingStep() を参照してください。
pDstPropertyStateHIKPropertySetState: ソルバがターゲット キャラクタに使用するすべてのキャラクタ プロパティを含みます。
pSrcPropertyStateHIKPropertySetState: ソース キャラクタ向け。 この状態は、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]pDstCharacterStateHIKCharacterState: ターゲット キャラクタ向け。 この HIKCharacterState は最終ソリューションの保存に使用されます。
pSrcCharacterソース キャラクタ
pSrcCharacterStateHIKCharacterState: ターゲット キャラクタに適用されるソース キャラクタの現在のポーズを含みます。
[out]pEffectorSetStateHIKEffectorSetState をこの関数で設定して、IK ソルバがリターゲットを確定するパスを制御します。
pDstPropertyStateHIKPropertySetState: ソルバがターゲット キャラクタに使用するすべてのキャラクタ プロパティを含みます。
pSrcPropertyStateHIKPropertySetState: ソース キャラクタ向け。 この状態は、HIKSolvingStepContact ソルバ ステップを HIKEffectorSetState で有効にしている場合のみ使用されます。その場合、この HIKPropertySetState からプロパティ HIKFootBottomToAnkleId が読み込まれて、ソース キャラクタの足首の高さを定義します。この値は、ターゲット キャラクタに生成するポーズの高さの適用に使用されます。
void HIKSolveForCharacterRetarget ( const HIKCharacter pDstCharacter,
HIKCharacterState pDstCharacterState,
const HIKCharacter pSrcCharacter,
const HIKCharacterState pSrcCharacterState,
const HIKPropertySetState pDstPropertyState 
)

pSrcCharacterpDstCharacter との間の単純な回転マッパー

パラメータ:
pDstCharacterターゲット キャラクタ
[out]pDstCharacterStateHIKCharacterState: ターゲット キャラクタ向け。 この HIKCharacterState は最終ソリューションの保存に使用されます。
pSrcCharacterソース キャラクタ
pSrcCharacterStateHIKCharacterState: ターゲット キャラクタに適用されるソース キャラクタの現在のポーズを含みます。
pDstPropertyStateHIKPropertySetState: ソルバがターゲット キャラクタに使用するすべてのキャラクタ プロパティを含みます。