Live Link データを使用する

Live Link を使用してアクタにデータをストリーミングするために使用できる機能の概要について説明します。

Windows
MacOS
Linux

Live Link を使用すると、様々なソースから様々な種類のデータをストリーミングして、レベルのアクタにそのデータを直接適用することができます。このワークフローを改善するため、Unreal Engine 4 (UE4) では、レベルのアクタに Live Link データを適用するプロセスを合理化するために作成された次の複数の機能を使用しています。

  • Live Link プリセット では、後で使用できるようにソース設定を保存します。

  • LiveLink Controller コンポーネント では、LiveLink Controller を使用できます。LiveLink コントローラーを使用すると Live Link 情報をアクタに簡単に適用できます。さらに、このデータを簡単に収集するためのブループリント ノードも追加されました。

  • LiveLink Skeletal Animation コンポーネント は、OnLiveLinkUpdated イベント ノードを公開します。このノードは、LiveLink が更新されるたびにサブジェクトとソースの情報を取得したり、ブループリントを使用して他の多くの関数を実行したりすることができます。

Live Link の有効化および接続の設定に関する詳細については、「Live Link プラグイン」を参照してください。

UE バージョン 4.23 までは、LiveLink Skeletal Animation コンポーネント の名称は Live Link コンポーネント でした。

Live Link プリセット

UE4 は、[Live Link Connection (Live Link 接続)] ウィンドウで作成された様々なソースから Live Link データを取得します。作成されたソースは プリセット として保存することができ、Apply to Client ノードを使用してブループリントからアクセスできます。

Live Link apply to client node

このノードを使用すると、アプリケーションの起動時に Live Link プリセットをロードできます。

Live Link プリセットは、メニューの [Plugins - Live Link] セクションで [Default Live Link Preset] を設定することで、[Live Link] パネルまたは [Project Settings] の [Presets] ボタンで起動することもできます。プリセットは、‘LiveLink.Preset.Apply Preset=/Game/Folder/MyLiveLinkPreset.MyLiveLinkPreset' を使用して、コマンド ラインで適用することもできます。

Live Link コンポーネント

Live Link Skeletal Animation コンポーネント

[Components] パネルからアクタのブループリントに LiveLink Skeletal Animation コンポーネントを追加しても、他のコンポーネントの親にはなりません。このコンポーネントはブループリント内に配置され、 On Live Link Updated Event にアクセスできます。

Live Link component details panel

On Live Link Updated イベントはコンポーネントが更新されるたびにトリガーされます (エディタ内も含む)。

On Live Link Updated node

On Live Link Updated ノードは、Tick イベント とほぼ同じように機能します。ただし、このノードはエディタ内でも実行されします。たとえば、エディタ内でライブ データを制御したい場合、On Live Link Updated ノードはその処理をサポートします。

Live Link Controller コンポーネント

LiveLink Controller コンポーネントは、キャラクターのブループリント内に配置されているコンポーネントで、Live Link コントローラーを使用する機能を提供します。これらのコントローラーは、Live Link サブジェクトからデータを自動的に取得して、Live Link コントローラーを介してアクタの対応するコンポーネントに取得したデータを適用します。

Live Link component controller

Live Link Controller コントローラーを使用する

Live Link コントローラーは、Live Link データを取り込み、シーンのアクタに取り込んだデータを適用する迅速な手段を提供します。各コントローラーは Live Link サブジェクトのデータを使用して、選択したアクタに自動的に適用します。コントローラーには次の 3 種類があり、役割別に定義されています。

  • Transform (トランスフォーム)

  • Camera (カメラ)

  • Light (ライト)

各 Live Link コントローラーの詳細は以下を参照してください。

トランスフォーム

Transform コントローラーは、Live Link サブジェクトからトランスフォーム データを素早く取得して、レベルのアクタに適用します。

Live Link transform controller

このコントローラーには、次のオプションがあります。

設定

説明

World Transform (ワールド トランスフォーム)

コンポーネントのトランスフォームをワールド空間に設定します。ローカル空間の場合はオフにします。

Use Scale (スケールを使用する)

Live Link のスケール データを使用します。

Sweep (スイープ)

ルート コンポーネントをスイープして、行く手を阻むコリジョンがないか確認し、目標位置までの移動中にオーバーラップをトリガーし、行く手を阻まれた場合は目標位置に到達する前に停止します。

