見出し画像

【MotionBuilder】アニメーションが完成するまで ④ ~キャラクタライズ・リターゲット~

★この記事で分かること★
  モデルデータにモーションを対応させる方法
★こんな人に読んでほしい★
  モーキャプを用いたアニメーションに興味のある方
★読み終わるまでの目安時間★
  10分

※6月9日にアップした記事の再投稿になります。

ロジマジBlogへようこそ!
ゴールデンウィーク中に茨城県に行き、大洗水族館でイワシの大群に圧巻されましたモーキャプブログ担当のいっしーです!

さて、#1から#3までの記事ではVICONで収録したモーションキャプチャのデータをShogunで開き、想定外のデータを修正し、骨のデータにする工程までを紹介しました!

ここから先はMotionBuilderという新たなソフトを使用して、いよいよアニメーションの編集作業へと移っていきます!

前回までの記事をご覧いただいてからの閲覧を推奨しますので、まだという方はぜひそちらからどうぞ!



MotionBuilder

MotionBuilderとは、Autodesk社から提供されているアニメーション制作ソフトです!

3Dアニメーションの中でも、特にモーションキャプチャとの親和性が非常に高く、この業界では標準ソフトになっています!

本稿からはこのMotionBuilderを用いたアニメーション編集について紹介します!


3Dモデルに対して感じたこと

アニメーション業界に1年間携り、様々な3Dモデルに触れてきた中でこう感じたことがあります。

3Dモデルの骨の構造、パターンありすぎ!!

はい、ちゃんと説明していきます。
こちらをご覧ください。

これが今回から使用していく3Dモデルで、ピンク色に表示されているものがこのモデルを動かす「骨(スケルトン)」です。
このスケルトンの構造、モデルを作成する人や会社さんによって様々なんですね。

この構造の違いというのはモーキャプ収録したアクターのスケルトンにも言えることでして、、

右のがShogunで生成されたアクターのスケルトンをMotionBuilderで開いたものです。
左の3Dモデルと比較するとスケルトンの本数や形が異なることが分かるかと思います。

スケルトンの構造が違う=そのままではモーションのやり取りができない
ということなのでとある作業をしなければなりません。

その作業がキャラクタライズです!


キャラクタライズ

上述したように、スケルトンの構造が異なるモデル同士ではそのままモーションのやり取りができません。

そこで行うのがキャラクタライズという作業です。
この作業では、3Dモデルとアクターのスケルトンの構造が異なってもやり取りができるように正規化のようなものを行います。

「?」という方もいると思いますが
超簡単に言うと、AとBというスケルトンの構造が異なるモデルがあったとして
「Aの頭はこのスケルトンだよ~。構造は違うけどBの頭はこのスケルトンだよ~。」
という様に、MotionBuilderに優しく優しく教えてあげる作業だと思ってください。


3Dモデルのキャラクタライズ

①3Dモデルを開く

では、MotionBuilderを開きます。
開くと最初はこんな感じの画面です。

基本操作などの詳しい説明はまたの機会にして、今回は作業の全体像だけ説明できればと思います。

キャラクタライズで主に使用するウィンドウは以下の4つくらいですが、名前だけ覚えていただければ大丈夫です。

Viewerウィンドウには3Dビューやそのシーンを構成している要素などを表示させることができます。
さっそく今回使う3Dモデルを開いてみます。

②スケルトンを確認する

スケルトンを表示させます。

この空間を構成している要素を表示させる機能を使うと、、

Viewerウィンドウでスケルトンの構造を図として見ることができます。

③キャラクタライズを行う

いよいよキャラクタライズです!

の前に、以下の条件を満たしていることを確認します。
両腕を地面に対して平行に伸ばしていること(Tポーズ)
Z軸の+方向を見ていること
これを満たしていない場合は条件に相違がないように3Dモデルのスケルトンを動かして調整します。
今回は問題なさそうですね。

キャラクタライズは次のような画面で行います。

なんのこっちゃ分からないと思いますが、ここで各部位のスケルトンを指定していきます。
まず必要最低限なスケルトンをBase(required)に選択していきます。

それぞれのスケルトンの位置は以下の通りです。

これらに対応するスケルトンをそれぞれ指定します。
今回は命名規則に則ったスケルトンでしたが、中には異なった命名のモデルもあるのでよく確認しながら指定していきます。

次に、Referenceという部分にトップノード(階層の一番上にいるもの)を指定します。

このReferenceを指定することでモデル全体の移動、回転などができます。

この時点で問題なければCharacter Controlsウィンドウの表示が灰色から緑色に変わります。

他にもオプションとして指定できるボーンもありますが、この記事では割愛させていただきます。

スケルトンの指定が終わったらCharacterizeにチェックを入れます。

2足歩行(Biped)か4足歩行(Quadruped)かを聞かれるので今回はBipedを選択します。

以上でモデルのキャラクタライズは終了です!
Tポーズさせたままの状態でセーブしておきます。


アクターデータのキャラクタライズ

①Tポーズデータを開く

収録時に撮影したTポーズのデータをMotionBuilderで開きます。
見やすくするためにスケルトンとマーカーの色、形を調整します。

②キャラクタライズの条件に合わせる

ここでキャラクタライズの条件を思い出すと、、
このデータ、Z+方向ではなく、Z-方向を向いているんですね。

こういう場合はクルっと半回転させてZ+方向を向かせます。

次に腕に注目します。
このTポーズは実際にアクターさんが取っている姿勢なので
地面に対して完璧な平行になっているわけではないんですね。

キャラクタライズ的には良くないのでこの腕についても角度を調整します。

微妙な変化なので分かりにくいかもしれませんが、腕を真っすぐにして地面に対して綺麗な平行にしてあげました。

③キャラクタライズを行う

では、こちらもキャラクタライズを行います!
が、流れは先ほどとほとんど一緒なので、、特に書くことはありません!

ただ一つ異なる点としては、Referenceには何も入れなくて大丈夫です!


リターゲット

では、キャラクタライズしたデータを使って最後にリターゲットをします。
リターゲットとは任意のモデルを別のモーションで動くようにすることです。

先ほどキャラクタライズしたモデルデータとアクターデータを1つのシーンにまとめて、、

humanのInput Typeを「character」、Input Sourceを「actor」にすると、、

アクターデータの動きでモデルを動かすことができました!

ここまででモデルを動かすことができるようになりました!


まとめ

キャラクタライズ:モデルデータとモーションデータの間でスケルトンの構造が異なってもやり取りができるように正規化を行うこと
リターゲット:任意のモデルを別のモーションで動くようにすること

今回の記事では、スケルトンの構造が異なるモデル同士でモーションのやり取りを行うためのキャラクタライズ、モデルを動かすリターゲットを紹介しました!
初心者向けに書いている記事ではありますが、モデル一つ動かすためにここまでの作業が必要なんですね。

次回はこのデータを使っていよいよ投球モーションをモデルにさせていきます!お楽しみに!

株式会社LOGIC&MAGIC
モーションキャプチャ担当 いっしー


ロジマジBlogまとめ

*******************************
お仕事や見学のご相談:CONTACT
リクルート:RECRUIT
*******************************

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