ソース キャラクタとターゲット キャラクタのサイズが異なる場合は、リターゲット指定(Retarget Specific)を調整してリターゲット結果を微調整できます。
シーンを設定する
- Pepe.mb という名前のシーン ファイルを開きます。前のシーンを保存することはありません。
このファイルは、Maya プロジェクトとして設定した GettingStarted2020LessonData¥HumanIK ディレクトリにあります。
ターゲット キャラクタ(Pepe)とソース キャラクタ(WalkExample)の 2 つの HumanIK 定義キャラクタが Maya シーンに表示されます。
- スケルトン > HumanIK (Skeleton > HumanIK)を選択し、キャラクタ コントロール(Character Controls)ウィンドウを開きます。
- キャラクタ(Character)メニューで Pepe が選択されていて、ソース(Source)メニューで WalkExample が選択されていることを確認します。
- スライド ビューのシーンでアニメーションを再生します。
注: 両方のキャラクタをシーン内に表示するために、必要に応じてカメラをドリーおよびトラックします。
既定では、ターゲット キャラクタ(Pepe)は独自のアクション空間内(キャラクタがモーションを実行する場所)で動作し、ソース キャラクタとターゲット キャラクタ間のスケールの違いが自動的に補正されます。ただし、この例では、Pepe の足の比率も異なっていますが、リターゲットではこれを考慮しません。これは、Pepe の足が WalkExample の足よりも長いため、リターゲットの結果に影響するためです。たとえば、フレーム 1 で Pepe の右足は地面を突き抜けており、歩幅は非常に短くなっています。
ソース キャラクタとターゲットとキャラクタ間のスケールと比率の違いを考慮するために、いくつかのリターゲット指定(Retarget Specific)を調整できます。
ソースの一致(Match Source)プロパティを使用するには
- タイム スライダ(Time Slider)をフレーム 23 に設定します。
両方のキャラクタが歩行中の形に再配置されます。
- キャラクタ コントロール(Character Controls)で、
> キャラクタ定義を編集 > HIK プロパティを編集(Edit Character Definition > Edit HIK Properties)を選択します。
注: このオプションがグレー表示されている場合は、最初に定義(Definition)タブに切り替えなければならない可能性があります。
アトリビュート エディタ(Attribute Editor)で
HIKproperties1 タブが開きます。
ヒント: アトリビュート エディタ(Attribute Editor)の下部にあるタブのコピー(Copy Tab)をクリックし、これらのアトリビュートのコピーを新しいウィンドウに浮かべます。
- リターゲット指定(Retarget Specific)セクションを展開します。
これらのアトリビュートにより、ターゲット キャラクタの特殊な設定を定義できます。
- ソースの一致(Match Source)
をオン(On)にします。
このプロパティをオンにすると、ターゲット キャラクタをソース キャラクタのアクション空間内で動作させ、ソースの IK ブレンド ゴールに伸ばすことができます。
既定では、Pepe のヒップと足の IK ブレンド(
IK ブレンド T (IK Blend T)および
IK ブレンド R (IK Blend R))は 1.00 に設定されています。これは、これらのボディ パーツが WalkExample のボディ パーツに向かって伸ばされること意味します。
その結果、ヒップと足が伸びて WalkExample の位置に一致します。
ただし、Pepe の足が WalkExample と同じ位置に置かれると、Pepe の歩幅が大きくなりすぎて、リアリティーがなくなります。
- キャラクタ コントロール(Character Controls)で、Pepe の左腕のエフェクタを選択し、IK ブレンド T (IK Blend T)プロパティを 1.00 に設定します。
- Pepe の右腕に対して前の手順を繰り返します。
Pepe の腕がソース キャラクタの腕の位置まで伸ばされます。
- キャラクタ コントロール(Character Controls)で、Pepe のリファレンス ロケータを選択します。
- スケール(Scale)ツールを選択して、Pepe のリファレンス ロケータのスケールを増やします。
スケールを増やすと、Pepe は大幅に大きくなり、手が WalkExample の手の位置にぴったり一致します。これは、ソース キャラクタの IK ブレンド ゴールがターゲット キャラクタのスケールに応じて別々に伸ばされたことを示しています。
スケール(Scale)ツールを使用する代わりに、チャネル ボックス(Channel Box)を選択してスケール X (Scale X)、スケール Y (Scale Y)、スケール Z (Scale Z)の値をそれぞれ 2.5 に設定することもできます。
- この例ではこの調整結果は望ましくないので、HIKproperties1 タブ(
> キャラクタ定義を編集 > HIK プロパティを編集(Edit Character Definition > Edit HIK Properties))のリターゲット指定(Retarget Specific)セクションで、ソースの一致(Match Source)
をオフ(Off)にします。
Pepe の歩行をよりリアリティーのある動きにするために、その他のアトリビュートを調整できます。
- Pepe のリファレンスのスケールを変更する場合は、次の手順を実行して再設定します。
- キャラ クタ コントロール(Character Controls)で、リファレンス ロケータを選択します。
- チャネル ボックス(Channel Box)を開き、スケール X (Scale X)、スケール Y (Scale Y)、およびスケール Z (Scale Z)の値を 1 に設定します。
両腕の IK ブレンド T(IK Blend T)を 0 に戻すことを忘れないでください。
Pepe の歩行をよりリアリティーのある動きにするために、その他のプロパティを調整しましょう。
Pepe の歩行をリアリティーのある動きにするには
- HIKproperties1 タブで、アクション空間補正モード(Action Space Comp Mode)をユーザ(User)に設定します。
このアトリビュートでは、正確な値を設定して、ソース キャラクタとターゲット キャラクタのサイズの相違を補正するためのリターゲットのスケール値を決定できます。
注: アクション空間補正(Action Space Compensation)の値が 0.000 の場合、ターゲット キャラクタ(Pepe)は動かなくなり、シーンに表示されません。
- アクション空間補正(Action Space Compensation)フィールドに 10.000 を入力します。
ターゲット キャラクタの位置を決定するとき、ソース キャラクタが実行する全動作のサイズに対する割合としてこの値が適用されます。値が大きいほど、キャラクタの歩幅は大きくなります。この値が小さいほど、歩幅は小さくなります。
- アニメーションを再生します。
アクション空間補正(Action Space Compensation)の値が小さいので、Pepe の歩幅は非常に短いままです。
- アクション空間補正(Action Space Compensation)の値を 48.000 に変更します。
- アニメーションを再生します。
既定の自動(Auto)設定を維持する代わりに、ユーザ(User)定義の値を適用すると、Pepe の歩幅は大幅に長くなります。この改善は、フレーム 54 で確認できます。
このアトリビュートだけを設定することで、良いリターゲット結果が得られました。歩幅を修正したので、良いリターゲット結果を実現するために役立つ他のプロパティに注目できます。
他のプロパティを使用してリターゲットを調整するには
- タイム スライダ(Time Slider)をフレーム 54 に設定します。
- 足首の高さ補正モード(Ankle Height Comp Mode)をユーザ(User)に設定します。
既定では、自動(Auto)モードで足と床の関係が正しくなるようにします。オフ(Off)に設定すると、足首の高さ補正は無効になります。ユーザ(User)に設定すると、足首の高さ補正(Ankle Height Compensation)値を設定してモデルの足と床の間の距離を手動で調整できます。
- 足首の高さ補正(Ankle Height Compensation)値を 5.000 に設定します。
この値はキャラクタの足と床の距離を調整します。高さに関する特殊な条件がある(たとえば、かかとの高い靴やブーツを履いている)場合や、キャラクタの足が大きい場合に、この値はよく調整されます。
- 足首の高さ補正モード(Ankle Height Comp Mode)を自動(Auto)にリセットします。
他のリターゲット指定(Retarget Specific)アトリビュート
HIKproperties に含まれる次のアトリビュートを使用すると、リターゲット結果をさらに微調整できます。
-
ミラー アニメーション(Mirror Animation)
- これをオンにすると、ターゲット キャラクタはソース キャラクタの動きをミラーします。ソルバは、ターゲット キャラクタの対応するノードの適切な位置を決定するために、X 軸に沿ってソース キャラクタの各ノードの位置を反転します。次の例では、ミラー アニメーション(Mirror Animation)がオンになっており、Pepe が WalkAnimation の動作をミラーしています。
-
足の間隔モード(Feet Spacing Mode)
- 既定では、自動(Auto)モードでターゲット キャラクタの左右の足首間の距離が調整されます。ソルバは、ターゲット キャラクタの左右の足首間の間隔を決定するために、その値をソース キャラクタの左右の足首間の間隔に追加します。オフ(Off)に設定すると、この距離は調整されません。ユーザ(User)に設定すると、足の間隔(Feet Spacing)に特定の値を入力して足首を調整できます。次の例の赤でハイライト表示されたバージョンでは、足の間隔(Feet Spacing)の値が 8.000 に設定されています。左の足首は自動モードになっています。
-
重心補正モード(Mass Center Comp Mode)
- 重心補正モード(Mass Center Comp Mode)をオンにすると、脚を動かしたときにキャラクタのヒップが急激に下に引っ張られたり足取りが重くなったりするのを防ぎ、脚の動きをスムーズにします。重心補正(Mass Center Compensation)の既定値は 80.000 です。
-
ヒップ レベル モード(Hips Level Mode)
- このアトリビュートはキャラクタのヒップの高さを計算します。ヒップ レベル(Hips Level)を調整すると、その重心に対してヒップのレベルを制御できます。