見出し画像

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

はじめに

本職のリガーさんではないので、すごい本格的なRIGは作れないのですが、ロー〜ミドルポリゴンのゲームを作るのに、盛り盛りのHumanIK(DCCツール側が用意している汎用キャラクターRIG)を使ったりするのは流石に襷が長すぎると思うのと、ゲームの場合、色んな骨構造のキャラクター出てくるので、ちょっとしたRIGなら自分で作れたり、編集したりできた方がいいんじゃないかってことで、今回はアニメーションRIGについてちょっとお話しようかと思います。今はどうかは判らないんですが、初心者向けのRIG教則本とかあんまり無かったので。

画像2

RIGってなんぞ?って人のために簡単に説明(そんな人はこの記事に興味ないと思いますけども)いたしますと、3Dでキャラクターモーションをつけるときに、ボーンを直接移動、回転させたりしてアニメーションさせることって多分あんまり無くて、そのボーンを外部のコントローラーから遠隔的に操作する、このコントローラーのことをRIGっていいます。RIGはIK(インバースキネマティクス)によって、人形のを手をつまんで感覚的に動かしてポーズを作ったり、または関連する複数の骨を連動させて動かしたりする仕掛けなどによって、簡単な操作で複雑なことをさせるための機構、ってことになります。

スクリーンショット 2022-01-10 8.11.19 のコピー

なので、プレイヤーが激しいアニメーションをするアクションゲームなどを作る場合にはこのRIG(アニメーションコントローラー)が無いと、なかなか思うようにキャラクターを動かすことが出来ないのではないでしょうか。昨今は3Dモデルも凝ったものになっていて、指の先までバッチリ骨が入っていたり、肘や膝を曲げたときにモデルの意図しない変形を回避するために使用するような補助ボーンが仕込まれていたり、場合によってはキャラクターの表情を制御するRIGなんてのもありますね。さすがにそこまでいくと本職さんの領域ではあるんですが、今回は、ちょっとしたキャラクターアニメーションを作るときに、ある程度RIGのことを知っておくとスムーズに作業できていいですよ、というお話です。

と、サンプルを貼ってみましたが、RIGをちゃんと作っておけば、ポーズをつけたりアニメーションを作ったりするのがグッと楽になる、ということは判ってもらえたでしょうか。最終的にはちょびっとだけ高度な(爪先起点の足首制御とか、IKとFKの切り替えくらい)ところまでやってみますけど、基本機能だけで基礎的なRIG作成ができるところまでを解説したいと思います。

FKとIKについて

ここで前提となる、FKとIKについての紹介いたします。ボーンの入ったキャラクターを制御する方法には2種類あって、ひとつはボーンを回転させて望みのポーズを取らせるFK(フォワードキネマティクス)。一般的には手首、足首、体の捻りなど”ものの向き”を制御するのに適しています。

スクリーンショット 2022-01-10 8.11.19 のコピー

次にIK(インバースキネマティクス)です。こちらは、蝶番のようになった2本のボーンの始点と終点を結び、終点側に作成されたエフェクターを摘んで、まるで人形の手足をつまむようにして直感的にポーズをつけることに適しています。

スクリーンショット 2022-01-10 8.11.19 のコピー

また、FK制御では足の接地など「キャラクターをその場から移動させないでアニメーションさせる」ことが非常に困難ですが、IKで足を地面に固定しておけば、それ以外をどれだけ動かしても足は地面にぴったり接地したままなので、望みの結果が得られやすい…というかFKで接地系のアニメーションを作るのは無謀です。

スクリーンショット 2022-01-10 8.11.19 のコピー

FKとIK、どちらが優れているか、ではなくて用途によって使い分けるため、必要な部分に必要なコントローラーを仕込んでいく、ということがRIG制作では大事になってきます。例えば、接地感のあるアニメーションを作成する場合は、IKはとても重要ですが、空中で激しいアクションをつけたい!と思った場合には、FKの方が扱いやすかったりします。全ては、作ろうとするアニメーションの性質によるものであって、そういった場合に対応するため、RIG内で、FKとIKの制御切り替えを行えるようにしておいた方が良いでしょう。

全てはコンストレイント(拘束)から

…と、ここまで書いてみて、RIGを作ったことは無いまでも、触ったことの無い人を対象にするのは若干無理があるような気がしたりしてきました。でもまあ、乗り掛かった船ですし、このまま進めてみましょう。ちゃんと判りやすく残しておけばオレがボケたときに役に立つかも知れないし(今もだいぶ怪しいけど)。

さて、複雑なことをしないのであれば、RIGを作る際に「親子関係」と「コンストレイント(拘束)」のふたつだけ判っていれば大丈夫なんじゃないかと思います。「親子関係」はあとでやるとして、まずは「コンストレイント(拘束)」について解説いたします。最初の方に「RIGとはキャラクターのボーンを遠隔的に操作するコントローラー」みたいなことを言ったと思います。ではさっそく、ボーンを外部から操作する仕組みについて解説いたします。

スクリーンショット 2022-01-10 8.11.19 のコピー

それではまず、上図のオブジェクトを、コントローラーを使って制御できるようにしましょう。具体的に言うと、コントローラーを回転させることで、直接オブジェクトに触れずに、コントローラーと同じ回転をさせる、ということです。

スクリーンショット 2022-01-10 8.11.19 のコピー

ではまず、コントローラー(拘束する側)を選んで、そのままShiftキーを押したままオブジェクト選択して、上部メニューから「コンストレイント」→「方向」を選びます。これで、オブジェクトはコントローラーに回転制御をコンストレイント(拘束)されました。

スクリーンショット 2022-01-10 14.42.48 のコピー

これにより、コントローラーを回転させると拘束されたオブジェクトも同じ動作を行います。今回は、回転を拘束しましたが”位置”や”照準に向く”などもコンストレイントさせることが可能です。

拘束の親子関係

コントローラーの親子関係(階層構造)によって、オブジェクトにより複雑な制御を行うことが可能です。つまり、キャラクターボーンの親子関係を継承したコントローラーを使えば、複雑なキャラクターのボーンをコントローラーを使って制御することができるってわけです。

スクリーンショット 2022-01-10 8.11.19 のコピー

例えば、オブジェクト側とコントローラー側、それぞれで親子関係が結ばれた上で、黄色いコントローラーは黄色いオブジェクトに、緑のコントローラーは緑のオブジェクトに結ばれていたとします。

スクリーンショット 2022-01-10 14.45.54 のコピー

すると、子供にあたるコントローラーを回転させたとき、オブジェクトの階層構造の、子供にあたるオブジェクトのみが回転します。

スクリーンショット 2022-01-10 14.49.30 のコピー

コントローラーの親を操作すると、親の子供にあたるコントローラーは影響を受けます。したがって、コントローラーと拘束関係のあるオブジェクトは同様の動作をすることになります。これがRIG構造の大前提となります。まずは基本中の基本として、頭の中に入れておいて頂ければと思います。つまり、この仕組みを利用して、キャラクターボーンと同じ階層構造を持つコントローラーを作成して、コントローラーの各所に対応するボーンをコンストレイントで拘束すれば、キャラクターボーンを触ることなく、コントローラーによる遠隔操作が可能となります。そこにキャラクターアニメーション制作を容易にする仕組みを組み込んだもの、それがここでいうRIGと呼ばれるものだと思って頂いて大丈夫かと思います。

名称未設定 1 のコピー

後述しますが、キャラクターボーンの階層構造とは違う階層構造を用いることで、例えば爪先を回転させることで足首を浮かせるような、通常の流れとは逆の制御(通常は足首より爪先の方が階層が下なので、つま先の方が足首の影響を受けるはず)などが可能となります。

座標系についてのおはなし

忘れてましたが、RIG構造の前提となる、ワールドとローカル座標系の概念についても書いておかないといけないですね。モーションに限らず、3D全般に通じる概念なので改めて書くことでもないかもですが、ワールド座標というのは言葉の通り、ワールドの軸に合致した座標系です。

名称未設定 1 のコピー

一方、ローカル座標系というのは、階層構造における上位(親)の座標を継承した下位(子供)が持つ座標系で、RIGにおいては例えば、手首のボーンをローカルではX軸の回転で手首を捻っただけでもワールドから見ると、上位にあたる、胸、肩、肘の形によって座標軸を継承しますので、全ての軸に複雑な回転値が入力されています。

名称未設定 1 のコピー

例外はありますが、基本的には階層構造の下位(子供)にあたるトランスレート(移動、回転、スケールなどの数値)は、こちらのローカル座標系を使うもの、と思ってもらってまずは問題ないかと思います。

というわけで、長い導入部となってしまいましたが、次回からはもう少し具体的にキャラクターRIG制作の流れを紹介したいと思います。

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