見出し画像

モーションRIGのこと(その3)

なかなか本丸に辿り着かなくてヤキモキしてる方もそろそろおられるかと思うんですが、大丈夫でしょうか?飽きてきてないですか?オレはちょっと飽きてきました。とはいえ途中で止めるのも少々みっともないので、今回こそ、RIGとして一応機能するものを作りたいと思います。

コントローラーの作成

前回、キャラクターのボーンにIKを設定しました。今回はそれらも含めた階層構造を持ったコントローラー群を作り、統合的なRIGの完成形を目指しましょう。最初に、コントローラーを作りましょう。コントローラーはキャラクターを隠さないようにワイヤーフレーム表示されていると良いでしょう。形状はシンプルな立方体とか球体ですかね。Mayaだと、プリミティブのアトリビュートエディタで、オーバーライド有効化にチェック入れて、あとは可視以外のチェックを外して、RGBで好きなカラーを設定したら良いと思います。

名称未設定 1 のコピー

移動コントローラーは立方体、回転は球体…みたいな感じで役割に応じて形状を変える流派も居られますが、この辺は好みでいいです。自分は色で区別ついたら良いと思っている派なので、移動は青、回転は黄色…みたいな感じでやってます。いずれ機能が充実してくるとコントローラーの種類が増えてきますので、基礎部分はシンプルにしておいた方が後々の拡張が楽かもしれません。

名称未設定 1 のコピー

ここで、前回を思い出してください。事前に、腰、尻、胸、肩、首、頭は回転による制御を行う、という計画を立てたと思います。まず、これら回転制御用のコントローラーを作りましょう。あと、立方体で、と言いましたが、実際のモデルを表示したときにコントローラーがモデルに隠れてしまったり、他のコントローラーと重なって選択しにくかったりすると本末転倒なので、コントローラーの形状は状況に応じて変えた方が良いでしょう。上図では立方体を縦に潰しています。

名称未設定 1 のコピー

コントローラーの配置と階層構造

次にそのコントローラーを、回転制御するボーンのそれぞれのジョイント位置に移動してください。頂点スナップ機能を使うと楽ですよ。ここで「おや?」と思う人はおられるかもしれませんが、コントローラーがジョイントの位置からずれているものがありますね。

名称未設定 1 のコピー

これは、正直にジョイント位置にコントローラーを置いたとき、隣接するコントローラーに近づきすぎてしまい、誤認するのを避けるために少しずらしています。ただし、回転の中心はジョイントの位置と同じにしておきたいので、オブジェクトは離れた位置にあったとしても、pivotはジョイント位置に合わせておきましょう。そして最終的にはヒストリを消しておきます。

次に、コントローラーに階層構造を設定していきます。キャラクターボーンの階層構造が、腰>胸>首&肩>頭、という風に親から子供へ繋がる階層構造ならば、コントローラーもそれに倣って、同じ階層構造にしていきます。中級者編で紹介しますが、実際のキャラクターボーンの階層構造とは違う構造にすることで出来るアニメーションもありますが、ここではボーンの流れと同じ構造にしておきます。

名称未設定 1 のコピー

ではいよいよ次は、コントローラーとキャラクターボーンをコンストレイントしていきましょう。腰のコントローラー>腰のボーンや、胸のコントローラー>胸のボーン、というように「拘束する側」のオブジェクト(コントローラー)を選んだのち、複数選択(Shiftを押しながら)して「拘束される側」のオブジェクト(ボーン)を選択して、上部「コンストレイント」メニューから「方向」を選びます。これで当該ボーンはコントローラーにRotateコンストレイント(拘束)されました。

名称未設定 1 のコピー

試しに首のコントローラーを回転すると、キャラクターモデルのボーンも連動して動くことが確認できると思います。ボーンを触らないでキャラクターを動かせるなんてちょっと感動です(単純)。気をよくしたところで、他のコントローラーも、同様にキャラクターボーンをコンストレイントしていきましょう。完了したら、回転ベースのコントローラーは一通り完成したことになります。拍手〜!

IKのコントローラーについて

さて次に、前回作成したIK(インバースキネマティクス)のコントローラーを作りましょう。「えっ?エンドエフェクタがコントローラーではないの?」という声が聞こえてきますが、エンドエフェクタのままだと使い辛いので、そのエンドエフェクタを遠隔的に操作するために、専用のコントローラーを作りたいと思います。

名称未設定 1 のコピー

作った直後のIKハンドルは”ikHandle1"とか”ikHandle2"とかになっていて、判りにくいので、判りやすい名前に変更しておきましょう。

名称未設定 1 のコピー

そうしたら、次はIKハンドルの位置にコントローラーとなるオブジェクトを配置します。そうしたら、コントローラーを「拘束する側」、IKハンドルを「拘束される側」として、”コンストレイント”>”位置”で、拘束します。これで、コントローラーを移動させることで手足を自在に動かすことができました。

名称未設定 1 のコピー

さらに、前回では胴体を曲げると、IKハンドルも追従しましたが、今回コントローラーをボーン構造の外部に設定したため…

名称未設定 1 のコピー

