Motion Builderとは?
MotionBuilderは、Alias(現Autodesk)が開発するリアルタイム3Dキャラクタアニメーションツールで、MotionCaptureのデータからキャラクターアニメーションを作成できるだけでなく、リグ機能など手付けアニメーション作成に役立つ機能が豊富に盛り込まれています。また、マテリアル・ライティング・カメラワークの設定など様々な目的に使用することができます。
作業環境
- OS / Windows XP SP2
- CPU / Pentium(R) 3.00GHz
- Memory / 1.00GB
- MotionBuilder / MotionBuilder 7.5 Extension 2 32bit
- Maya / Maya2008
今回のレビューの目的
今回のレビューでは、ViconIQ 2.5というモーションキャプチャソフトで撮影し編集したc3dデータを作成したモデルにMotionBuilder上で割り当てる流れを中心に説明したいと思います。只今、弊社のmocapdata.comというサイトでクリエイティブコモンズライセンスでモーションデータを提供しておりますのでご利用ください。私は普段同社での開発にMayaを使用しているので、Mayaを利用して説明します。
主なワークフロー
1.モーションデータのダウンロード
↓
2.MayaからFbxファイルの出力
↓
3.MotionBuilder内でのシーンの準備
↓
4.モデルのセッティング
↓
5.Floor Constrainのセッティング
↓
6.モーションキャプチャデータのインポート
↓
7.アクターの用意とマーカーセットの作成
↓
8.MayaにFBXファイルとして出力
1. モーションデータのダウンロード
初めに今回のレビューでキャラクターにつけたいモーションのデータをダウンロードしてみたいと思います。
mocapdata.comに行き、右上のアカウントサービスをクリックします。
すでにアカウントの作成を完了している方はこのままメールアドレスとパスワードを入力し、ログインして下さい。はじめての方は「アカウントを新規作成をしてください」をクリックします。
メニューのメールアドレス、パスワード、名前をそれぞれ入力し登録ボタンをクリックします。
入力したアドレス当てにアカウント認証用のメールが送られますので、メールの文章に従い登録を済ませて下さい。
ログインがうまくいったら、リストのなかのプレビューなどを参考にモーションデータを選びます。ここで私は「戦う」のなかの「二段蹴り」のモーションにしました。 メニュー内のカートに入れるをクリックし、ウィンドウ右上にカートの中身が追加されるので、レジに進むをクリックします。
備考などの文章をしっかり読み理解した後、同意してフリーダウンロードをクリックします。
ダウンロード用のリンクがメールで送られますので、ダウンロードしてください。ここではFBXファイルをダウンロードしました。
2.MayaからFbxファイルの出力
作成したモデルにボーンをアタッチし、スキニングを行います。ボーンのモデルへのアタッチはsmooth bind skinを使用します。
スキニングを完了したら、[ファイル]→[すべてをエクスポート]で出力の形式をFbxに変え、 C:/Program Files/Autodesk/MotionBuilder75 Ext2/ 内に新たなフォルダを作成しを「保存」をクリックします。
FBX Exporterウィンドウが表示されるので、ウィンドウ内のExport to verson:をFBX200602_MB75に変更し「Export」をクリックします。
※FBX Exportオプションが無い方は、Autodesk社のMotionBuilderのページでFBX用のプラグインをダウンロードしてください。
3.MotionBuilder内でのシーンの準備
レイアウトをEditinモードに変更し、Asset Browserウィンドウを右クリックAdd favoritepathをクリックし、先ほど作成したフォルダを選択し[OK]をクリックします。これによりMotionBuilderへデータのパスが繋がれました。[File]→[Open]で出力したFBXファイルを開きます。(Asset Browserウィンドウから直接ドラッグ&ドロップでも開けます)
開いたモデルがとても小さかったり大きかったりしている時は、[Window]→[Add Property Editer]で開かれるPropertyウィンドウ内のObjects→Common→Scalingの値を変えてみてください。
※読み込んだモデルの向いている方向を変更しないでください。後で説明するアクターとのアタッチの際に軸が反転してしまいます。
4. モデルのキャラクタライズ
MotionBuilderにそのモデルのSkeleton階層構造を認識させるためにキャラクタライズと言う作業をします。
Asset Browserウィンドウ内 Template>CharactorsにあるCharactorをモデルの上にドラッグ&ドロップするとCharactorizeという文字が表示されます。
※この時Errorメニューが表示される場合、ジョイントの名前がMotionBuilderの指定する命名規則に従っていない可能性があります。赤で表示されている箇所は最低限必要となるジョイントを表しています。
MotionBuilderのジョイント命名規則
ViewerウィンドウをSchematic(Ctrl+W) に変え、間違った名前のジョイントを右クリックしてRenameで名前を変更します。どのジョイントが間違って命名されているか分らない時はCtrl+Nで検索できます。
名前付けが終了したらNavigatorウィンドウのCharactorをダブルクリックしてメニューを開き、Base(require)項目を展開し、SchematicからAlt+クリックでジョインとを選択し、HipsならHipsをSpineならSpineの箇所にドラッグ&ドロップします。(Base以外の箇所に入れないで下さい)
Charactorizeにチェックを入れ、再度Charactorizeを試してくださいこのモデルのタイプを聞いてくるのでBipedを選択します。(Bipedは二足歩行のモデル用なので四足歩行のモデルを使用する場合はQuadrupedを選択してください)
Navigatorウィンドウ内のCharactorを分かりやすいように、右クリック→Renameで名前を変えてください。
5. Floor Constrainのセッティング
モデルがモーション中に地面より下に沈まないようにFloor Constrainというものをセットします。
Floor Contact MakerはCharactor ControlウィンドウのShow→Floor Contactにチェックで表示されます。
NavigatorウィンドウのRenameしたモデルをダブルクリックし、Charactor Definitionタグ内のCharacterizeにチェックを入れます。Select Move Toolを使用し、表示されたマーカーの一つを選択し靴底の高さと同じ高さまで移動させます。同様に手のFloor Contact(Hands Floor Contact)も設定します。
6. モーションキャプチャデータのインポート
以下はc3dファイルを読み込むための手順ですので、もしサイトからFBXファイルをダウンロードしてきた場合は⑧に進んでください。シーンの中にモーションのデータ(.c3d)をインポートしていきます。
[File]→[Import...]→モーションデータ選択→[Open]を選んで開きます。AssetBrowserからドラッグ&ドロップしてもインポートできます。
Import Optionウィンドウが表示されるのでモーション欄にチェックがあるのを確認し、Importをクリックします。水色をしたいくつかのキューブが現れます。これはモーションキャプチャで使われたマーカーで、タイムスライダを動かすとマーカーも動きます。
マーカーの設定をするのにモデルは邪魔になるので、Viewerウィンドウ→Hide Selected(Shift+H)で非表示にしておきます。もう一度モデルを表示させたいという時は同じ場所のShow Selected(Ctrl+H)をしてください。
7. アクターの用意とマーカーセットの作成
モーションキャプチャのマーカーは関節や骨などを持っていないので、アクターと呼ばれる人型のモデルにその動きをコピーします。
Asset BrowserウィンドウでTemplates→Charactor→ActorをViewerウィンドウ内にドラッグ&ドロップします。紫色をしたActorが表示されます。
Navigatorウィンドウ内でActorの名前をわかりやすいものに変えてください。
Charactor Controlウィンドウ内にあるActor Controlタグを選択し、Show→Actor Skeletonのチェックをはずしておきます。Actorとマーカーをブレンドします。Actorをマーカーの中心に持っていき、ActorのそれぞれのパーツをMoveツールやScaleツールでマーカーの位置に合うように変更します。
大体の調整が終わったら、マーカーセットの作成に移ります。マーカーは体の関節や頭など必要な箇所に設置されているので、それらのマーカーをセットでActorに割り与えます。
Navigatorウィンドウ内Actorsをダブルクリックしメニューを開き、[MarkerSet...]を選択しCreateをします。Actorの到る所に0の表示がされます。この部分にViewerウィンドウからマーカーを選択してドラック&ドロップします。(入れることの出来るマーカー数は5つまでです)
ウィンドウ内に必要なマーカーを割り振り終わった後Snapをクリックし、ウィンドウが表示されるのでTRを選択してください。TRは移動と回転の両方に基づいてオフセットを再計算することを表します。これによりアクター設定のActiveにチェックが入り、Actorが動き出します。
8. モデルへのモーション転送
非表示にしていたモデルをDisplay→Show Unselected(Ctrl+H)で表示します。
Navigatorウィンドウからモデルをダブルクリックでメニューを開きCharactor Definitionタグを選択しInput Type:の項目をActor Inputにし、右にあるActiveにチェックをいれます。Actorと同じ動きをモデルがするようになります。モデルの動きはActorに従っているものなので、モデルが自分で動くように動きの焼きつけをします。
同メニュー内にある[Plot Charactor...]をクリックすると、どのタイプで焼き付けるかを聞くウィンドウが表示されるのでSkeletonを選択してください。新しいウィンドウではPlotボタンを押します。[File]→[Save As]でファイルの形式をFBXに変更して保存してください。これでMotionBuilderでの作業は終了です。
9. Mayaでファイルをインポートする
Mayaを開き、[ファイル]→[インポート]で先程保存したFBXファイルを選択します。FBX Importerウィンドウが表示されるのでモーションを選択し、Importをクリックします。
以上でモデルにモーションを付けることができました。
感想・総評
今回mocapdata.comからモーションデータをダウンロードしMaya→MtionBuilder→Mayaの流れで作成したモデルにモーションデータを当ててみました。一度キャラクターをキャラクタライズしてしまえば、違ったモーションデータをインポートすることで様々なアニメーションを作成することができるので、便利だと思います。また、レビューでは説明しませんでしたが、シーンの中に同じ流れでキャラクターをもう一体持ってきて二人同時に撮影したモーションデータを当てることで、ペアモーションを作成することもできます。
利点としては、
- FloorContactを設定してやることで、地面を突き抜けてしまうモーションデータを修正してくれる
- MotionBuilder独自ビューポートの操作以外にMayaの操作に切り替えができる
- さまざまなフォーマットに対応しているのでデータの転送がしやすい
欠点としては、
- モーションデータを一度Actorを通さないとモデルに転送することができない
- Actorとモデルの動きに多少の誤差が出てきてしまう
などがありました。
弊社のmocapdata.comにて、オープンソース(クリエイティブコモンズ)ライセンスで使えるデータを多数用意しておりますので、MotionBuilderをお持ち方は是非お試し下さい。