【Unity】Animation Riggingで座る高さを調節する

投稿者: | 2023-12-16

Animation Riggingを使って、座る高さや足の位置を調節してみました。

椅子を用意

椅子のモデルを用意しました。

キャラクターに座らせてみると、椅子とおしりの間に隙間ができます。

キャラクターの高さを調節すると足が埋まります。

Rigとコンストレイントを設定

Animation Riggingを使って、足が埋まらないようにしてみます。まずキャラクターのルートの子として空のゲームオブジェクトを作り、「Rig」コンポーネントを追加します。

Animatorコンポーネントが付いている、キャラクターのルートに「Rig Builder」コンポーネントを付け、「Rig Layers」にRigを追加します。

Rigの子に空のゲームオブジェクトを作り、「Two Bone IK Constraint」コンポーネントを付けます。これで右足を調節します。

Two Bone IK Constraintの「Tip」に右足のボーンをアタッチします。

コンポーネントの右上のコンテキストメニューで「Auto Setup from Tip Transform」をクリックします。

これで、残りのボーンがアタッチされ、ターゲットとヒントのゲームオブジェクトも自動で設定されます。

足の位置を調節

プレイモードでキャラクターを椅子に座らせてみます。右足のターゲットがCubeのエフェクターで可視化されています。

これを動かすと足の位置が調節され、それに応じて太ももまでのボーンも動きます。

ヒントのゲームオブジェクトはSphereで表示されています。左右に動かすと膝が開いたり閉じたりします。

同じコンストレイントを左足にも設定します。

座高のコンストレイント

Rigの下に座高を調節するための新しい空のゲームオブジェクトを作り、「Multi-Position Constraint」コンポーネントを付けます。

Multi-Position Constraintの「Constrained Object」にルートのボーンをアタッチしました。さらに子として空のゲームオブジェクトを作り、「Source Objects」に追加しています。

エフェクターを設定

シーンビューで座高のターゲットを選択し、右下の「AR」をクリックします。

プラスボタンをクリックすると、ターゲットにエフェクターが付きます。

オーバーレイの「Shape」でエフェクターの形状を選択できます。

座る位置を動かす

座高のターゲットを上下に動かすと座る高さを変更できます。

前後にも動かせます。

アニメーションを調節

プレイモードでキャラクターを座らせて、シーンビューなどを見ながら、ターゲットやヒントを動かしてアニメーションを調節します。

ターゲットやヒントの位置をコピーして、プレイモードを終了した後にペーストします。

アニメーションでウェイトを設定

Rigコンポーネントの「Weight」を0にするとコンストレイントがすべて無効になります。各コンストレイントごとにウェイトを設定することもできます。

ウェイトを座るアニメーションで変更して、座るアニメーションの途中からウェイトを0から1まで徐々に増加させます。

FBXファイルに含まれているアニメーションは「Read-Only」なので編集できません。

なので、Projectウィンドウでこれを複製します。複製したアニメーションをキャラクターのアニメーターコントローラーのステートにアタッチします。

Ctrl + D で複製
FBXファイルの外に複製される
複製をステートにアタッチする

これでアニメーションにキーフレームを追加できます。

Rigコンポーネントのウェイトだけを変えると途中で足が少し埋まりました。

座高のコンストレイントのウェイトも個別にアニメーションさせました。

コメントを残す

メールアドレスが公開されることはありません。