胴体を回転させても、コントローラーはワールドに置き去りにされます。これは足も同様で、ワールドにコントローラーを置き去りにすることで、足の接地面をずらさずにアニメーションを作ることが容易になります。

アップベクターの設定

IKのコントローラーを作るとき、同時にアップベクターのコントローラーを作る必要があります。というのはこのコントローラーが無いと、腕や足、IK制御されたボーンを”捻る”ことができません。ではまず、コントローラーとなるオブジェクトを作ります。他とちょっと違う性質のものなので、形状を変えるなど、見た目的に判りやすくすると良いでしょう。

名称未設定 1 のコピー

位置に決まりごとはないのですが、アップベクターの方向の、少し離れた位置にコントローラーを置くのがよさそうです。そうしたら「拘束する側」のコントローラーと「拘束される側」のIKハンドルを順番に選択して、上部メニューからコンストレイント>極ベクトルで、アップベクターのコンストレイントができます。ここでの注意は、「拘束される側」は、後から作ったIKのコントローラーではなく、最初に作った”ikHandle1"などの、大元のIKハンドルとなることです。

名称未設定 1 のコピー

アップベクターの概念は少し飲み込みづらいのですが「この腕、または足の”上方向”はこっちですよ」ということを示すためのもので、このIKの”上方向”を移動されることで、結果的に腕や足の”捻れ”を表すことが出来る…と自分は理解しています。ちなみに、このアップベクターのコントローラーを、腕や足にごく近い場所に配置してしまうと、腕、足自身の動きによって”上方向”がグルグル変化してしまい、うまくアニメーション制御できないと思います。なので、アップベクターのコントローラーは出来るだけ離す、というのが大事です(ちょっと何言ってるか判らないと思いますが、実際にアニメーションを作ってみると判ると思います)。

仕上げ

いよいよコントローラーの位置を整えて、初級者編RIGとしての一旦の完成を目指しましょう。ボーン構造と同じく、RIGにとっても階層構造はとても大事です。前述の”IKがワールドに置き去りになっている”件についても、腰の回転コントローラーの下層(子供)にこのIKコントローラーを配置したら、ワールドに置き去りにならず、腰の回転に追従することになります。

名称未設定 1 のコピー

なので、どのコントローラーを、階層のどこに置くのか、ということがとても重要になってきます。例えば、先ほど作成したアップベクターのコントローラーは、腕のコントローラーに追従させたくないけど、胴体の動きには連動させたい…と言ったような場合は、胴体ボーンの下位に配置することもあるでしょうし、今回は作りませんでしたが、視線を制御するためのコントローラーを作った場合は、あえて階層構造のどこにも含めず、キャラクターアニメーションから独立した制御とすることもできます。なので、コントローラーを作って終わり、ではなく、それらコントローラー群を意図を持って、統合された階層構造の適切な場所に配置する、ということが大事です。自分は、この「アニメーションコントローラー群が、意図を持って統合された階層化された機構」が、RIGと呼ばれるものだと解釈しています。

初心者RIGの特殊仕様

今回は、複雑なことを一切しない、入門編のRIG制作ということで、ひとつやっていないことがあります。それは、手首、足首のIKコントローラーを移動させて、さまざまなポーズを作ることは出来るけど、手首、足首自身を回転させたいときはどうするの?という点です。今回は、特殊な対応としてこのIKコントローラーを「制御する側」、モデル側の手首ボーンを「制御される側」として、直接コンストレイントを結んでしまいます。

名称未設定 1 のコピー

IK制御により、コントローラーを”移動”させることで様々なポーズを取らせることが出来る上に、そのコントローラーを直接”回転”させることで、手首、または足首の回転制御もできてしまうわけです。

名称未設定 1 のコピー

さて初心者用、とはいえあらゆるポーズが簡単に作ることが出来るRIGが完成しました。実際にアニメーションを作ってみて「ここはもっとこうした方がいいな」とか「こういう制御を追加しよう」など、いろんな欲が出てくると思います。今回紹介した方法は基本的なものではありますが、それゆえに拡張しやすいものにもなっていますので、まずは一度試してみて、そこから鳥や、獣など、いろんな形のRIG作成につなげていってもらえたらと思います。次回はもう少し高度な制御が入った”中級者向けRIG制作”を紹介したいですね。

最後に

実際にアニメーションを作成する頃のために気をつけておいた方が良いことがあります。それはトランスフォームアトリビュートの不要箇所にロックを掛けるということです。

名称未設定 1 のコピー

回転ベースのコントローラーでは移動やスケール、可視性は使いません。手首、足首のコントローラーでも、スケールと可視性は不要なはず。不要なものを間違って触って変なデータを入れてしまうことはままあります。また、アニメーションカーブを編集するのにも変なトランスフォームが入っていたら作業しにくく、またミスも誘発しますので、使わないトランスフォームにはロックをかけて、触れられないようにしておくことをオススメいたします。

というわけで、出来るだけ判りやすく紹介したつもりですが、如何だったでしょうか。ここから楽しいアニメーション制作が始まるわけですが、それはまたいずれ…。次は”モーションリグについて〜中級編”でお会いしましょう。

続く(いつか)

この記事が気に入ったらサポートをしてみませんか?