馬をキャラクタライズする

馬は、バク、シマウマ、アジアロバ、チベットロバ、サイのような奇蹄類です。

このページでは、馬やその他の同様のスケルトンをHumanIK で使用するためにどのようにキャラクタライズしたらよいのか、いくつかの提案を記載しています。馬をキャラクタライズする方法は数多くある点に注意してください。下記の提案は独自のキャラクタでの使用が適切な場合もありますし、適切でない場合もあります。

Quadruped の例

このページに提案されているものが実際に動くデモンストレーションを見るには、HumanIK SDK に含まれている Quadrupeds サンプルを実行します。<HumanIK_installation_folder>/solutions/<platform_and_toolset>HIKSamples.sln ソリューションはプロジェクトとサンプルのソース コードを統合します。詳細については、「 HumanIK のサンプル」を参照してください。

また、<HumanIK_installation_folder>/data/molecule/scenesQuadrupeds.fbx ファイルを参照してください。

ニュートラル スタンス

キャラクタのニュートラル スタンスは、「Quadruped に HumanIK を使用する」のページで概説されている Quadruped のニュートラル スタンスの要件をすべて満たさなければなりません。

後脚

ボーンのマッピング

馬の後脚を HumanIK ノードにマッピングするときは、膝と距骨(足首のボーン)を混同しないことが重要です。

  • 馬の膝は脚の非常に高い位置にあり、胸部と同じ高さです。
  • 距骨も地面よりずっと高い位置にあり、膝と間違えられることがよくありますが、距骨は LeftAnkleNodeId および RightAnkleNodeId にマップする必要があります。
  • 蹄の裏の方向をコントロールするチェーンの最後のジョイントは、LeftFootNodeId および RightFootNodeId にマップする必要があります。
  • 上記のジョイントの間にあるスケルトンのジョイントはノードにマップしません。

その他の推奨事項

IK ソルバによって後脚に生成されるポーズの全体的な印象を改善するには、通常は IK ソルバ中に後脚が完全に伸びた状態まで開かないようにすることが最善の方法です。これを行うには、キャラクタの HIKPropertySetState で脚の最大伸長の値を小さくすることができます。馬に適した値は通常、約 150 度です。

例:

前脚

ボーンのマッピング

現実の世界では、馬の肘と手根骨(手首)を混同することはありません。しかし、HumanIK キャラクタライゼーション用に、意図的に手根骨を手首ノードにマップした場合に IK ソルバがキャラクタに対してより良いポーズを生成することがあります。

通常、馬には次のマッピング方法をお勧めします。

  • スケルトンのジョイント チェーンの一番上のボーンを LeftCollarNodeId および RightCollarNodeId にマップする必要があります。
  • 馬のスケルトンの実際の肘を LeftShoulderNodeId および RightShoulderNodeId にマップする必要があります。
  • 手根骨を LeftElbowNodeId および RightElbowNodeId にマップする必要があります。これらのジョイントは、正しい方向に曲がるようにするために、反転させなければなりません。
    HIKInverseJoint(character, HIKLeftElbow, 1); 
    HIKInverseJoint(character, HIKRightElbow, 1);
  • 蹄の裏の方向をコントロールするチェーンの最後のジョイントは、LeftFootNodeId および RightFootNodeId にマップする必要があります。
  • この最後のジョイントの直前のジョイントは LeftAnkleNodeId および RightAnkleNodeId にマップする必要があります。
  • チェーン内のその他のジョイントはノードにマップしません。

このキャラクタライゼーションにより前肢の柔軟性が最大限に発揮されます。