Live Link を使用すると、コンテンツを MotionBuilder から Unreal Engine にリアルタイムでストリーミングして、エクスポートやインポートを行わずに Unreal でコンテンツをプレビューできます。この際、セッションの IP アドレスとキャストを制御するためのさまざまな設定もあります。

このドキュメントでは、MotionBuilder と Unreal Engine の間で Live Link セッションを設定する方法の概要と、利用可能な設定について説明します。
必須条件
-
「Live Link」を読んで、 Live Link プラグインを有効にする必要があります。
-
Unreal Engine と MotionBuilder で使用するためのスケルタルメッシュ アクタが必要です。持っていない場合は、「Third Person (サードパーソン)」テンプレート を使用してプロジェクトを作成し、MotionBuilder へインポート するために「Export the SK_Mannequin」スケルタルメッシュを FBX にエクスポートできます。
-
必要に応じて、コントロールリグを使用するために MotionBuilder でキャラクターに キャラクタライズする ことができます。
MotionBuilder をセットアップする
次の手順に従って、MotionBuilder で Unreal Live Link を設定し、Live Link のシグナルのブロードキャストを開始します。
プラグインをインストールする
MotionBuilder Live Link プラグインをダウンロードしてインストールする必要があります。そのためには、最初にこちらのリンク「GitHub - ue4plugins/MobuLiveLink: Plugin for MotionBuilder that send data to Unreal Engine」を使用します。
表示されたページで [Releases (リリース)] をクリックします。

現在使用している Motionbuilder のバージョンに合わせて、プラグインのバージョンを選択することができます。ファイルをダウンロードして、任意の場所に解凍します。

次に、プラグインのパスを MotionBuilder に割り当てます。MotionBuilder で、メインメニュー バーの [Settings (設定)] > [Preferences (環境設定)] をクリックして [Preferences] ウィンドウを開き、[SDK] カテゴリに移動します。[Add (追加)] をクリックして、MotionBuilder プラグインが入っている解凍したフォルダの場所を参照します。その後、MotionBuilder を再起動します。

MotionBuilder を再起動すると、[Asset Browser (アセット ブラウザ)] タブの [Devices (デバイス)] カテゴリに UE - LiveLink エントリが表示されます。

Live Link をブロードキャストする
MotionBuilder シーンに使用するキャラクターが追加されているのを確認した後、UE - LiveLink プラグインをビューポートにドラッグします。

これにより、[Live Link Connection (Live Link 接続)] ウィンドウが開きます。このウィンドウは、[Navigator (ナビゲーター)] の [Devices (デバイス)] セクションにあります。

[Subject Selector (...) (サブジェクト セレクター)] ボタンをクリックし、キャラクターの Root Bone (ルート ボーン) を展開して選択し、[Add] をクリックします。選択したルート ボーンは、プロジェクトにインポートされた スケルトン のルート (最上位) ボーンとも一致している必要があります。

これにより、キャラクターが Subject (サブジェクト) として追加され、Unreal Engine にストリーミングされます。必要に応じて、[Stream Viewport Camera (ビューポートカメラをストリームする)] を有効にすることもできます。これにより、MotionBuilder のカメラが Unreal Engine の対象となる Live Link としてストリーミングされ、エディタ カメラを操作するためのソースとして選択できるようになります。

必要に応じて、[Subject Name (サブジェクト名)] フィールドを編集して、サブジェクトの名前を変更できます。 これは、Live Link のブロードキャストでサブジェクト同士を区別するのに役立ちます。

Online の横のボタンをクリックして、コンテンツのストリーミングを有効にします。 [Online] ステータス ボタンが 赤色 (オフライン) から 緑色 (オンライン) に変わります。 緑色になると、MotionBuilder は Live Link のシグナルをブロードキャストしている状態になります。

MotionBuilder が最前面に表示されておらずバックグラウンドで動作している状態になると、アプリケーションのパフォーマンスが抑制され、ストリーミング プロセス中にスタッタリングが発生する可能性があります。これを防止するには、[Navigator] の [System (システム)] メニューにある [Always refresh viewer (ビューアを常に更新する)] オプションを有効にします。

