MotionBuilder Live Sync For Unity

最新情報は新しいサイトをご確認ください

製品概要、ドキュメント、ライセンス、ダウンロード情報は新しいサイトへ移行しました。

概要

MotionBuilder から キャラクターのモーションや Prop の位置を Unity にリアルタイムに同期するツールです。
MotionBuilder の characterize 済みの Character を Unity の Humanoid Avatar に,
MotionBuilder の Prop を Unity の Object にリアルタイムで Position, Rotation を同期することができます。

MotionBuilder Plugin のインストール

  1. Download ページから MotionBuilder のプラグインをダウンロードする
  2. MotionBuilder が既に起動している場合は、一度終了する
  3. ダウンロードした zip ファイルを解凍する
  4. インストールする MotionBuilder のバージョンにあったプラグイン (MoBuLiveSyncTool.dll) を MotionBuilder のプラグインフォルダにコピーする
    インストール例
    MotionBuilder 2023 にインストールする場合、 解凍したフォルダの中の 2023\MoBuLiveSyncTool.dll を
    MotionBuilder のプラグインフォルダのパス: 例)C:\Program Files\Autodesk\MotionBuilder 2023\bin\x64\plugins
    にコピーして下さい。

MotionBuilder Plugin のインポート

  1. MotionBuilder の Resources ウィンドウの Asset Browser タブをクリック
  2. Asset Browser の Templates > Devices をクリック
  3. Devices 内の "LiveSyncDevice" を Scene にドラッグ & ドロップ
  4. Navigator ウィンドウの Devices にプラグインが追加されていれば、インポートに成功しています
Plugin のインポート

MotionBuilder Plugin の設定

Characters タブ

Characters タブでは、同期するキャラクターに関する設定を行います。
※ 同期するキャラクターは MotionBuilder と Unity でボーンの回転角のオフセットが一致している必要があります。
キャラクターの追加
Navigator の Characters から characterize 済みの Character を table の header 部分にドラッグ & ドロップすることで同期する Character を追加できます。 Character の追加
画面説明
  1. "Remove" ボタンを押すと選択中の Character が削除されます。
  2. "Clear All" ボタンを押すと全ての Character が削除されます。
  3. "Refresh" ボタンを押すと Character 一覧が更新されます。
    また、自動的に characterize 済みの Character 全てが追加されます。
  4. "Root Name" のカラムには、追加した Character 名が表示されます。
    追加した際、Character 名を変更すると自動的に更新されます。
  5. "Subject Name" のカラムには、受信側の Unity で識別するための文字列が表示されます。
    追加した際、Character 名が自動的に入力されます。 また、ダブルクリックすることで編集できます。

    ※ 受信側の Unity は Subject Name で Character を識別するため、一意な文字列を入力して下さい。
    Subject Name が重複すると、同期データを正しく送信できなくなります。

    ※ Characters と Props で Subject Name が重複しても問題ありません。

  6. "Send" のカラムには、同期データを送信するかどうかが表示されます。
    チェックを入れると同期データが送信されます。 チェックを外すと同期データが送信されなくなります。
Character 画面説明

Props タブ

Props タブでは、同期する prop に関する設定を行います。
Prop の追加
Navigator の Scene から同期するノードを table の header 部分にドラッグ & ドロップすることで Prop を追加できます。 Prop の追加
画面説明
  1. "Remove" ボタンを押すと選択中の Prop が削除されます。
  2. "Clear All" ボタンを押すと全ての Prop が削除されます。
  3. "Refresh" ボタンを押すと Prop 一覧が更新されます。
  4. "Root Name" のカラムには、追加した Prop 名が表示されます。
    追加した際、Prop の Root Name を変更すると自動的に更新されます。
  5. "Subject Name" のカラムには、受信側の Unity で識別するための文字列が表示されます。
    追加した際、Prop 名が自動的に入力されます。 また、ダブルクリックすることで編集できます。

    ※ 受信側の Unity は Subject Name で Prop を識別するため、一意な文字列を入力して下さい。
    Subject Name が重複すると、同期データを正しく送信できなくなります。

    ※ Characters と Props で Subject Name が重複しても問題ありません。

  6. "Send" のカラムには、同期データを送信するかどうかが表示されます。
    チェックを入れると同期データが送信されます。 チェックを外すと同期データが送信されなくなります。
Prop 画面説明

General タブ

