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

このドキュメントでは、MotionBuilder と Unreal Engine の間で Live Link のセッションを設定する方法の概要と、利用可能な設定について説明します。
前提条件
-
「Live Link プラグイン」を読んで、 Live Link プラグインを有効にする必要があります。
- Unreal Engine と MotionBuilder で使用するためのスケルタル メッシュ アクタが必要です。持っていない場合は、Third Person Template (サードパーソン テンプレート) を使って、MotionBuilder をインポートする ために SK_Mannequin スケルタルメッシュをエクスポートします。
- 必要に応じて、コントロールリグを使用するために、MotionBuilder でキャラクターに キャラクタライズする ことができます。
MotionBuilder をセットアップする
次の手順に従って、MotionBuilder で Unreal Live Link を設定し、Live Link のシグナルのブロードキャストを開始します。
プラグインをインストールする
MotionBuilder Live Link プラグインをダウンロードしてインストールする必要があります。MotionBuilder Live Link プラグインをダウンロードしてインストールする必要があります。そのためには、まずマーケットプレイスの「MotionBuilder LiveLink」ページに移動し、このプラグインをダウンロードします。

プラグインがインストールされると、それが Unreal Engine がインストールされたディレクトリの「Plugins」フォルダに配置されます。デフォルトでは、次のパスの下にあります。
C:\Program Files\Epic Games\UE_4.27\Engine\Plugins\Marketplace\MobuLiveLink
そのフォルダ内で、「Binaries」フォルダに移動して、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 Overview (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 ウィンドウから手動で接続せず、ブループリント関数 で接続を確立することもできます。また、プレビュー コントローラーを使用せず、アクタにアタッチされた LiveLinkコンポーネント、またはアニメーション ブループリントの 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 は予約されており、エンドポイントには使用できません。
受信側の PC の Unreal Engine で、 [Edit (編集)] > [Project Settings (プロジェクト設定)] をクリックして [Project Settings] ウィンドウを開き、 [UDP Messaging (UDP メッセージング)] パネルに移動します。[Transport (トランスポート)] カテゴリで、[Details (詳細)] を展開し、ホストマシンの ユニキャスト エンドポイント から同じアドレスとポートを [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 (サブジェクトの再ブロードキャスト)] を有効にします。

次に、再ブロードキャストを実行しているマシンの [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」ファイルの両方でそれを行う必要があります。
マルチキャスト エンドポイント** は、[Project Settings] の [UDP Messaging] にあります。

MotionBuilder Live Link プラグインの「Engine.ini」ファイルは、次に示す Unreal Engine のインストール ディレクトリ内にあります。...\Engine\Plugins\Marketplace\Engine\Programs\MobuLiveLinkPlugin\Saved\Config\Windows\Engine.ini
「Engine.ini」ファイルをテキストエディタで開いたら、MulticastEndpoint の行を Unreal Engine の設定と同じ値に変更する必要があります。
[/Script/UdpMessaging.UdpMessagingSettings]
EnabledByDefault=False
EnableTransport=True
bAutoRepair=True
MaxSendRate=1.000000
AutoRepairAttemptLimit=10
bStopServiceWhenAppDeactivates=True
UnicastEndpoint=0.0.0.0:0
MulticastEndpoint=230.0.0.1:6666
MessageFormat=CborPlatformEndianness
MulticastTimeToLive=1
EnableTunnel=False
TunnelUnicastEndpoint=
TunnelMulticastEndpoint=
マルチキャスト ネットワークを完全に理解していない場合、マルチキャスト グループは変更しないでください。