Unreal Engine をセットアップする
キャラクターの接続をプレビューするには、次の手順に従って Unreal Engine を MotionBuilder Live Link のブロードキャストに接続します。
接続をセットアップする
MotionBuilder をバックグラウンドで実行している状態で、Unreal Engine を開き、メインメニュー バーから [Window (ウィンドウ)] > [Live Link] を選択します。 [Live Link Connection Window (Live Link 接続ウィンドウ)] が開き、Motionbuilder の実行インスタンスに接続できるようになります。

[+ Source (ソース追加)] ボタンをクリックし、[Message Bus Source (メッセージ バス ソース)] から MotionBuilder ブロードキャストのシグナルを選択します。

接続ウィンドウが更新され、接続されているソース タイプ、サブジェクト、およびステータスが表示されます。

Live Link の オプション、役割、ステータス インジケータ の詳細については、Live Link の概要 のページを参照してください。
Live Link をプレビューする
これで、キャラクターの Live Link の接続をプレビューできるようになりました。コンテンツ ブラウザ でキャラクターの スケルタルメッシュ アセットを開きます。

[Preview Scene Settings (プレビュー シーン設定)] タブで、次のプロパティを設定します。
- Preview Controller:Live Link プレビュー コントローラー
- Subject Name:MotionBuilder のサブジェクト名
- Enable Camera Sync:Enabled (有効)

これで、MotionBuilder サブジェクトがこのウィンドウに接続され、データがストリーミングされるようになりました。 MotionBuilder で [Enable Camera Sync] と [Stream Viewport Camera] がオンになっている場合、MotionBuilder ビューポートもこのビューにストリーミングされます。

Live Link ウィンドウから手動で接続せず、「ブループリント関数」で接続を確立することもできます。また、プレビュー コントローラーを使用せず、アクタにアタッチされた「Live Link コンポーネント」、またはアニメーション ブループリントの Live Link Pose ノードを使用することもできます。
MotionBuilder を設定する
MotionBuilder Live Link プラグインには、Live Link のキャストの動作を制御するためのさまざまな詳細設定があります。 これらの設定にアクセスするには、[Live Link Connection] ウィンドウの [Settings (設定)] タブをクリックします。

他のマシンにリンクする
デフォルトでは、セッションが同じデバイスで実行されている限り、Live Link を使用して MotionBuilder を Unreal Engine に接続できます。複数のデバイスが使用されているローカル エリア ネットワークを使用していて、別のデバイスにブロードキャストする場合は、明示的なローカル IPv4 アドレス が設定された ユニキャスト エンドポイント と スタティック エンドポイント を使用する必要があります。
ユニキャスト エンドポイント は Live Link ブリッジの一方のエッジで、スタティック エンドポイント はブリッジのもう一方のエッジと言えます。 それらが統合されることで、アクティブな Live Link 接続が形成されます。
ユニキャスト エンドポイントを設定するには、IPv4 Address を Unicast Endpoint プロパティにコピーします。 IPv4 アドレスを取得するには、Windows のコマンド プロンプト ウィンドウに「ipconfig」と入力してアドレスを表示し、それをコピーします。 また、アドレスの末尾に ポート番号 を指定する必要があります。

ポート 6666 は予約されており、Motion Builder のユニキャスト エンドポイントには使用できません。
受信側の PC の Unreal Engine で、[Edit (編集)] > [Project Settings (プロジェクト設定)] をクリックして [Project Settings] ウィンドウを開き、[UDP Messaging (UDP メッセージング)] パネルに移動します。[Transport (トランスポート)] カテゴリで、[Details (詳細)] を展開し、ホスト マシンの Unicast Endpoint から同じアドレスとポートを Static Endpoints プロパティに入力します。

これで、Live Link 接続ウィンドウにソースを追加するときに、リモートの Live Link ソースを受信できるようになります。

このプロセスの逆も同様に機能します。 つまり、先ほどとは逆に、[Project Setting] の [UDP Messaging] で Unicast Endpoint を、MotionBuilder で Static Endpoint を設定できます。

