IK リターゲッタによるフットスライディングの修正

速度プランティング ワークフローを使って、大きく異なるキャラクター間でリターゲティングする際にフット スライディング (足滑り) の問題を解決します。

IK リターゲッタ を使って異なるキャラクター間でアニメーションをリターゲティングする際に、ターゲット キャラクターで顕著なフット スライディング (足滑り) が生じることがあります。この問題は、ソース キャラクターとターゲット キャラクターの足の長さと姿勢が大きく異なり、足のリターゲティングが不十分である場合に発生する可能性があります。この問題の解決策として、キャラクターが動くべきではないときに IK 目標 を配置する 速度プランティング ワークフローを使用できます。

SpeedPlantOFF.gif

SpeedPlantON.gif

従来のリターゲティングの結果

速度プランティングを使って修正したリターゲティングの結果

このドキュメントでは、速度プランティングを使って、リターゲティングしたアニメーションのフット スライディング (足滑り) を解決する手順について説明します。

前提条件

ソース アニメーションの設定

速度プランティングを設定する最初のステップとして、アニメーション全体でそれぞれのフット ボーンの速度を定義する アニメーション カーブ をソース アニメーション内に作成します。このカーブを アニメーション データ モディファイア を使って生成し、精度の高いモーション データを迅速に作成できるようにします。このステップの目的は、アニメーションのどの時点で地面に足を付けるかを定義するアニメーション カーブ データを使用することにあります。

アニメーション データ モディファイア

目的のソース アニメーション シーケンス を開いた状態で、メイン メニューの [Window (ウィンドウ)] > [Animation Data Modifiers (アニメーション データ モディファイア)] に移動します。

open animation data modifiers

次に、[Add Modifier (モディファイアを追加)] > [MotionExtractorModifier] をクリックしてモーション エクストラクタ モディファイアを追加します。ソース アニメーション内のそれぞれのフット ボーンに対してこれを行います。この例では 2 つのモーション エクストラクタ モディファイアを追加しています。

add motion extractor modifier

両方のモーション エクストラクタ モディファイアで、それぞれのプロパティを次のように設定します。

  • Bone Name (ボーン名): 速度の監視対象であるフット ボーンの名前。この例では ball_rball_l のボーンが使用されています。

  • Motion Type (モーション タイプ):平行移動の速度。

  • Axis (軸): XYZ。

motion extractor modifier properties

速度カーブの生成

アニメーション データ モディファイアを設定したら、[Apply All Modifiers (すべてのモディファイアを適用)] をクリックして、指定したボーンの速度カーブを生成します。

apply all modifiers

カーブ トラックをダブルクリックして カーブ エディタ を起動すると、より詳細な情報を得ることができます。キーフレームを選択するかマウス カーソルを合わせることで、そのキーフレームの値を表示できます。この情報を使って、足を地面に付ける速度のしきい値を定義することができます。ほとんどの場合、カーブの低い平らな部分は足が固定されるときを表し、上のピーク部分は足が動いているときを表していることを意味します。

check curve editor

このアニメーション シーケンスと スケルトン (新しいカーブを作成しているため) を変更するため、この時点で両方のアセットを保存してください。

IK リグの設定

次のステップでは、ターゲット キャラクターの足のチェーン用の IK 目標とソルバを作成します。この例では フルボディ IK (FBIK) ソルバを使用しますが、ご自分のキャラクターに応じて適切な IK リグ ソルバ を選択してください。このステップでは、アニメーション内でキャラクターが動かない場合に IK を使って足を固定するための設定を行います。

FBIK の作成

リターゲティングに使用する、ターゲット キャラクターの IK リグ アセット を開いてその 階層 パネルに移動し、足のリターゲティング チェーンの一つの終了ボーンを右クリックして、[New IK Goal (IK 目標の新規作成)] をクリックします。

new ik goal

次に表示されるプロンプトで [Full Body IK] をソルバとして選択して [Add Solver (ソルバを追加)] をクリックし、その次のプロンプトで [Assign Goal (目標を割り当て)] をクリックします。

add solver and assign goal

次に、新しく作成したこのフルボディ IK ソルバが [Solver Stack (ソルバ スタック)] パネルで選択されていることを確認し、他のフット ボーンを右クリックして [New IK Goal] を選択し、次に [Assign Goal] をクリックします。

new ik goal and assign

最後に、この フルボディ IK ソルバを選択して、そのルート ボーンを階層内で右クリックし、[Set Root Bone on Selected Solver (選択されているソルバにルート ボーンを設定)] を選択します。通常、FBIK ソルバのルート ボーンは骨盤または臀部のものです。

set root bone on selected solver

FBIK の設定

キャラクターの足のボーン構造によっては、FBIK ソルバで制御するボーンに対して追加のボーン設定を作成する必要があります。これにより、FBIK ソルブから生じる可能性のある剛性や不適切なジョイント回転を解決できます。ボーン設定を作成するには、フルボディ IK ソルバ を選択し、設定を作成する対象のボーンを選択して [Add Settings to Selected Bone (選択ボーンに設定を追加)] を選択します。

fbik settings

この例では、一部の足のボーンの回転剛性を解決するために、それらのボーン向けに次のプロパティを含むボーン設定を作成しました。

  • thigh_l

    • Use Preferred Angles (望ましい角度を使用): 有効

    • Preferred Angles (望ましい角度): 0、0、-45

  • calf_l

    • Use Preferred Angles (望ましい角度を使用): 有効

    • Preferred Angles (望ましい角度): 0、0、45

  • thigh_r

    • Use Preferred Angles (望ましい角度を使用): 有効

    • Preferred Angles (望ましい角度): 0、0、-45

  • calf_r

    • Use Preferred Angles (望ましい角度を使用): 有効

    • Preferred Angles (望ましい角度): 0、0、45

fbik preferred angles

お使いのキャラクターのニーズによっては、FBIK ソルバを正しく機能させるために、[Stiffness (剛性)][Limits (制限)][Mass Multiplier (質量倍率)] といった他のボーン設定が必要になる場合があります。詳細については、「ソルバ」ページの「Full Body IK (フルボディ IK)」セクションを参照してください。

IK リターゲッタでの速度プランティング

次に、キャラクターの IK リターゲッタ アセット を開きます。ビューポート内で IK 目標かチェーンのいずれかを選択し、その [Details (詳細)] パネルで [Speed Planting (速度プランティング)] をオンにして有効にします。

enable speed planting

[Speed Planting] セクションのプロパティをそれぞれ次のように設定します。

  • [Speed Curve Name (速度カーブ名)] には、ソース キャラクターで生成した、対応する足のカーブの名前を設定します。この例では「ball_l_translation_speed_XYZ」に設定されています。

  • 生成したカーブの値によっては、[Speed Threshold (速度のしきい値)] をカーブが平らになる値よりもやや高い数値に設定しなければならないことがあります。それでもまだキャラクターの足がうまく地面から離れない場合は、この数値を上げてください。この例では「30」に設定されています。

ターゲット キャラクターの必要なすべての足のチェーンでこの設定を行います。

speed planting properties

最終結果

リターゲッタでアニメーションを再生すると、ターゲット キャラクターのフット プランティングが向上していることがわかります。これで、リターゲティングしたアニメーションを新しいアニメーション シーケンスに エクスポート することができます。

final result

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル