チュートリアル / DML~CG制作 いろはにほへと~
第5回:モーションキャプチャーいろはにほへと
- MotionBuilder
- アニメーション
- キャラクター・リグ
- コラム
- チュートリアル
- デジタル・メディア・ラボ
- 中級者
- 学生・初心者
- 映画・TV
はじめに
昨今、モーションキャプチャー(以下Mocap)の手法は、光学式:Viconを中心に、慣性式:MVN,Neuron、ビデオ式:Kinect,PV Studioと様々なものがあります。
Mocapの共通点は、アナログの演者の動きをデジタルで記録することです。
例えば光学式なら、下図のようになります。
デジタル・メディア・ラボと大阪電気通信大学と共同運営をしているJIAMSモーションキャプチャースタジオでは、光学式Vicon Bladeシステム、カメラ:T160×12台でベース120fpsで収録していますので、以下は光学式Mocapの説明になります。
光学式では、マーカーと呼ばれる演者のスーツに取り付けた点の動きを、キャプチャーカメラで記録する方式です。
収録現場で、撮影と同時収録の動画で確認を行い、OKテイクを決めます。
ここまでのMocap収録に関して、立会いをされた経験のある方や映画のメイキング映像などで見たことのある人は多いと思います。
では、いったいMocapスタジオは収録後、いったい何をしているのでしょうか?
①マーカーの動きからボーンの動きには、どうやって変換されているか?
②マーカーのポスト処理って何をしているの?
③モーションビルダー(以下Mobu)でのポスト処理の内容は?
すぐに答えられる人は、中々いないか、Mocapスタジオ関係者でしょう。
普段、見え辛いポスト処理の内容をご紹介します。
①マーカーの動きからボーンの動きには、どうやって変換されているか?
光学式Mocapでは、舞台の中心をx:y:z=0:0:0として、それぞれのマーカーの絶対値を計測します。
収録されたままのデータでは、単なる点の位置情報が舞台の中を移動しているだけです。
その点の情報群それぞれ1点ずつに名前付け(Labelling)を行い、 「演者のどのマーカーで、どの骨を制御する」かを設定する必要があります。
そこで、Mobuのactorの登場です。
まずキャプチャースーツに取り付けたマーカーの位置を参照し、
actorのbodyパーツの変形を使い演者の体型をMobu上で再現します。
(自分の体型を再現するのはこっ恥ずかしいですね。私の場合典型的な胴長短足です。)
Mobuのactorは、スケルトンを持っています。
下の動画のように、actorの腰スケルトンを4点で制御、頭の5点で頭の向き、というように定義することで、単なるマーカーの移動値から、スケルトン(actorの青いスケルトン)の動きに変換をしています。
このactorのスケルトンの動きを、CGキャラクターに真似させることで 最終的なCGキャラクターのスケルトンを動かしています。
本番収録前や最後に、体操データを撮るのは、腕の長さ等の定義付けが上手く機能しているか、 調べるために非常に重要なのです。
②マーカーのポスト処理って何をしているの?
大雑把に言うと、収録時に見えていなかったマーカーを「見えていたことにする処理」です。
例え数百台のViconカメラがあろうとも、仰向けに倒れている人の背中につけたマーカー情報は拾えません。
そこで、先ほどの体操データで定義した、骨折しない限り位置関係が変化しない(リジッドな関係)マーカーから、カメラが認識している他のマーカー(例えば、お腹と胸のマーカー)から、背中のマーカーはここにある「べき」所に位置を復元してやる必要があります。
では、実際にカメラから見えているマーカーの状況を見てみましょう。
マットへ横っ跳びで着地するシーンです。
見事にactorが崩れてしまいました。
動画内の、黒っぽい緑色が、カメラから見えていないマーカーです。
actorスケルトンを動かすと定義したマーカーが、マットに飛び込んだ際に隠れてしまった為に、カメラでマーカー情報を記録できなかったのです。
このままの動きをCGキャラクターに真似させてもOKは出ないですよね。
マーカーを修正する必要があるのはこのためです。
マーカー情報を修正すると、actorは人間の形を保ったまま綺麗に着地します。
以上のように、マーカーのポスト処理は、最終的にCGキャラクターに真似させたいスケルトンを 正しく動かす為に、必要になります。
③モーションビルダー(以下Mobu)でのポスト処理の内容は?
最終のターゲット先になるCGキャラクターは、デフォルメモデルも、リアルモデルも理想的(Ideal)なプロポーションをしています。
コミカルに見える3頭身だったり、カッコよく10頭身で足の長いキャラなどその外見は様々です。
演者と流し込むモデルとのジョイントバランスの違いを無くす作業になります。
では実際に、演者とCGキャラクターでどんな差異が生まれるのでしょうか?
特に大きくめり込むことで分かり易いのが、腕の長さです。
腕の長さが、演者に比べ長い為、演者は胸に手を当てても グッサリと胸に手をめり込ませてしまっています。
このズレを直すために、Control Rigを使用してめり込みを修正します。
演者がCGキャラクターにさせたかった(演じた)通りにactorの設定と上記のControl Rigを使用し、修正を行います。
このような、単純な動作の裏側で、少しずつ作業の手を入れる(retargetting)ことで、
アニメーションの素となるモーションデータを作っていくのです。
ここまで読んで頂くと、どちらが演者の動きを再現できているか一目瞭然かと思います。
A.手足の先がボディやパーツと干渉している点
B.肘や膝ジョイントにフリップが発生している点
C.顔や頭の向きや角度がおかしい点
D.手のひらの向きがおかしい点
E.元のモーションとのずれが目立つ点
上記の点を修正したものが、上のAfterの動画になります。
まとめ
マーカーの収録→マーカーからスケルトン変換→演者とキャラの差を無くす、 この工程をMocapスタジオは、日々延々と行っているのです。
少しでも皆様のMocapへのご理解の一助になれば幸いです。
最後までお付き合い頂きありがとうございました。