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

Datasmith Direct Link にアクセスするには、Datasmith Runtime とブループリントを使用して、Unreal Engine ベースのクック済みアプリケーションでアクセスします。
Datasmith Runtime を使用すると、Datasmith Direct Link を利用したり、インタラクティブ 3D ワークフローの一部としてオンデマンドで Datasmith データを視覚化したりする、カスタム アプリケーションを作成できます。
Datasmith Runtime を使用するには、プロジェクトで次のプラグインを有効にします。
- Datasmith Content
- Datasmith Importer
- Datasmith Runtime
Datasmith Runtime は、Windows および macOS 上の Unreal Engine 4 および Unreal Engine 5 で正式にサポートされています。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 アクタ を使用して、Datasmith コンテンツに対して選択されているインポート オプションの値を設定します。Datasmith Runtime アクタを Target として、Datasmith Runtime の Import Options をその値として使用します。

Load File ノード
指定されたファイル パスにある「.udatasmith
」ファイルをロードします。入力として File Path と Datasmith Runtime Actor は必須です。

Load File from Explorer ノード
ユーザーが「.udatasmith
」ファイルを見つけて選択できるように、ファイル ブラウザ ウィンドウを開きます。入力として Datasmith Runtime Actor は必須です。Default File Path は任意指定です。

Load File from Explorer ノードは、プレイ イン エディタ (PIE) では Windows と macOS のどちらのオペレーティング システムでも動作しますが、ランタイム時に動作するのは Windows のみです。
Get Direct Link Proxy ノード
Direct Link Proxy と呼ばれる、Direct Link 接続のインターフェースを返します。これが、Datasmith Direct Link 接続を作成する最初の手順です。

Get List of Sources ノード
Datasmith Direct Link ソースのリストを取得します。入力として Direct Link Proxy は必須です。

Open Connection with Index ノード
指定されたインデックス値にあるソースを使用して Direct Link 接続を開きます。入力として Datasmith Runtime Actor と Source Index は必須です。

Close Connection ノード
指定された Datasmith Runtime Actor と関連付けられている、開いている接続を閉じます。

Datasmith コンテンツをランタイム時にロードする
Datasmith Runtime を使用して、階層およびアクタのプロパティへのアクセス権がある場合に、クック済みアプリケーション内にある Datasmith コンテンツをロードできます。
画像をクリックするとフルサイズで表示されます。
ブループリントを使用して Datasmith コンテンツをロードする方法
-
Datasmith コンテンツのアンカー ポイントが入る新規 アクタ ブループリント を作成します。そうするには、コンテンツ ブラウザ 内で右クリックし、コンテキスト メニューで [Blueprint Class (ブループリントクラス)] を選択します。[Pick Parent Class (親クラスを選択)] ウィンドウで [Actor (アクタ)] を選択し、新しいブループリント クラスを「DatasmithActor」という名前にします。新しいブループリントをダブルクリックすると、エディタで開かれます。
このアンカーは、インポートされる Datasmith コンテンツの起点として機能します。コンテンツにソース アプリケーションの起点からのオフセットが設定されていれば、Unreal Engine はコンテンツがインポートされるときに、そのオフセットをアンカーからのオフセットとして維持します。
-
[Event Graph (イベントグラフ)] タブを選択し、Event BeginPlay 以外のすべてのイベントを除去します。Event BeginPlay から接続を引き出して、Spawn Actor From Class ノードを追加します。[Class] ドロップダウン メニューを開いて [DatasmithRuntimeActor] を選択します。Return Value を変数に昇格させて「Anchor」という名前にします。
-
Spawn Actor には、Anchor をスポーンするトランスフォームが必要です。Spawn Actor の左側を右クリックして Make Transform ノードを追加します。Make Transform の出力を Spawn Actor の Spawn Transform ピンにつなぎます。
-
このブループリントを完成させるには、Set ノードの実行ピンから引き出して、Load File from Explorer ノードを追加します。Anchor 変数の参照を Datasmith Runtime Actor の入力につなぎます。
-
ブループリントを 保存 して コンパイル します。Anchor ブループリントのコピーをレベルに追加し、[Play (プレイ)] をクリックしてテストします。
Unreal Engine がファイル エクスプローラ ウィンドウを開いて、ファイルを選択するようにユーザーに求めます。
ブループリントで Datasmith Direct Link を作成する
1 つまたは複数のソース アプリケーションと Unreal Engine プロジェクトの間で、ランタイム時に Datasmith Runtime を使用して Datasmith Direct Link を開くこともできます。
- まず、Datasmith コンテンツのアンカー ポイントが入る新規 アクタ ブループリントを作成します。新しいブループリントをダブルクリックすると、エディタで開かれます。
- 前の例と同様に、イベント グラフ のタブを選択し、Event BeginPlay 以外のすべてのイベントを除去します。Event BeginPlay から接続を引き出して、Spawn Actor From Class ノードを追加します。[Class] ドロップダウン メニューを開いて [DatasmithRuntimeActor] を選択します。
-
Anchor をスポーンするトランスフォームが必要です。Spawn Actor の左側を右クリックして Make Transform ノードを追加します。Make Transform の出力を Spawn Actor の Spawn Transform ピンにつなぎます。
-
次に、ユーザーのアプリケーションとソース アプリケーションの間の接続ポイントとして機能する Direct Link Proxy が必要です。Set ノードから接続を引き出して Get Direct Link Proxy ノードを作成します。そのノードの出力を変数に昇格させて「Direct Link Sources Proxy」という名前にします。それをパブリックに設定します。
-
[My Blueprints (マイブループリント)] パネルの [Functions (関数)] セクションにあるプラス (+) ボタンをクリックして、新しい関数を作成します。その関数を「DirectLinkUpdate」という名前にします。この新しい関数を使用して、ランタイム時に Direct Link 接続を切り替えます。
-
まず、Direct Link Proxy 変数のコピーを取得します。その変数から引き出して Get List of Sources ノードを作成します。そのノードの出力を変数に昇格させて、Direct Link ソースのリストを保持し、その変数をパブリックに設定します。
-
前に [My Blueprint] タブで作成した Anchor 変数を Direct Link Update 関数にドラッグします。その出力を引き出して「Set Import Options」と入力し、Set Import Options ノードを選択して挿入します。
-
右クリックして Make Datasmith Runtime Import Options ノードを作成し、その出力を引き出して Import Options 入力につなぎます。
-
この関数を完成させるには、Set Import Options から引き出して Open Connection with Index ノードを作成します。このノードは、アンカーと Source Index を入力として受け取ります。Anchor の参照を Target 入力につなぎます。
-
[Variables (変数)] の横にあるプラス (+) ボタンをクリックして、新しい変数を作成します。その変数を「SourceIndex」という名前にし、その型を Integer にします。
-
作成した新しい変数を、Open Connection with Index ノードの Source Index 入力につなぎます。インデックス値が 0 であれば、リスト内の 1 番目のソースにつながれます。
-
最後に、[My Blueprints] にある DirectLinkUpdate 関数をクリックし、[Details] パネルにある Call In Editor をオンにします。このオプションがオンであれば、この関数がランタイム時に Anchor オブジェクトの [Details] で利用できるようになります。
画像をクリックするとフルサイズで表示されます。
- ブループリントを 保存 して コンパイル します。完成したブループリントは次のようになっているはずです。
画像をクリックするとフルサイズで表示されます。
ソース アプリケーションを起動し、[Play] ボタンをクリックして、このプロジェクトを実行します。アウトライナー で Anchor を選択し、[Details] パネルにある [Direct Link Update] ボタンをクリックします。そして、ソース アプリケーションにある [Synchronize with Direct Link (Direct Link と同期する)] ボタンをクリックします。そうすると、ブループリントで指定されているインポート オプションを使用して Datasmith コンテンツがレベルに表示されます。
[Use Less CPU when in Background (バックグラウンド処理ではCPU使用率を減らす)] オプションをオフにすると、Unreal Engine のウィンドウにフォーカスが当たっておらず、レベルにあるポーンが所有されていない場合に、エンジンが 3D ビューポートを更新できるようになります。このオプションは、[General (全般)] > [Performance (パフォーマンス)] の [Editor Preferences (エディタの環境設定)] にあります。