Human IK ソルバは、キャラクタのノードが特定の標準的な配列で接続されていることを求めます。たとえば、右肩は右肘のペアレント ノードで、右肘は右手首のペアレント ノードになるといった具合です。HumanIK 生体力学モデルは、これらのノードの動く方法についてのいわば知識を備えています。ソルバが 1 つまたは複数のノードを動かして IK エフェクトまたはソース アニメーションの実行時の要求を満たす必要がある場合、ソルバはこの組み込まれた知識を利用して新しいポーズを構築します。
HumanIK がこの生体力学モデルをキャラクタに適用するには、ユーザ用にビルトインされたこのマッピングで既定の HumanIK スケルトンを作成する(既定の HumanIK スケルトンを作成して定義する)、または HumanIK で認識されたノードをキャラクタの既存のスケルトン内にあるジョイントにマップする(既存のスケルトンを HumanIK 用に定義する)必要があります。 ( HumanIK スケルトン定義を作成するも参照してください。)
既存のスケルトンをマップする場合、HumanIK で必要な 15 種類のノードすべてをマップする必要があります。 これにより、キャラクタのスケルトンの主な要素を識別できるようになります。15 種類の必須ノードのキャラクタ化が行われていないと、実行時に HumanIK でキャラクタを制御できません。キャラクタ コントロール(Character Controls)では、これらの必須ノードをすべて正常にマップするまではキャラクタ化を保存またはロックすることはできません。
また、キャラクタのスケルトンに存在するその他のボーンについても、その他のオプションの HumanIK ノードにできるだけ多くマップすることを強く推奨します。これにより、実行時に HumanIK で構築されるポーズの精度が上がり、より本物らしく見えます。次の各セクションで、どのボーンをどのノードにマップするかを判断するための指針を示します。
HumanIK ソルバで必須の 15 種類のノードは、キャラクタ(Character)ビューのフル ボディ レイアウトに表示され、名前の一致(Name Matching)ビューの必須(Required)グループにグループ化されます。
これらの必須ノードはキャラクタのスケルトンの主なジョイント、つまり足首、膝、ヒップ、脊椎のベース、肩、肘、手首、頭を特定します。スケルトンのどのボーンをどのノードにマップするかは、一般的には簡単です。
ノード | マップ先 |
---|---|
Hips | キャラクタの脊椎と脚のチェーンのペアレントになっているボーン |
LeftUpLeg/RightUpLeg | 大腿部の最初のボーン |
LeftLeg/RightLeg | キャラクタの下腿部の最初のボーン |
LeftFoot/RightFoot | キャラクタの足首から足に向かって伸びている最初のボーン |
Spine | 脊椎の中で Hips ノードにマップしたボーンより上にある最初のボーン。これは脊椎の根元を表します。 |
LeftArm/RightArm | キャラクタの上腕の最初のボーン |
LeftForeArm/RightForeArm | キャラクタの前腕の最初のボーン |
LeftHand/RightHand | キャラクタの手首から手に向かって伸びている最初のボーン |
Head | キャラクタの脊椎の最後の完全なボーン、すなわち頭の天辺ではなく、首のチェーンの一番最後の完全なボーン。これは通常、頭のスキニングを制御するボーンになります。 |
HumanIK ソルバは、最大 9 個の追加の脊椎ノード(Spine1~Spine9)と最大 10 個の首ノード(Neck と Neck1~Neck9)をサポートしています。これらのノードは下から上に向かって番号が付けられ、小さい番号ほどヒップに近く、大きい番号ほど頭に近くなります。
手と足は HumanIK ではまったく同じです。それぞれの足と手に同じタイプのジョイントを含めることができます。ただし、キャラクタのそれぞれの足と手は、独立して定義します。これにより、各キャラクタの手足の構成を複雑にすることができます。たとえば海賊のキャラクタに、足首より下にジョイントがまったくない義足が 1 本、足指の根元に単一のジョイントはあるが足指の関節が自由には動かないブーツをはいた足が 1 本、関節が完全に自由に動く手が 1 本、指が何本か欠けてけがをした手が 1 本設定することができります。
キャラクタ コントロール(Character Controls)の定義(Definition)タブを使用すると、各手足に最大 6 本の足指または指を設定できます。 通常の足と手の指は、左から右に、Thumb、Index、Middle、Ring、Pinky と呼ばれます。HumanIK は、ExtraFinger と呼ばれる追加の 6 本目の指または足指の使用をサポートしています。ただし、右手、左足、右足と同様、残りの指のジョイントは、同じ命名規則に従います。
オプションの指のベース ノードと足指のベース ノードは、キャラクタの手足の内側、指と足指が曲がるところにジョイントを形成します。これらのノードを最もよく使うのは、それぞれの指または足指の完全な関節は必須ではなく、指または足指を関節部分で曲げたほうがリアリティが増すような場合です。たとえば、つま先が閉じた靴をはいた人間のキャラクタで足指のベース ノードを使用すると、個々の足指にノードを定義しなくても、足が足指のベースのところでヒンジのように曲がります。
前述の各ノードに加えて、HumanIK ではスペシャル エフェクト用に次のノードをサポートしています。
HumanIK は、ボディの両サイドの 2 つの肩ノードをサポートします。これにより、腕を回して上げたときの人間の肩の動きをシミュレートできます。
スケルトンの、脊椎と、LeftArm または RightArm ノードにマップされたボーンの間にボーンが含まれる場合、これらのボーンを LeftShoulder、RightShoulder、LeftShoulderExtra、RightShoulderExtra ノードにマップできます。最初に肩ノードをマップする必要があります。LeftShoulderExtra ノードは、LeftShoulder ノードがマップ済みの場合のみマップできます。
ロール ノードでは、キャラクタの上腕部、前腕部、大腿部、下腿部のボーンをマップできます。子ロール ノードがあるノードに HumanIK ソルバがロール回転を加えると、ペアレント ノードからそのロール回転の一定のパーセンテージを抽出し、代わりに子ロール ノードに適用することができます。このプロセスをロール抽出と呼びます。ロール抽出は、二足歩行と四足歩行の動物の腕と脚がその軸のまわりを実際に回る方法をシミュレートします。腕や脚の先の方のより適切な位置からスキン デフォメーションを制御できるため、スキニングされたキャラクタに作成したアニメーションのリアリティが大きく向上します。「ロール ボーン動作を定義する」も参照してください。
このノードは、キャラクタの全体的なトランスレーション、回転、スケールに関するオプションのリポジトリとして用意されています。ヒップの概念上のペアレントと考えてください。
ほとんどの場合、Reference ノードを使用する必要はありません。主に次のような特定の状況で使用することを想定しています。
このノードは、ヒップのトランスレーション用の独立したリポジトリとして使用します。キャラクタのこのノードを定義したときに、HumanIK ソルバでキャラクタのヒップ(Hips)ノードのトランスレーションをオフセットする必要がある場合、最終的なトランスレーションは、ヒップ(Hips)ノードにマップされたボーンではなく、HipsTranslation ノードにマップされたボーンに保存されます。
既定では、ヒップの回転は、HipsTranslation ノードが定義されていても、ヒップ(Hips)ノードに保存されます。 ただし、HumanIK を構成して、ヒップの回転を HipsTranslation ノードに保存するようにできます。HipsTranslation ノードを使用して、ソース キャラクタの軌跡をターゲット キャラクタにリターゲットすることもできます。