General タブでは、ツール全般に関する設定を行います。
画面説明
  1. "Sample Rate" には、送信するデータのサンプリングレートを入力します。
    デフォルトでは 60 が入力されます。
  2. "Address" には、送信先の IP アドレスとポート番号が表示されています。
  3. "Add" ボタンを押すと、送信先の IP アドレスとポート番号を追加できます。

    ※ IP アドレスとポート番号は [IPアドレス:ポート番号] の形式で入力して下さい。

  4. "Remove" ボタンを押すと選択中の送信先が削除されます。
  5. "Change" ボタンを押すと選択中の送信先が変更できます。
  6. (v0.1.2~) "Store" ボタンを押すと現在送信先アドレスに設定しているアドレス一覧をPCに保存します。
    保存したアドレスは ⑦の "Load" ボタンで呼び出すことができます。 また、デバイス追加時に保存したアドレス一覧を送信先アドレスに自動的に追加します。
  7. (v0.1.2~) "Load" ボタンを押すと ⑥ の "Store" ボタンで保存したアドレス一覧を送信先アドレスに読み込めます。
  8. (v0.1.2~) プルダウンから表示言語を変更できます。
general 画面説明

データの送信設定、開始・停止

"Online" ボタンを押すことで、Unity との同期を開始・停止できます。 "Online" ボタンが緑色の場合は、同期用のデータ送信中です。
① に同期用のパケットの送信頻度が表示されます。
また、② に同期用パケットのサイズが表示されます。
データの送信設定

MotionBuilder Plugin のその他機能

FBX への保存、読み込み

FBX へ保存する際に device を含めることで、以下のデータを保存、読み込みができます。
  1. Characters の設定
  2. Props の設定
  3. 送信先 Address の設定

Unity に受信用ライブラリ追加

Download ページの Unity のリンク、若しくは、 GitHub から Unity の受信用ライブラリをインストールします。

1. Unity Package Manager 経由でインストールする

Github の Readme に記載している URL を Package Manager に追加し、インストールします。
例.
            
              https://github.com/nasshu2916/MotionBuilder-Live-Sync-Unity.git?path=/Assets/MoBuLiveSync
            
            
unity library install package manager

2. 手動でインストールする

GitHub から Clone し、Assets/MoBuLiveSync を Unity のプロジェクトに追加します。

Unity 側のセットアップ

Receiver 追加

  1. インポートした Asset/MoBuLiveSync/Prefabs/MoBuLiveSyncReceiver.prefab を Scene 内に追加するか、MoBuLiveSyncManager.cs を GameObject に追加します。
  2. Inspector 上で受信するポート番号(default: 49000)を指定します。
  3. "Is Enable Receiver" のチェックボックスで受信するかどうかを切り替えます。
エディタを再生すると、受信したデータサイズと受信したデータのサンプリングレートが Inspector 上に表示されます。また、受信した Characters, Props の SubjectName も表示されます。 unity manager setting

Character の設定

同期するキャラクタに LiveSyncCharacter.cs を追加するかメニューから MBSync > Add Sync Character を選択し、同期用のスクリプトを追加します。 unity character setting Inspector 上で以下の設定を行います。
  1. Live Sync Manager に Receiver を指定
  2. Subject Name に MotionBuilder から送られてくるデータの識別文字列を入力
  3. Is Enable Sync で同期するかの選択
  4. Animator に同期するキャラクタの Animator
unity character setting
メニューから追加した場合、ContextMenu の Initialize LiveSyncCharacter を選択した場合、ある程度自動的に入力されます。
※ 同期する Character の Animation Type を Humanoid にする必要があります。また、Mapping は MotionBuilder と合わせる必要があります。
※ VRM を使用する場合は、 FBX Exporter を使って出力した FBX を MotionBuilder で使用する必要があります。
※ 同期するキャラクターは MotionBuilder と Unity でボーンの回転角のオフセットが一致している必要があります。

Prop の設定

同期したい GameObject に LiveSyncProp.cs を追加するかメニューから MBSync > Add Sync Prop を選択し、同期用のスクリプトを追加します。
Inspector 上で以下の設定を行います。
  1. Live Sync Manager に Receiver を指定
  2. Subject Name に MotionBuilder から送られてくるデータの識別文字列を入力
  3. Is Enable Sync で同期するかの選択
unity prop setting
メニューから追加した場合、ContextMenu の LiveSyncProp を選択した場合、ある程度自動的に入力されます。

連絡先