🐈

【MotionBuilderチュートリアル】第10回 ~コントロールリグについて~

2022/12/08に公開

こんにちは、株式会社GUNCY’Sの岡崎です。

今回からモーションの編集についての解説に入っていきます。

第10回ではモーションの編集のために使用するコントロールリグについて解説します。

コントロールリグについては、一度第8回のプロットの解説で少し出てきたと思いますが、今回は更に詳しくキャラクターの制御方法について解説していきます。モーションキャプチャーのデータをプロットした後、修正を加える際に活用するのでぜひ覚えていってください。

使用するファイルは第8回で作成した”Kaya_plot.fbx”を開いて操作することをオススメします。

コントロールリグとは?

コントロールリグとはMotionBuilderに搭載されている機能の1つで、キャラクターモデルの制御をするための機能です。リターゲットの回などで説明したCharacterの情報を基に生成されます。FKとIKとでそれぞれ階層を持ち、キーをうちながら編集をすることができます。プロットの際に生成される場合がよくありますが、コントロールリグを生成することで、モーションの補正の作業をしやすくする利点があります。

コントロールリグの各オブジェクトのことをエフェクタと呼び、その中でも赤や青の球をIKエフェクタ、黄色の棒をFKエフェクタと呼びます。FKエフェクタはボーンと同じ部分に、IKエフェクタはボーンの関節部分に生成されます。

IK、FKとは?

IKはインバースキネマティクス、FKはフォワードキネマティクスの略で、ボーンの制御方法です。

FK(フォワードキネマティクス)

まず、FKは各ボーンの角度を個別に指定する方式です。たとえば、肩のボーンをFKで回転させれば肩のボーンだけが回転します。もちろん、回転させたボーンの子にあたるボーンもその影響を受けます。親→子と動きが伝播していくのがFKです。

IK(インバースキネマティクス)

一方でIKは選択したボーンを動かした時、それに関連したボーンが合わせて回転する方式です。たとえば、手首を動かすとそれに合わせて自動的に肘が逆算されて曲げ伸ばしされます。シンプルに言うと、子→親に動きを伝播させるのがIKです。コントロールリグのIK階層は赤や青の球で表示されます。

たとえば、机に置いてある物を手に取る時、肩や肘の角度は意識しないと思います。「手を伸ばす」という言葉どおり、手の位置を物に近づけようと意識することでしょう。肘の角度はその結果として曲げ伸ばしされています。そのため、IKは比較的直感的な制御に近い方式であると言えます。

スケマティックビューでの見え方

スケマティックビュー表示でのコントロールリグは、このようになっています。

左の黄色のノードがFK、右側の赤と青のノードがIKの階層となっています。

IK階層のノードはそれぞれ、一番上の親であるReferenceと直接つながっているのがわかると思います。これらはグローバル座標のデータを基に動いているため、このような構造になっています。

FK階層はモデルのスケルトン構造と同様に親子関係が連なった構造になっています。そのため、親の回転が子に影響されるようになっています。3Dモデルのボーンと重なっていると見づらいですが、コントロールリグにもボーン同様にFKで動かす階層が存在します。

Character Controls

コントロールリグはCharacter同様にCharacter Controlsで表示されます。

Characterとの違いは、白い棒が表示されている点にあります。この白い棒はFKの階層オブジェクトで、それぞれ選択することができます。あくまでコントロールリグのFKオブジェクトを選択するので、3Dモデルのボーンを混同しないように注意してください。

各ボタンの動作について

Characterでは操作できなかったボタンがコントロールリグの選択時には操作できるようになっていると思います。これらのボタンはコントロールリグを操作するためのボタンです。それぞれ使う場所を簡単に説明します。

オブジェクトの表示・非表示

左からIK Effecter、FK Effecter、Skeletonとなっています。

これらのアイコンをクリックすると対応するオブジェクトの表示・非表示を切り替えられます。
Skeltonをオフにするとキャラクター3Dモデルのボーンが非表示になり、さきほど触れたFKオブジェクトが見やすくなります。

