MODO 機能紹介・チップスサイト このサイトでは、MODOの基本機能やチップスをご紹介していきます。

リターゲティングでBVHファイルをキャラクタに適用するには

https://www.youtube.com/watch?v=8qQSb8pJdeE&hd=1

MODO 801からはリターゲティングの機能が搭載されています。リターゲティングとは、キャラクタアニメーションなどのリグにつけられているモーションを、別のリグへと組み替えることを言います。今回はこのリターゲティングの機能を利用して、BVHフォーマットで保存されているモーションキャプチャのデータをキャラクタへと適用してみます。

サンプルシーンにはキャラクタモデルが一つ用意されており、リグが組み込まれています。このキャラクタの場合は、Auto Character Setupキット(ACSキット)を利用して、リグを組み込みましたが、いちから自分でリグを組み込んでいただいても全く問題ありません。ただし、人型のキャラクタですので、リグの組み方としては、腰の部分にルートとなるスケルトンがあり、そこから上半身へ、また右足、左足部分へと階層を組んでいます。

ではまず、リターゲティングを行う前に、このキャラクタのリグを一つにまとめてアクターとして保存しておきます。アイテムリストからルートとなるスケルトンをダブルクリックし、キャラクタのリグ全てを選択します。リグ全てを選択したら、アクターとセットのタブをクリックし、新規ボタンを選択します。名称はなんでもかまいません。SimpleRigとでもしておきましょう。新規ボタンの下にアクターが追加されたのが確認できます。

では、もう一度、今度は新規のボタンを長押しすると、BVHから生成というボタンが出てきますので、こちらを選択します。ここでBVHフォーマットのファイルを指定します。すると、ビューポート上には、緑の線で人型のラインが表示されます。アニメーションを再生してみると、BVHに保存されているモーションデータが表示されるのがわかります。このモーションデータもアクターとしてまとめられています。リターゲティングを行う際には、この新たにBVHから作成されたアクターがソース、先ほどキャラクタのリグに対して作ったSimpleRigのアクターがターゲットとなります。

ここからリターゲティングを行っていきますが、リターゲティングはまず静止状態(Tスタンスのゼロポーズの状態)でソースのどのリグが、ターゲットのどのリグに対応しているのかを定義する必要がありますので、まずはセットアップモードに入ります。すると、BVHのアクターもTスタンス状態になったのがわかります。ここからソースとターゲットの対応付けを行います。まずはソースとなるルートを選択し、さらにターゲットとなるルートを選択したら、リターゲットツールを起動します。するとリターゲティングのタグが見つからないというメッセージが出てきますが、今回初めてリターゲティングを行いますので、こちらは「はい」で先に進みます。さらにIKを割り当てる旨のメッセージが出てきますので、こちらも「はい」で先に進みます。次にマップファイルを読み込むかというメッセージが出てきます。このマップファイルというのは、ソースとターゲットの対応付けを行った後に、その組み合わせを保存しておくことができるファイルのことです。今回はやはり初回でマップファイル自体が存在していないので、ここは「いいえ」にしておきます。すると、ソースのリグが、ターゲットから離れて存在するようになりました。一番最初に指定したルートだけは対応しているため、緑のラインで接続が表されています。ただし、この時点ではルートだけしか接続されていませんので、対応する箇所を接続していきます。

この接続はビューポート上で簡単に行うことができます。ソース側のポイントをターゲット側の対応するポイントへとドラッグアンドドロップするだけです。間違って接続した場合には、Ctrlキーを押しながら接続されているターゲット側のポイントをクリックすると、接続が解除されるようになります。リターゲティングでは、ソースとターゲットのスケルトン数が同じでなくても全く構いません。

接続が完了したら、セットアップモードを抜けて再生してみます。キャラクタがBVHで読み込んだ動きに合わせて、動くようになりました。後で同じようなBVHファイルに対応させたいときのために、セットアップモードへと戻り、マッピングファイルを保存ボタンをクリックし、ソースとターゲットの対応付けをファイルとして保存しておきましょう。この保存したマップファイルは、別のBVHを適用する際に読み込めば、ひとつひとつソースとターゲットを接続させる作業を省略することができます。

現在、リターゲティングの機能によりキャラクタがBVHに沿って動いていますが、さらに調整を加えるには、通常のモーションへとベイクする必要があります。リターゲティングをベイクボタンをクリックし、モーションをベイクします。ベイクが終了するとリターゲティングを除去するかを聞かれますが、もう必要ありませんので、はいをクリックします。これで通常のモーションとなりました。

このキャラクタの動きを見てみると、腕のところが若干おかしな具合になっているようです。これはもともとのキャラクタのTスタンスと、BVHで収録されているTスタンスとが正確には一致していないために起こってしまう状態なので、これを修正してみます。

修正が必要なのは、この肘に当たるスケルトンのようです。肘のスケルトンには、ベイクしたモーションが適用されているため、この一つ一つのキーフレームを修正するのはかなり難しい作業です。ただし、MODOにはトランスフォームのチャンネルに対して、レイヤーのようにチャンネルを重ねることができますので、ベイクしたモーション自体には手を加えずに、調整していきます。

チャンネルタブへと移り、回転の追加をクリックします。すると従来の回転チャンネルのほかに、もう一つ回転チャンネルが追加されます。回転チャンネルを選択したら、モディファイヤタブからチャンネルホール機能をオンにして、ビューポート上で肘の曲がり具合を確認しながら、値を調節していくと良いでしょう。

このように、リターゲティング機能を利用してモーションキャプチャのデータを読み込み、さらにそのデータ自体を加工するのではなく、回転チャンネルを重ねることで細かく調整できるようになります。

2014年4月28日