Teleport (テレポート)

物理的ステートをテレポートします (物理コリジョンが有効である場合)。

  • オンの場合、物理速度が変わらず保持されます。

  • オフの場合、位置の変化に応じて物理速度が更新されます。

Camera (カメラ)

Camera コントローラーは、[Camera Role (カメラ役割)] が設定された Live Link サブジェクトからレベルのカメラ アクタにカメラの設定と動きのデータを直接適用します。

Live Link camera controller

アニメートできるカメラ設定には、次のものがあります。

  • 視野角 (度単位)

  • アスペクト比 (幅/高さ)

  • 焦点距離

  • F 値によるカメラの開口径

  • カメラのフォーカス距離 (マニュアルのフォーカスでのみ機能する)

  • カメラの投影モード (パースペクティブ、正投影など)

Light (ライト)

Camera コントローラーは、[Lignt Role (ライト役割)] が設定された Live Link サブジェクトからレベルの Light アクタにライト設定を直接適用します。

Live Link light controller

アニメートできるライト設定には、次のものがあります。

  • 色温度 (ケルビン)

  • 総エネルギー (ルクス単位)

  • フィルタ カラー

  • スポット ライト用の内側のコーン角 (度単位)

  • スポットライトの外側のコーン角 (度単位)

  • ライトの目に見える影響 (ポイント ライトおよびスポット ライト向け)

  • 光源形状のソフト半径 (ポイント ライトおよびスポット ライト向け)。

  • 光源形状の長さ (ポイント ライトおよびスポット ライト向け)。

外部プラグインを使用して、追加のコントローラーを追加したり、作成したりすることができます。外部プラグインの詳細については、「プラグイン」を参照してください。

アクタにコントローラーを適用する

Live Link コントローラーを適用するには、まず、アクタに Live Link コントローラー コンポーネントを追加します。

Applying a Live Link controller to a cube static mesh actor

このセクションでは、Live Link ソースに接続している必要があります。ソースの接続の詳細については、「Live Link プラグイン」を参照してください。

次の手順で、[Details (詳細)] パネルからコンポーネントを追加します。

  1. レベルで アクタ を選択します。

  2. [Details (詳細)] パネルで、[+ Add Component (+ コンポーネントを追加)] ボタンをクリックして、Live Link Controller コンポーネントを検索します。

  3. 追加したら、コンポーネント リストからそのコンポーネントを選択して、[Subject Representation (サブジェクト表現)] ドロップダウン メニューを開きます。このアクタのデータ ソースとして使用するサブジェクトをリストから選択します。選択に基づいて、[Component to Control (コントロールするコンポーネント)] が自動的に選択されます。これは必要に応じて調整できます。

コントローラーの設定が完了したら、アクタが、選択した Live Link サブジェクトからのデータ受信を自動的に開始します。

一般的なブループリント ノード

Live Link データには、各種ブループリント ノードを介してアクセスできます。

Get Live Link Subjects

Evaluate Live Link Frame ノードで使用するサブジェクトのリストを取得する必要がある場合があります。その場合は、Get Live Link Subjects を使用できます。

get live link subjects Blueprint node

これは、Evaluate Live Link Frame 関数が有効であると特定したサブジェクトの配列を返します。

Evaluate Live Link Frame

Evaluate Live Link Frame 関数を呼び出すと、指定されたサブジェクト名に関連付けられた Live Link データを取得できます。この関数は、現在のフレームが有効かどうかに関する実行ピンと、Data Result 出力からアクセスできるスタティック データとフレーム データを提供します。このデータは、サブジェクトを評価するために選択された Role のタイプによって決まります。

この例では、データ構造体ピンから直接アクセスされるデータを示しています。

evaluate live link frame Blueprint node with connected output

Evaluate Live Link Frame のデータを使用する

Evaluate Live Link Frame により、提供されるデータを評価するいくつかのブループリント関数を使用できます。結果として得られるデータは、評価対象の Role に応じて異なります。Animation Role が評価対象の場合は、以下を使用できます。

  • Get Basic Data

  • Get Curves

  • Get Metadata

  • Get Root Transform

  • Get Transform by Index

  • Get Transform by Name

  • Number of Transforms

  • Transform Names

Get Basic Data

