Datasmith Runtime について
Datasmith Runtime は、Unreal Engine ベースのアプリケーションで実行時に 使用可能な (インエディタ ワークフローでの使用に対して) Datasmith 機能のコレクションです。これらの機能を使って、「.udatasmith
」ファイルをインポートし、ブループリントを使ってそれらを操作するアプリケーションを作成することができます。

Datasmith Runtime とブループリントを使ってクック済みの Unreal Engine ベースのアプリケーションで Datasmith Direct Link にアクセスすることができます。
Datasmith Runtime を使って、Datasmith Direct Link を利用したカスタム アプリケーションを作成したり、イニシアチブ 3D ワークフローの一部としてオンデマンドで Datasmith データを視覚化することができます。
Datasmith Runtime を使用するために、プロジェクトで次のプラグインをオンにします。
- Datasmith Content
- Datasmith Importer
- Datasmith Runtime
Datasmith Runtime は、Windows と MacOS を使用する Unreal Engine4 と Unreal Engine5 で正式にサポートされています。 Datasmith Runtime は Linux で動作しますが、これは実験的なものであり、不安定性とパフォーマンスの問題が発生する可能性があります。
ブループリントで Datasmith Runtime を使用する
Datasmith Runtime はさまざまな Datasmith 機能とブループリント ノードをいくつか使用したインポート オプションを公開します。以下は最も一般的なものです。

最も一般的な Datasmith Runtime ブループリント ノード。
Make Datasmith Runtime Import Options
いくつかのインポート パラメータを公開し、それらをデータ構造に変換します。

入力 | 説明 |
---|---|
Build Hierarchy | アクタの階層を構築するかどうかを決定します。詳細な階層を選択するとロード時間とレンダリング時間が長くなります。
|
Build Collision | コンポーネントに使用するコリジョンのタイプを決定します。
|
Collision Type | スタティックメッシュに使用するコリジョン タイプを決定します。
|
Import Metadata | アクタのメタデータを読み取ってインポートします。ロード時間が長くなります。 |
Tesselation Options インプットは現在使用されていません。
Set Import Options
Datasmith Runtime Actor を使用して Datasmith コンテンツに対して選択したインポート オプションの値を設定します。Datasmith Runtime Actor を Target として、Datasmith Runtime Import Options を値として使用します。

Load File
指定されたファイル パルに置かれている .udatasmith
をロードします。インプットとして File Path と Datasmith Runtime Actor が必要です。

Load File from Explorer
.udatasmith
ファイルの場所を探して選択できるように、ファイル ブラウザ ウィンドウを開きます。インプットとして Datasmith Runtime Actor が必要です。デフォルト ファイル パス は任意です。

プレイ イン エディタ (PIE) では Windows と Mac の両方のオペレーティング システムで動作しますが、Load File from Explorer は実行時に Windows のみで機能します。
Get Direct Link Proxy
Direct Link Proxy と呼ばれる Direct Link 接続へのインターフェースを返します。これが Datasmith Direct Link 接続を作成するための第一歩です。

Get List of Sources
Datasmith Direct Link Sources の一覧を取得します。インプットとして Direct Link Proxy が必要です。

Open Connection with Index
指定されたインデックス値にあるソースとの Direct Link 接続を開きます。インプットとして Datasmith Runtime Actor と Source Index が必要です。

Close Connection
指定された Datasmith Runtime Actor と関連づいている開いている Direct Link 接続を閉じます。

実行時に Datasmith コンテンツをロードする
Datasmith Runtime を使って、階層とアクタ プロパティへアクセスしながら、クック済みのアプリケーション内の Datasmith コンテンツをロードすることができます。
クリックしてフルサイズで表示。
ブループリントを使って Datasmith コンテンツをロードするには以下の手順に従います。
-
Datasmith コンテンツのアンカー ポイントを含むために Actor Blueprint を新規作成します。それには、コンテンツ ブラウザ で右クリックし、コンテキスト メニューから [Blueprint Class] を選択します。[Pick Parent Class] ウィンドウから [Actor] を選択して、新しく作成した Blueprint クラスに「DatasmithActor」と名前をつけます。新しいブループリントをダブルクリックしてエディタを開きます。
このアンカーは、インポートされた Datasmith コンテンツの基点の役割をします。コンテンツがソース アプリケーションの基点からオフセットされている場合、Unreal Engineは、コンテンツがインポートされたときにアンカーからのオフセットを維持します。
-
Event Graph タブを選択してイベント BeginPlay 以外のすべてのイベントを削除します。Event BeginPlay から接続をドラッグして Actor From Class ノードに追加します。[Class] ドロップダウン メニューを開き、DatasmithRuntimeActor を選択します。Return Value という変数へ昇格させて「Anchor」と名前を付けます。
-
Spawn Actor はアンカーをスポーンするために Transform が必要です。Spawn Actor の左を右クリックして Make Transform ノードを追加します。Make Transform から出力を Spawn Actor の Spawn Transform ピンへつなぎます。
-
ブループリントを終了するために、Set ノードの実行ピンをクリックして引き出して、 Load File from Explorer ノードを追加します。Anchor 変数の参照を Datasmith Runtime Actor 入力へつなぎます。
-
ブループリントを 保存 して コンパイル します。Anchor ブループリントのコピーをレベルに追加して Play を押してテストします。

Unreal Engine で File Explorer が開いてファイルの選択を求められます。
ブループリントで Datasmith Direct Link を作成する
1 つ以上のソース アプリケーションと Unreal Engine プロジェクトの間で Datasmith Runtime を使って実行時に Datasmith Direct Link を開くこともできます。
- まず最初に、Datasmith コンテンツのアンカー ポイントを含むために Actor Blueprint を新規作成します。新しいブループリントをダブルクリックしてエディタを開きます。
- 前述の例と同様に、Event Graph タブを選択して Event BeginPlay 以外のすべてのイベントを削除します。Event BeginPlay から接続をドラッグして Spawn Actor From Class ノードを追加します。[Class] ドロップダウン メニューを開き、DatasmithRuntimeActor を選択します。
-
アンカーをスポーンするためには Transform が必要です。Spawn Actor の左を右クリックして Make Transform ノードを追加します。Make Transform から出力を Spawn Actor の Spawn Transform ピンへつなぎます。
-
次に、アプリケーションとソース アプリケーションの間の接続点とするために Direct Link Proxy が必要です。Set ノードから接続を引き出して Get Direct Link Proxy を作成します。Return Value という変数へ昇格させて「Anchor」と名前を付けます。Public となるように設定します。
-
[My Blueprints] パネルの [Functions] セクションの [+] ボタンをクリックして新しい関数を作成し、「DirectLinkUpdate」と名前を付けます。この新しい関数を使って実行時に DirectLink 接続をトリガーします。
-
まず Direct Link Proxy 変数のコピーを取得します。変数から線をドラッグして Get List of Sources ノードを作成します。出力を変数に昇格させて Direct Link ソースのリストを保持し、この変数を public にします。
-
Set から線をドラッグして Set Import Options ノードを作成します。Direct Link へ接続する前にこのノードを使ってインポート オプションをいくつか設定します。Datasmith Runtime Import Option とアンカーが入力として必要です。
- Anchor 変数をコピーを取得して Set の Input Options の Target 入力に接続します。
-
右クリックして Make Datasmith Runtime Import Options ノードを作成して、出力から Import Options 入力への接続を引き出します。
-
Set の Import Options から線をドラッグして Open Connection with Index ノードを作成して関数を完了します。これには、アンカーと Source Index が入力として必要です。Anchor への参照を Target 入力へつなぎます。
-
ソース インデックスを保持するために新しい integer 変数を作成します。「Source Index」と名前を付けて、Open Connection with Index の Source Index 入力につなぎます。インデックス値が 0 の場合、リストの最初のソースに接続します。
-
最後に、My Blueprints の DirectLinkUpdate 関数をクリックして [Details] パネルで [Call In Editor] をオンにします。このオプションによって、Details of the Anchor オブジェクトで実行時に関数が使用可能になります。
- 保存 して コンパイル します。完成したブループリントは以下のようになります。
ソース アプリケーションを開始して、[Play] ボタンをクリックしてプロジェクトを実行します。ワールド アウトライナー でアンカーを選択して [Details] パネルで [Direct Link Update] ボタンをクリックします。ソース アプリケーションで [Synchronize with Direct Link] ボタンをクリックします。ブループリントで指定したインポート オプションを使って、レベル内に Datasmith コンテンツがレベルに表示されます。

Use Less CPU when in Background オプションを無効にすると、Unreal Engine ウィンドウがフォーカスされていない状態でレベルのポーンが処理されていない場合、エンジンは 3D ビューポートを更新することができます。このオプションは [Editor Preferences (エディタの環境設定)] の [General (一般)] > [Performance (パフォーマンス)] にあります。