キーイングモード・IKの適用範囲

左からFullbody、Fullbody - No Pull Manipulation、Body Part、Selectionとなっています。
これら4つのモードを切り替えます。これらはキーを打つエフェクターの範囲とIKの影響範囲を切り替える事ができます。

Fullbody

こちらはIKエフェクタを操作した結果が全身に影響します。たとえば手のIKエフェクタを動かすと全身にキーが打たれます。また、手の稼働域を出てIKエフェクタを動かした場合、肘以外に肩や足までが手に引っ張られるように動きます。

Fullbody - No Pull Manipulation

こちらはBody Partと同じ動作なので割愛しますが、Body Partとは違って、キーを追加する時に全身のオブジェクトにキーを打ちます。

Body Part

選択した部位に限定した範囲でIKを影響させます。また、キーを打つ時の範囲も同様になります。右手なら右肩まで、左足首なら左上肢まで、といった範囲です。

Body Partモードでエフェクタを選択すると、Controlsに影響範囲が白のアウトラインで強調表示されます。

Selection

キーを打つ範囲が選択したオブジェクトのみになります。Full BodyやBody PartのようにIKは効かないので注意してください。SelectionモードでIKを効かせるには選択しているエフェクタのIK Blendのウエイトの値を上げる必要があります。

ピン

IKでのポーズの制御は自動制御であるため、動いてほしくない部分まで動かしてしまう可能性もあります。このピン機能を使うと動かしたくないIKエフェクタを固定できます。

Pin Translation

設定したIKエフェクタの位置座標を固定します。位置座標のみなので、肘を固定した場合でも曲げ伸ばしは可能です。

Pin Rotation

設定したIKエフェクタの回転座標を固定します。胸のIKエフェクタを固定した場合は体のひねりがなくなります。

ただし、完全に固定されるわけではなく、限界まで極力固定した位置・回転を維持しようとします。また、回転と位置の両方を固定することもできます。

今回はコントロールリグについての解説をしました。プロットの時になんとなくで作成してからはあまり深く触れていませんでしたが、編集の工程に入るこのタイミングで改めて操作解説を挟ませていただきました。今後、モーションの編集を行なうにあたってはこれらの操作を活用していくので覚えておくと役立つでしょう。

次回

コントロールリグの動かし方がわかるようになったら、少しポーズを変えてアニメーションを再生して確認してみましょう。再生をするとおそらくポーズが元に戻ってしまうと思います。これはポーズを変えた後にキーを設定していないため、もともとあったアニメーションのポーズへのリセットされたことが原因です。

次回はそういったキーの設定方法を含め、FCurveの使い方について解説します。今回少しだけ触れたキーイングモードについても触れますので、次回もよろしくお願いします!
https://zenn.dev/guncys/articles/74c12ec6716978

モーションキャプチャーでお悩みの方は

株式会社GUNCY’Sではモーションキャプチャーの総合支援サービス"Mocap SOS"を開始しました。
モーションキャプチャーについてのご相談はぜひ弊社へお問い合わせください。
https://guncys.com/news/news-1983/
メールでのお問い合わせ:mocap_contact*guncys.com
(※記号「*」を「@」に置き換えてください。)


免責事項

  • 当記事のコンテンツ・情報について、できる限り正確な情報を提供するように努めておりますが、正確性や安全性、最新性を保証するものではありません。
  • 理由の如何に関わらず、本記事に掲載されている情報の変更・削除、および本記事の更新の中断・中止によって生じるいかなる損害についても、当社は責任を負わないものとします。
  • リンク先へのアクセス、リンク先からのダウンロード、その他の方法を通じて取得したコンテンツは、自身の裁量とリスクをもって使用されるものとします。
  • 当記事から移動された先のサイトは、当社が管理、運営するものではございません。移動先サイトで提供される情報の真偽、サービス等につきましても責任を負いませんのでご了承ください。なお、予告なしに内容が変更または廃止される場合がございます。

Discussion