Get Basic Data 関数を使用すると、すべてのブレンド形状またはアニメートされたカーブを取得できます。また、この関数は各エントリの Name to Value のマップを返します。

get basic data Blueprint node

Get Curves

Get Curves 関数を使用すると、すべてのブレンド形状またはアニメートされたカーブを取得できます。また、この関数は各エントリの Name to Value のマップを返します。

get curves node

Find 使用して名前を入力すると、カーブの値を取得できます (または、ブール値を使用して、見つかったかどうかを特定することもできます)。

find map node

Get Metadata

Get Metadata 関数は、サブジェクト フレームに格納されているサブジェクト メタデータ構造体を返します。これを分解して、情報を取得することができます。

get metadata node

String Metadata はサブジェクトの名前付き文字列に対するマップです。たとえば、ストリーミングされるオブジェクトのタイプを名前付き文字列として渡すことができます。また、メタデータには Scene TimecodeScene Framerate も含まれており、これらの構造体を分解して必要な情報を得ることができます。

出力

説明

String Metadata

フレームやサブジェクトに関する追加情報を提供するために使用される名前付き文字列のマップ。例: "Type":"Camera"

Scene Timecode

現在のフレームに関連付けられたタイムコード値。

これは、一意であることは保証されません。例えば、MotionBuilder でフレームを 1 つ編集すると、そのフレームのタイムコードが複数のフレームに送信されます。

Scene Framerate

Scene Timecode に対応するフレームレート。

Get Root Transform

Get Root Transform 関数は、サブジェクト フレームのルート トランスフォームを Live Link トランスフォーム (トランスフォームがない場合はその ID) として返します。

get root transform node

これは、標準のトランスフォームに対して追加の関数を呼び出すことができるように、標準のトランスフォームではなく Live Link Transform を返します (概要については、次の表を参照)。

関数

説明

Child Count

指定された Live Link Transform の子の数を返します。

Component Space Transform

指定された Live Link Transform ルート空間のトランスフォーム値 (モデルのルートに相対的) を返します。

Get Children

指定された Live Link トランスフォームの子 Live Link トランスフォームの配列を返します。

Get Parent

親がある場合は Parent Live Link Transform を、ない場合は Identity Transform を返します。

Has Parent

指定された Live Link Transform に Parent Transform があるかどうかを返します。

Parent Bone Space Transform

指定された Live Link Transform の親空間のトランスフォーム値を返します (親空間内でどのように格納されているか、親ボーンの種類を問わず相対的に格納されているか)。

Transform Name

指定された Live Link Transform の名前を返します。

Get Transform By Index

Get Transform By Index 関数は、指定されたインデックスで Subject Frame に格納されている Live Link Transform を返します (Transform Index が無効な場合は、Identity Transform を返します)。

LiveLinkTransformIndex.png

Get Transform by Name

Get Transform by Name 関数は、Get Transform by Index と類似しています。ただし、Transform Name データを取り込みます。

GetTransformByName.png

Number of Transforms

Number of Transforms 関数は、Subject Frame 内のトランスフォームの数を返します。

number of transforms node

これのユース ケースとしては、Get Transform By Index と併用することで、Live Link Transforms をループして各 Live Link Transforms を取得することができます (以下の例と同様)。

画像をクリックしてフルサイズで表示

Get Transform Names

Get Transform Names 関数は、フレーム内のすべてのトランスフォームの名前の配列を返します。

get transform names node

ブループリントで Live Link プリセットを適用する

ブループリントで Live Link を使用する一般的な方法は、 Apply to Client ノードを使用して、ランタイム時にスケルタル メッシュに Live Link プリセットを割り当てることです。

Apply to client node

  1. まず、[Live Link] パネルで Live Link プリセットを作成します。プリセットの詳細については、「Live Link プラグイン」を参照してください。

  2. キャラクターのブループリントで、新しい変数を作成し、[Details (詳細)] パネルで [Variable Type (変数の型)][Live Link Preset (Live Link プリセット)] に設定することで、プリセットへの参照を作成します

  3. ブループリントをコンパイルして、新しい変数のデフォルト値を保存した Live Link プリセットに設定します。

  4. ブループリントに変数をドラッグして、メニューから Get を選択します。

  5. 変数からワイヤーを引き出して、Apply to Client ノードを検索します。

  6. Event Begin Play ノードを Apply to Client に接続します。

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる