🤖

【MotionBuilderチュートリアル】第13回 オフセット編集

2023/01/12に公開

株式会社GUNCY'Sの岡崎です。

新年あけましておめでとうございます。この連載もあと少し続きますので、今年もどうぞよろしくお願いします。そろそろお仕事や学校の授業なども再開してきた頃かと思います。もしかしたら長期休みに入って自由に時間が使える学生さんもいるかもしれませんね。ちなみに、僕個人としては学校の設備やサービスの学割などは使えるうちに使っておく事をオススメします。学生無料で使えるライセンスもあったり、個人ではなかなか用意できない環境でじっくり腰を据えて挑戦ができるかもしれません。

さて、前回まででモーションのノイズを取り除いたところまでを解説しました。今回はMotionBuilderでの作業の仕上げ、モーションを完成させていきます。元のデータを補正する編集作業ということで、オフセット編集とも呼びます。

今回ではAnimation Layerという機能を使用します。この機能は収録されたモーションを後から修正するのに役立つ機能となっています。

Animation Layerとは?

Animation Layerとは、アニメーションカーブをレイヤーとしてかけ合わせる機能です。レイヤーとは、端的に言うと元アニメーションの差分を持った情報で、アニメーションカーブとして情報を持ちます。元のアニメーションカーブへレイヤーをかけ合わせることでモーションの補正を行なう事ができます。
たとえば、今回のようにすでに収録されたモーションを補正する場合について考えてみましょう。すでにあるアニメーションカーブのキーを打ち直す方法が一番単純かと思いますが、毎フレームに打たれているキーを1つずつ打ち直すのは現実的ではありません。

そこで、モーションにレイヤーを重ねる事を考えてみましょう。足すだけであれば元のアニメーションカーブは崩さないまま、差分を付け足すことでモーションを補正することができます。
Animation Layerは元のモーションに対して加算を行なうので、元のアニメーションカーブはそのままで、差分の編集に集中できます。

下の地面に土をかぶせて整地するように、レイヤーを重ねる事でモーションを整えていけるというわけです。

モーションを修正する

ではこのAnimation Layerを使用してモーションの修正をしていきましょう。

使用するファイルは前回Filterを適用した”Kaya_Filter.fbx”です。

前回についてはこちらをご覧ください。


https://zenn.dev/guncys/articles/255353dca107cd

今回の課題は以下の通りです。

  • 棒がくっついている手の形を掴んでいる形へ修正する
  • 左手の腰へのめり込みを修正する

Animation Layerからレイヤーを追加する

Animation Layerウィンドウから赤枠のボタンをクリックします。

するとAnimLayer1というレイヤーが新しく追加されます。

この追加したレイヤーでアニメーションを編集していきます。

コントロールリグで手の形を整える

では次に棒を掴んでいるように手の形を整えていきます。

追加したAnimation Layerで手のボーンを動かします。

テイクのフレームを、手を上げているフレームに合わせます。

右手の指の形を、持たせた棒に合わせていきます。

コントロールリグの右手の指を動かします。

指の微調整はFKの回転で行うと形状を整えやすいです。リグでFK(棒状の部分)を選択すると指1本の関節をすべて選べます。関節ごとに細かく調整する場合はスケマティックビューのノードを選択することで1つの関節のみを選ぶこともできます。

複数のFKを選んでローカル座標軸で回転させればそれぞれの関節に回転角をつけることができます。また、指と指の間の開き具合も調整すると自然な形に仕上がりやすいです。

手の形を整えられたら、《K》キーを押してAnimLayerに指のFKのキーを打ちます。

キーを1フレームのみ打てば、全体のフレームに適用されます。

腰にめり込んでいる手を直す

左手を見てみると腰にめり込んでしまっています。

次はこちらを直していきましょう。

今回はコントロールリグにエフェクタをさらに追加する方法で修正をします。

まず、Character ControlsのControlsタブから、左手のIKエフェクタを右クリックします。

メニューからCreate Aux Effecterをクリックします。

すると新たにエフェクタが追加されます。

このエフェクタは他のオブジェクトの子にしてボーンを追従できます。

この場合は左手首のエフェクタを追加したので左手首を追従させる事ができます。

追加したエフェクタは他オブジェクトの子としてつけ直して使う事ができます。つまり、もともとあった手首のIKエフェクタとは別に

今回は腰のIKエフェクタの子として親子付けします。


追加したエフェクタを親子付けする事で、手の位置を腰に追従できます。

ペアレントコンストレイントを使用する方法

ちなみに、過去紹介したペアレントコンストレイントを使用して、腰に追加エフェクタを追従させる方法でも同様の事ができます。
コンストレイントの使い方についてはこちらをご覧ください。
https://zenn.dev/guncys/articles/08bbfafd109894

ここから追加したエフェクタを移動・回転して自然な位置に手を持っていきます。

あとは左手の指は自然な形に整えます。

指を整えたらキーを打っておきましょう。キーを打っておかないと再生した時に修正した成果がリセットされてしまいます。 くれぐれも忘れずに。

キーを打てたらそのテイクを再生して動作を確認しましょう。

3Dモデルへプロットする

動作確認ができたら、コントロールリグから3Dモデルのボーンへプロットします。

この操作でKayaの3Dモデルのボーンへ

KayaのCharacterを選択し、Plot Characterをクリックします。

Skeletonボタンをクリック

そのまま画像の通りの設定であることを確認してPlotボタンをクリック

コントロールリグが非表示になり、3Dモデルのボーンにキーが打たれている事を確認できます。

このファイルは”Kaya_offset”として保存します。

ここまでの工程ができましたら、MotionBuilder内での編集は完了です。お疲れ様でした!

これでこの連載も最終回……ではありません!

そもそも、Unityにモーションを取り込むまでがこの連載です!

次回

ということで次回はいよいよUnityにインポートしていきます。

Unityにモーションを取り込む際の注意する点もありますので、今回のファイルはいったんそのまま保存という形にさせていただきました。とはいえ、ここまでの連載で行なってきた工程をこなしていれば難しいことではありません。次回もぜひよろしくお願いします!

モーションキャプチャーでお悩みの方は

株式会社GUNCY’Sではモーションキャプチャーの総合支援サービス"Mocap SOS"を開始しました。
モーションキャプチャーについてのご相談はぜひ弊社へお問い合わせください。
https://guncys.com/news/news-1983/
メールでのお問い合わせ:mocap_contact*guncys.com
(※記号「*」を「@」に置き換えてください。)


免責事項

  • 当記事のコンテンツ・情報について、できる限り正確な情報を提供するように努めておりますが、正確性や安全性、最新性を保証するものではありません。
  • 理由の如何に関わらず、本記事に掲載されている情報の変更・削除、および本記事の更新の中断・中止によって生じるいかなる損害についても、当社は責任を負わないものとします。
  • リンク先へのアクセス、リンク先からのダウンロード、その他の方法を通じて取得したコンテンツは、自身の裁量とリスクをもって使用されるものとします。
  • 当記事から移動された先のサイトは、当社が管理、運営するものではございません。移動先サイトで提供される情報の真偽、サービス等につきましても責任を負いませんのでご了承ください。なお、予告なしに内容が変更または廃止される場合がございます。

Discussion