車をコントロールするためのリグ

MadCarから帰ってきたファイルをMayaで開きます。
MadCarのヘルパーを複数使ったことで、階層がMAYAから送り出したときとだいぶ変わっています。
帰ってきたファイルをベースに送り出した元ファイルを読み込んで、オブジェクトを差し替えながら更新していきます。



差し替える理由ですが、3dsMaxを通しているのでオブジェクトやマテリアルが変更されているが、複数オブジェクトもマテリアルもあるため、細かくすべてを検証する時間と手間がないためです。
差し替えながら、コントロールしやすいリグを組んでいきます。



「「リグ」とは、3Dキャラクターに動きを付ける際の仕組みやコントローラーのことを指します。CGを取り扱う方であれば、一度は聞いたことがあるかもしれません。映画のエンドロールなどでも「Rigging」と記載された項目が存在します。」

引用元:3Dアニメーションのリグについて@melta_incより
https://3d-modely.com/blog/animation/rigging/

キャラクターアニメーションの際に用いられる為、リグとはキャラクターを扱うときだけ使うものと思われる方が多いのですが、動きをコントロールしやすくするためのもの全般を指すので、今回のように車にリグを組むことももちろんあります。



車は4つのタイヤが動いているので、4つのタイヤ全てにアニメーションを設定するのは少し大変です。タイヤの動きは、基本的には前に向かって転がり、ブレーキで減速、アクセルで加速、減速します。ブレーキもハンドブレーキ(サイドブレーキ)を使うと後ろのタイヤ(後輪)のみブレーキがかかります。前のタイヤ2つ(前輪)はハンドルによって方向が変わります。
このように複雑な動きをするのですが、前2つ(前輪)、後ろ2つ(後輪)は同じように動くので前輪と後輪ともに片側が動くと反対側は同じ動きをするように設定します。



具体的にはMayaのロケーターを2つ使って、前輪・後輪の動きを作り、各タイヤが対応するロケーターと同じ動きをするように設定します。
また、1つのリグに複数のアニメーションをさせると動きがおかしくなった時の原因の究明に時間がかかります。
要は細かく分けて役割分担させると良いです。

https://youtu.be/_3jlpLby110

出来上がったリグは「TranF」を動かすと前輪が回転します。「TransR」を動かすと後輪が回転します。
ハンドルを切る感覚で「Handle」を動かすと前輪が一緒に動きます。
前輪は頃がるとハンドルによる縦の回転の2つがあるので、リグも分けています。
MadCarから帰ってきたモデルは、「Suspension」の名前のヘルパーが各車輪にあります。
ここが路面の凹凸を上下運動して吸収するサスペンションになっており、キーフレームが打たれています。このサスペンションの下に各車輪を配置していきます。



左前輪はサスペンション用のヘルパーの子供に「HandleL」というヘルパーを置いています。
このヘルパーがハンドル用のヘルパー「Handles」の回転と同じ動きをします。
これはアニメーションの機能のコンストレイント>方向で軸を「Y」のみ同期(コンストレイント)するように設定します。
この「HandleL」というヘルパーの子供にブレーキパッドのオブジェクトとタイヤのオブジェクトを配置します。タイヤのオブジェクトは前輪回転用の「TranF」に方向コンストレイントすることで一緒に回転します。
右の前輪も同じように設定します。すればリグの完成です。



後輪はサスペンション用のヘルパーの子供にタイヤとブレーキパッドを配置します。
後輪回転用のヘルパー「TransR」とタイヤが同じ回転をするように
アニメーションの機能のコンストレイント>方向を設定します。
タイヤのオブジェクトの子供にホイールとボルトのオブジェクトがあるので、一緒に回転します。ブレーキパッドが別の階層にしたのは、ブレーキパッドが回転しないためです。
反対側も同じように設定すればリグの完成です。