サテライトをブロードキャストする
単一の MotionBuilder Live Link インスタンスが複数の Unreal Engine の宛先に同時にブロードキャストするのではなく、単一の Unreal Engine レシーバーを設定して、Live Link ソースを他のマシンに再ブロードキャストすることもできます。 これは、Live Link ソースがすべてのレシーバーから遠く離れている場合、または帯域幅が制限されている場合に便利です。

この動作を有効にするには、最初に [Live Link Connection] ウィンドウ で Live Link の ソース と サブジェクト を選択し、[Rebroadcast Subject (サブジェクトの再ブロードキャスト)] をオンにします。

[Rebroadcast Subject (サブジェクトを再ブロードキャスト)] に関連する 2 つ目のチェックボックスは、Live Link ハブで使用されます。[Rebroadcast Subject] を有効にするには、両方のチェックボックスをオンにする必要があります。
次に、再ブロードキャストを実行しているマシンの [Project Setting] の [UDP Messaging] で [Unicast Endpoint] を設定します。

これで、他のマシンから Live Link ソースを選択するときに、Unreal Engine インスタンスから再ブロードキャストされたソースを選択できるようになります。

マルチキャスト
マルチキャストとは、複数のクライアントがネットワーク通信に参加できるインターネットの仕様です。 マルチキャストは、エンドポイント間通信で通常見られる標準のクラス アドレス空間とは異なる クラス D アドレスを使用して表されます。 マルチキャスト アドレスの範囲は 224.0.0.0 から 239.255.255.255 となっています。
クライアントは、特定の IP 上のマルチキャスト メッセージに関心があることをルーター、スイッチ、またはオペレーティング システムに通知するマルチキャスト グループにサブスクライブできます。 Unreal Engine は、ポート 6666 でマルチキャスト グループ 230.0.0.1 を使用します。 そして起動時に、Unreal Engine は、230.0.0.1:6666 マルチキャスト グループに参加を希望するシグナルをネットワークに送信します。 その指定された IP とポートで受信されたマルチキャスト メッセージは、エンジンによる処理のためにその Unreal Engine インスタンスのインバウンド ソケットに割り当てられます。
マルチキャスト アドレスの目的は、ネットワーク上の他の Unreal Engine インスタンスの有無について他の Unreal Engine インスタンスに通知することです。 これは、マルチキャスト ソケットで送信される検出メッセージを使用して行われます。 この検出メッセージは他のインスタンスによって受信され、メッセージ内には、Unreal Engine インスタンスと直接通信するために使用可能な特定の IP またはポートが含まれています。 その後、この既知のエンドポイント (IP とポート) を使用して直接通信が行われます。マルチキャスト グループを介した通信は以後行われません。 これは、スタティック エンドポイントを手動で追加する場合と同様です。 マルチキャストのメカニズムで、これが自動的に有効となります。
通常、ほとんどのルーターは、構成されていない限り、ローカル エリア ネットワーク (LAN) を超えてマルチキャスト メッセージを伝播しません。 ほとんどの場合、Unreal Engine インスタンスを検出できるのは同じローカル エリア ネットワーク上のみです。
Live Link は通常、マルチキャスト通信が発生していることを認識しません。 このネットワーク通信はすべて、メッセージ バスを介して UDP メッセージングで行われます。Live Link は、メッセージ バスとのやり取りを通じて、メッセージ バス フレームワークを介して独自の検出メッセージを送信するときに、使用可能なエンドポイントを認識します。 検出されたすべてのエンドポイントは、レシーバーとして Live Link で使用できるようになります。そして、Live Link はその検出メッセージをそれらのレシーバーに送信します。
マルチキャストの範囲を変更する
マルチキャストの範囲グループを変更する場合、[Project Settings] の [UDP Messaging] と Live Link プラグインの「Engine.ini」 ファイルの両方で変更を行う必要があります。
[Multicast Endpoint (マルチキャスト エンドポイント)] は、[Project Settings] の [UDP Messaging] にあります。
