チュートリアル / GEMBAコンバート道
第2回:モーション・セットアップ編
- 3ds Max
- MotionBuilder
- アニメーション
- コラム
- チュートリアル
- データ
- 上級者
- 中級者
- 映画・TV
こんにちは、株式会社GEMBAの佐藤 宏樹と申します。
セットアップチームのリーダー・TDとして、キャラクターのセットアップやアニメーション作業をサポートするスクリプトを作成しています。
第2回はモーション・セットアップ編です。
今回はプリビズやVコンと呼ばれるムービーの作成やモーションキャプチャのデータを利用したアニメーションの作成について取り上げたいと思います。
GEMBAでは主に、モデリング・レンダリングは3ds Max。モーションデータを用いたアニメーション作業はMotionBuilderで行っています。
そこで必要な3ds MaxとMotionBuilder(以下MB)の間でのコンバートのお話です。ちょっと長いですが、興味をお持ちの方はお付き合いください。
MotionBuilderを使う最大のメリット
まず、3ds Maxでアニメーション作業を完結せずにMBで作業するのには理由があります。
● ビューポートのレスポンスが速い
(=ストレスなく作業できる)
● 異なるキャラクタ間でモーションのリターゲットが行える
(=体格の違うキャラでモーションの流用ができる)
● FBXでモーションのやり取りができる
(=モーションの更新が簡単)
● モーションキャプチャのデータの取り扱いが簡単
(=リアルなモーションが再現できる)
3ds MaxとMotionBuilderを活用する流れ
3ds MaxとMotionBuilderで行う工程を大きく別けるとこの4つ。
● コンバート1 (3ds Max)
○ セットアップ(リギング・ボーン・ウェイト調整)完了後、3ds MaxからオブジェクトをFBXでエクスポートする。
● コンバート2 (MB)
○ MBでのセットアップ。
キャラクタライズとコントロールリグ作成。
● コンバート3 (MB)
○ モーションキャプチャデータの流し込みや手付けのアニメーション作業と、
アニメーションのエクスポート(FBX)。
● コンバート4 (3ds Max)
○ FBXの読み込み。
それでは順番に解説して行こうと思います。
本記事で使用したソフトウェアのバージョンは3ds Max 2015 SP2とMotionbuilder 2015です。
コンバート1.3ds MaxからMotionBuilderへ
セットアップは3ds Maxで行いました。
まずはMBで作業するためのFBX書き出しをします。
3ds MaxからFBXエクスポートの設定
● Animation は必ず On
● Deformers の Skin も On (Morphsはモーファー使いたい時にOn)
● Units は Auto で問題なし
● Up Axis は Y-up
オブジェクト名は重複してはいけない
3ds Maxでは、シーン内で同名のオブジェクトが存在することが可能ですが、Motionbuilderではできません。(重複した場合、自動でリネームされます。)
確実にアニメーションを更新したい場合は、MBのオブジェクト名が3ds Maxオブジェクト名と合致している必要がるのでコンバート前に重複名が無いかチェックしておきましょう。
ルートノードを作成する
3ds Max では Z up 、 MBやMayaでは Y up というように、ワールド軸が異なります。
ルートノードを作成してあげることで、軸の違いが解消されます。
FBXは階層の一番上にあるノードを自動的にX軸90度回転をして補正します。
3ds Maxのシーンで階層の一番上に必ず原点作成したヘルパーやダミーなど作成しましょう。
3ds Maxのキャラクターリグでどれが使える?
3ds Max でキャラクターリグを組む場合、現状では大きく3種類存在しています。
Bipedは古くから存在しているcharacter studio のリグシステムで3ds Maxの普及に大きく貢献しました。
CATはCharacter Animation Toolkitの略で、多彩なプリセットと自動歩行モーションなどの特徴があります。
そして上記の様なプラグインではなく、標準のBoneとコントローラーを組み合わせて作るオリジナルのリグシステムがあり、弊社ではCustom Rigと呼んでいます。
上記3つのリグシステムを独断と偏見で比較してみました。
Custom Rig | Biped | CAT | |
---|---|---|---|
特徴 | MBを活用することで大量生産可能 | カットの対応力高い (アニメ業界に広く普及) |
クリーチャーなどの多彩なプリセット |
作業のレスポンス | ◎ | 〇 | 〇 |
MBでの再現性 | ◎ | △ | △ |
IK/FK | △ | ◎ | 〇 |
セットアップの手軽さ | △ | 〇 | ◎ |
MAXでのモーションのEditのし易さ | △ | ◎ | ◎ |
生産性 | ◎◎ | 〇 | △ |
物量の多い案件ではMBを活用することで抜群の生産性を誇るCustom Rigの使用をお勧めします。
この3種をコンバートするうえで、注意するポイントがあります。
Biped
BipedにMBから書き出したFBXを読み込むには以下のような設定が必要です。
1. 3ds Maxで、BipedのStructure設定。
a. Triangle Pelvis → Off、Biped足が背骨ではなくPelvisにリンクする
b. Triangle Neck → On、Biped肩が首ではなく背骨にリンクする
2. MBでCharacter Mapping ListのHipsは、PelvisではなくCOMを使用する。
3. MBで、ShoulderのSkeletonに制限をつける。
Bipedは肩骨がX軸で回転しません、ところがMBでCharacterizeすると自由に回転してしまいます。3ds MaxにFBXをインポートした際に違いが出るので、MBに制限をかけて動きをあわせる必要があります。Aimコンストレインを利用してX軸の回転をさせないことで挙動を合わせたりします。
CAT
FBXを直接読み込んでもアニメーション更新がされないのが欠点です。
FBXを読み込むためには、Capture AnimationというCATの機能を使用します。
ボーンの動きをCATに追従させながらキーフレームに変換するという手法なのですが、
FBXの動きとあわせるためには、3ds MaxとMBで設定が必要になります。
1. CATの背骨・首の設定をFK(keyframe)にする。
2. CATの足にIKを使いたいときは、Capture Animation用に
足のIKターゲットに対応するオブジェクトをMBの方にも作成する。
※IKターゲットに位置合わせしたヘルパーをFootにリンクして利用しました。
Custom Rig
自由にカスタマイズができるため、コンバートする上で特に問題がありません。
不利な点で言えば、MB以外でアニメーション作業をする場合は、全身FKのみとなる点ですが、
MBのみで作業する場合は正確に素早く結果を反映することができます。
この記事で登場するおじさんは、もちろんCustom Rigを使用しています。
コンバート2.MotionBuilderで仕込み
マテリアルの移植
● MBで複数のUVマップを同時に扱うことができないので、必要な場合は3ds Maxからエクスポートする前にテクスチャをベイクしてひとつにしておきます。
● MBでマテリアルの透過表現をする場合はLighted Shaderを適用しましょう。
コンストレインの移植
MBで3ds Maxと同じリグの挙動を再現することで、
より最終に近い形でストレスなくアニメーション作業が行えます。
補助的な役割のボーンなど、同じ挙動をするようにコンストレインを作成します。
1. 3ds Maxの位置・方向・ルックアットのコンストレインはほぼ同じ挙動&設定。
2. IKは完全に一致しないので、あらかじめ破綻する箇所を確認しておく。
3. 3ds MaxのScript・ExpressionのコントローラはMBのRelationで再現する。
ここで重要なことは、コンストレインをする位置にあらかじめオブジェクトを配置してすることです。不用意な移動などが防げます。
3ds Maxで行うコンストレインの作業と全く同じ作業をMBで行うことになるため、 スクリプトを使って手間を省きつつ、名前など同じルールになるようにします。※スクリプト配布中
1. write_Constraint_setting_forMB.ms (maxscript)
○ 位置コンストレイン・方向コンストレイン・ルックアットコンストレイン・IKという一般的なコンストレインに対応
○ コンストレインをMBで作成するPythonスクリプトをリスナーに書き出します。
2. create_MaxConstraint_Template.py (python)
○ MBのPython Editorで開いて一部書き換えて利用します。
○ 3ds Maxから書き出したスクリプトをこのファイル内の所定の場所にコピペして、保存します。それを実行すると、コンストレインが作成されます。
詳しくは配布中データの【使い方】ご覧ください。
コンバート3.MotionBuilderからエクスポート
3ds Maxへカメラを移植するには
MBのカメラを3ds Maxへ移植するにはいくつか制限があります。
そもそも、カメラのずれを防ぐためにMBで作業を行う前に気をつけなければいけません。
● MBのカメラの設定を3ds Maxのカメラと同じ設定にする。
Aperturemode: Horizontal
Film Width: 36mm
○ 3ds Maxで使用する予定があるのなら、
ApertureModeでVerticalは使わないこと。
● Optical Center設定は使わない。
○ 3ds Max標準カメラは対応していません。
● 位置・回転アニメーション用のNullを作成する
○ アニメーションキーをカメラ以外のノードに打つようにしてください。
○ カメラに直接アニメーションキーを打つと、3ds MaxにFBXを読み込んだ際に、アニメーションキーが端折られる可能性があります。
ちなみに、MayaのカメラをMB経由で3ds Maxに持ってくると…
MayaのカメラをFBX経由でMBに持ってくると、Aperture ModeがFocal Lengthとして認識されます。
MBのGate Fitというプロパティにしは、MayaのFit Resolution Gateにあたる、Horizon / Vertical / Fill のいずれかが入っています。
よって、Mayaでカメラを作成するときもHorizonにする必要があるのです。
アニメーションを書き出す
アニメーションを書き出すノードだけを選択して、FBXを書き出します。
カメラとキャラクタのFBXは別々で書き出します。理由は後述。
コンバート4.そして3ds Maxへ
3ds Maxのシーンを開いて、MBから書き出したFBXを読み込みます。
キャラクタのFBXをインポート
● File contentは、Update animation
(同名で必要なアニメーションのみが更新されるので、不要なオブジェクトが増えません。)
● Animation はOn
● Takeは読み込むTakeを必ず指定する
● UnitsはAutoで問題なし
● Up AxisはY-upにする
カメラのFBXをインポート
● File contentは Add か Add and Update animation にする。
(同名のオブジェクトが更新されるか、新しく追加されます。予めFBXをキャラクタとカメラに分けていたのは不必要なオブジェクトが増えるのを回避するためです。)
● Animation は On
● Take を指定する
● Units は Auto
これで無事に変換出来ました。
では実際にモーションキャプチャのデータから作成したムービーをどうぞ。
MBと3ds Maxとのプレビューの比較になっています。
お疲れ様でした。
GEMBAのMotionBuilderを使ったワークフローいかがだったでしょうか。
色々手間はかかるように見えますが、アニメーション作業の効率化やクリーンな状態でシーンのアニメーション更新など少なくないメリットが得られると思います。
今回も使用したスクリプトをGEMBAウェブサイトで配布していますので、どうぞ。
ホームページアドレス
http://gemba.co.jp/wp/downloads/column2/