😺

【MotionBuilderチュートリアル】第6回~キャラの整理・調整(モーションデータ編)~

2022/11/10に公開

こんにちは、株式会社GUNCY'Sの岡崎です。

前回は3Dモデルデータのキャラクタライズまでを行いました。これでリターゲットに必要な作業で残すはモーションファイルのキャラクタライズのみです。方法自体は3Dモデルデータと大きく変わることはないので、前回では説明していなかった場所の解説も加えて実践していきます。

では早速、モーションデータのキャラクタライズをやっていきましょう。

BVHファイルのインポート

第1回で用意したモーションデータを使用します。

用意していない方はこちらの手順でモーションデータの準備をお願いします。
[ここにリンク]

  1. 画面左上メニューバーのFileからMotion File Import選択
     
  2. 第1回で準備した以下のパスを参照します
C:\Tutorials\MBMotions\Bandai-Namco-Research-Motiondataset-master\Bandai-Namco-Research-Motiondataset-master\dataset\Bandai-Namco-Research-Motiondataset-1\data

“dataset-1_bow_masculinity_001.bvh” を選択します。

そのままImportボタンをクリック

モーションデータが開けたことを確認

このモーションデータをキャラクタライズします。

モーションデータのCharacter作成

前回はAssetBrowserからCharacterを追加しましたがCharacter Controlsから追加することができます。
Character ControlsからSkeltonをクリック

NavigatorでCharacterが作成されたことを確認

NavigatorからCharacterを右クリックしてRenameでMotionに変更

ボーンのマッピング

前回キャラクタライズをするためにはTポーズにする必要があるという解説をしました。
モーションファイルも例外ではありません。モーションファイルも3Dモデル同様にボーンを持っているので、ボーンをTポーズにします。

Characterのマッピング

ボーンのマッピングを行ないます。
前回は3DビューとCharacter Controlsを見ながらマッピングを行いました。
今度はスケマティックビューとCharacter Definitionを使ってマッピングをします。
Character DefinitionはCharacterを選択時、Navigatorに表示されます。

ここでは選択中のCharacterにボーンをマッピングできます。

直感的ではない代わりに、わかりやすく整えてあるボーン名であれば判断が容易です。
たとえば、UpperArm_Lとボーン名がつけられていれば、左上肢(脚の膝より上)のボーンであると名前だけで判断がつきます。
以下はボーン名の例です。

名前だけで判断がつけられるものであればスケマティックビューでの操作がオススメです。

スケマティックビューとCharacter Definitionを操作してマッピングを行なうには以下の操作をします。

  1. マッピングするCharacterを選択してCharacter Definitionを表示
  2. スケマティックビューでマッピングするボーンを1つ選択
  3. 《Alt+左ドラッグ》でスケマティックビューからCharacter Definitionへ、対応したボーン名の枠にドロップ
  4. マッピングしたボーンの名前がMapping Listに更新されていることを確認

この一連の流れを繰り返してモーションデータのすべてのボーンをマッピングします。
手順が多く見えるかもしれませんが、リストにボーンをドラッグ&ドロップしていくだけです。3Dモデルのマッピングと大差はありませんので、気後れしないようにしてくださいね。

マッピング情報の保存と読み込み(Tips)

Characterのマッピングをテンプレートとして保存することができます。このテンプレートはボーンの命名規則が揃っていれば、ファイルを読み込んでマッピングの作業を省略する事ができます。

テンプレートの作成は以下のとおりです。

  1. Character Controlsでテンプレートとして保存したいCharacterを選択
  2. Save Character Definitionボタンを押す

    このアイコンを押す
  3. Template Nameに任意の名前を入力してOKボタンをクリック

    Pathで指定した場所に表示。

パスを指定した場所にテンプレートのファイルが格納されます。
試しにMapping Listを全消去してからさっき作ったテンプレートを呼び出しをしてみましょう。

  1. Crear Allをしてクリア

    Characterのマッピングが外れます。

  2. いずれかのボーンを選択
    ボーンは腰でも脚でもどれでも問題ありません。
    この図ではHipsボーンを選択しています。

  3. テンプレート読み込みのアイコンをクリック

  4. ダイアログからプルダウンをクリック

    さきほど作成したテンプレートの名前を選択しましょう。
    もしプルダウンのリスト内に作成したテンプレートがない場合、<Browse…>を選択して保存した場所からテンプレートを選択してください。

  5. OKボタンをクリックしてさきほど作ったテンプレートを適用
    Match scopeからMatch all bones with prefix、入力欄はBVH:にしておきます。
    これはボーン名の省略する部分を指定します。本連載で使用するモーションデータのボーンすべてにはBVH:と先頭についているためこれで揃えます。

  6. OKボタンをクリック後、ボーンのマッピングが埋まっている事を確認

今回は同じシーン内で保存と読み込みをしましたが、同様のボーン名であれば別のシーンで使用することもできます。

キャラクタライズ(Characterの確定)

ここから直前に整える部分の解説を含めてキャラクタライズの手順を説明します。ポイントは前回の3Dモデルデータのキャラクタライズと同様です。

ボーンをTポーズにする

ここからCharacterのキャラクタライズをするためにボーンをTポーズにします。
今回扱うモーションデータはTポーズをしていないため、なるべくTポーズを作りやすいテイクを使用するのがオススメです。そこで、指定したモーションデータ”dataset-1_bow_masculinity_001.bvh”はTポーズを作りやすいので、こちらを使用してキャラクタライズを行います。

最初のポーズが両腕を上げるだけでTポーズにできそうです。

  1. テイクをTake001に切り替える

    モーションデータが入っていないTake001のテイクに切り替える事でTポーズを保持できるようにします。
(Tips)空のテイクを使う理由について

モーションデータが入っている状態でボーンを回転させても、モーションを再生したりコマ送りをしてしまうと、回転させた操作はすべて無かったことにされてしまいます。

腕を回線させてもコマ送りなどで別フレームを映すと回転が無かったことに……
空のテイクではボーンを回転させた情報が残るので、キャラクタライズをやり直す時の手間を減らす効果が期待できます。

  1. ボーンをTポーズにするために腰、脚、腕、足を揃える
    ここからボーンをTポーズに整えます。
     1. ボーンを選択し、Rキーでローテートモードに切り替えます。
     
    画面に球が映ると同時に右下の入力欄が有効化されます。
     2. 左肩”BVH:UpperArm_L”を選択して左下の入力欄にX:0 Y:0 Z:0と入力します。(グローバルモードになっている事を確認してください。)

    入力すると上腕のボーンがまっすぐ横に向くことを確認できます。
    同様に数値を入力してボーンの回転を整えてTポーズにします。

この時のポイントは

  • 回転するボーンは角度を90°単位で揃える
    例:85→90 11→0 -105→-90
  • 脚はグローバルモードでZ軸のみ整える
  • 足(Foot)はXとZの値のみ調整

ここで回転するボーンは以下のような数値になります。

(BVH:)ボーン名 X Y Z
UpperArm_R -180 0 0
LowerArm_R -180 0 0
UpperArm_L 0 0 0
LowerArm_L 0 0 0
UpperLeg_R 180 0 90
LowerLeg_R 180 0 90
Foot_R -180 90
UpperLeg_L 0 0 -90
LowerLeg_L 0 0 -90
Foot_L 0 -90

Tポーズにしたボーンはこのようになります。

キャラクタライズする

これがキャラクタライズの準備で最後の工程です。モーションデータのボーンをTポーズにできたらキャラクタライズをします。
3Dモデルデータのキャラクタライズの時はCharacter Controlsから行いましたが、
同じの操作をCharacter Definitionからも行なう事ができます。

Character Definitionタブの左上部分にCharacterizeのチェックボックスにチェックを入れます。

クリックするとダイアログが出てくるのでBipedを選択します。

Characterizeにチェックが入った事を確認できたらこれでキャラクタライズは完了です。

最後にこのデータをマージして使用する時のためにグループ化をしておきましょう。

グループ化、モデル同様に

グループ化の手順は3Dモデルデータと同じです。
データを全て選択して右クリック > Create Group From Selected Item(s)

グループ名はMotionsにします。

モーションを追加する

今まではモーションデータをひとつずつインポートしてきたと思います。しかし、MotionBuilderでは、すでに読み込まれているボーンに別テイクとしてモーションを追加することができます。ただし、モーションの追加をするためにはボーン構成が同じである必要があります。
本連載にて使用しているバンダイナムコ研究所が公開しているモーションデータにはボーン構成が同じであり、かつ、ファイルごとに別テイクに分かれたデータが用意されています。

  1. モーションデータを選択
    今回セットアップしたモーションデータはBandai-Namco-Reseach-Motiondataset-1にあったモーションです。このフォルダ内には同じボーン構成のモーションデータがまとめてあります。そのため、このフォルダ内にあるデータであればモーションの追加に適しているので、こちらから選択します。

    今回は”dataset-1_bye_musical_001.bvh”を追加します。

  2. Hipsボーンを選択
    ではまず、追加したいモーションデータのHipsボーンを選択します。

  3. ボーンを選択した状態でMotion File Importを選択

  4. Import Optionsで項目を設定
    画面左上のラジオボタンでMergeを選択します。
    また、プルダウンにはIn Selected Hierarchyが選択されていることを確認します。

  5. Importボタンを押し、モーションが流し込まれた事を確認
    インポート後、ポーズが変われば成功です。テイク切り替えに追加したテイク名が追加されます。

失敗パターンと対処法

Import Optionsで操作を誤ってmergeではなくCreateでインポートしてしまう事もあるでしょう。
Createでインポートしてしまった場合は以下のような表示になります。

画像の右側のスケマティックビューを見ると分かると思いますが、新規でボーンが追加されてしまいます。この状態ではキャラクタライズしたボーンにモーションを適用することができません。追加されてしまったボーンは他テイクに切り替えても残ってしまい、作業の邪魔になってしまいます。
誤って追加してしまったボーンは削除すればOKです。また、ボーンを削除してもテイクが残るのでテイクも一緒に削除しておきましょう。

ここまででモーションファイルの設定は完了です。
設定したファイルを保存しましょう。
FileからSave as …を選択します。

C:Tutorials\MBMotions に Motions_characterize.fbxとして保存します。

今回はモーションデータのキャラクタライズ、モーションの追加インポートについてを実践しました。モーションデータのボーンを見ると3Dモデルデータのボーンと似ているので、キャラクタライズの復習にもなったかもしれません。モデルの前回紹介した画面左側のCharacter Controlsと、今回紹介した画面下のCharacter Definition、どちらの方法でもボーンのマッピング・キャラクタライズができるのでお好きな方で慣れていただいてかまいません。
モーションデータの追加方法については、テイクがファイルごとに小分けにされたモーションデータではよく使うことになります。ボーンを選択してMotion File Importからのmerge、この流れを覚えておきましょう。

次回

次回はリターゲット編に入り、前回と今回でセットアップしたモーションデータと3Dモデルデータを合体させます。いよいよキャラクターが動き始めますのでお楽しみに!次回もよろしくお願いします!
https://zenn.dev/guncys/articles/363883ae075b90

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

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


免責事項

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

Discussion