実行時に Datasmith を使用する

実行時に Unreal ベースのアプリケーション内から Datasmith 機能を使用する方法。

Windows
MacOS
Linux

Datasmith Runtime について

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

Collab Viewer Direct Link

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 機能とブループリント ノードをいくつか使用したインポート オプションを公開します。以下は最も一般的なものです。

Runtime Nodes

最も一般的な Datasmith Runtime ブループリント ノード。

Make Datasmith Runtime Import Options

いくつかのインポート パラメータを公開し、それらをデータ構造に変換します。

Make Datasmith Runtime Import Options

入力

説明

Build Hierarchy

アクタの階層を構築するかどうかを決定します。詳細な階層を選択するとロード時間とレンダリング時間が長くなります。

  • None: Datasmith Runtime Actor に格納されている階層でソース コンテンツをインポートします。コンテンツはワールド アウトライナーには表示されません。

  • Simplified:作成されたアクタ数を最小にしながらソース コンテンツをインポートします。シーン内のアクタ数が多いため描画コール数を制限しながら、アプリケーションがプロパティを修正できるようにオブジェクトを公開することができます。

  • Unfiltered:階層全体でソース コンテンツをインポートします。

Build Collision

コンポーネントに使用するコリジョンのタイプを決定します。

  • No Collision:物理エンジンでの表現をもちません。可能なかぎり最高のパフォーマンスを提供します。

  • Query Only (No Physical Collision):空間クエリのみを使用します。ポーン ナビゲーションなど、物理シミュレーションを必要としないオブジェクトに役立ちます。パフォーマンスを改善します。

  • Physics Only (No Query Collision):物理シミュレーションのみを使用します。空間クエリを必要としないオブジェクトに役立ちます。パフォーマンスを改善します。

  • Collision Enabled (Query and Physics):空間クエリと物理シミュレーションの両方を使用します。

Collision Type

スタティックメッシュに使用するコリジョン タイプを決定します。

  • Project Default:プロジェクトの物理設定を使用します。

  • Simple and Complex:単純な形状および複雑な形状の両方を使用します。単純な形状は、通常のシーン クエリとコリジョンに使用されます。複雑な (ポリゴン単位) 形状は、複雑なシーン クエリに使用されます。

  • Use Simple Collision as Complex:すべてのシーン クエリとコリジョン テストに単純な形状のみを使用します。

  • Use Complex Collision as Simple:すべてのシーン クエリとコリジョン テストに複雑な (ポリゴン単位) 形状のみを使用します。静的形状でのシミュレーションにのみ使用することが可能です。シーンをナビゲートしながら正確なコリジョンが求められる場合に必要となることがあります。

Import Metadata

アクタのメタデータを読み取ってインポートします。ロード時間が長くなります。

Tesselation Options インプットは現在使用されていません。

Set Import Options

Datasmith Runtime Actor を使用して Datasmith コンテンツに対して選択したインポート オプションの値を設定します。Datasmith Runtime Actor を Target として、Datasmith Runtime Import Options を値として使用します。

Set Import Options

Load File

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

Load File

Load File from Explorer

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

Load File from Explorer

プレイ イン エディタ (PIE) では Windows と Mac の両方のオペレーティング システムで動作しますが、Load File from Explorer は実行時に Windows のみで機能します。

Get Direct Link Proxy

Direct Link Proxy と呼ばれる Direct Link 接続へのインターフェースを返します。これが Datasmith Direct Link 接続を作成するための第一歩です。

Get Direct Link Proxy

Get List of Sources

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

Direct Link Get List of Sources

Open Connection with Index

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

Open Connection with Index

Close Connection

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

Close Connection

実行時に Datasmith コンテンツをロードする

Datasmith Runtime を使って、階層とアクタ プロパティへアクセスしながら、クック済みのアプリケーション内の Datasmith コンテンツをロードすることができます。

クリックしてフルサイズで表示。

ブループリントを使って Datasmith コンテンツをロードするには以下の手順に従います。

  1. Datasmith コンテンツのアンカー ポイントを含むために Actor Blueprint を新規作成します。それには、コンテンツ ブラウザ で右クリックし、コンテキスト メニューから [Blueprint Class] を選択します。[Pick Parent Class] ウィンドウから [Actor] を選択して、新しく作成した Blueprint クラスに「DatasmithActor」と名前をつけます。新しいブループリントをダブルクリックしてエディタを開きます。

    Pick Parent Class

    このアンカーは、インポートされた Datasmith コンテンツの基点の役割をします。コンテンツがソース アプリケーションの基点からオフセットされている場合、Unreal Engineは、コンテンツがインポートされたときにアンカーからのオフセットを維持します。

  2. Event Graph タブを選択してイベント BeginPlay 以外のすべてのイベントを削除します。Event BeginPlay から接続をドラッグして Actor From Class ノードに追加します。[Class] ドロップダウン メニューを開き、DatasmithRuntimeActor を選択します。Return Value という変数へ昇格させて「Anchor」と名前を付けます。

    Runtime Spawn Actor

  3. Spawn Actor はアンカーをスポーンするために Transform が必要です。Spawn Actor の左を右クリックして Make Transform ノードを追加します。Make Transform から出力を Spawn Actor の Spawn Transform ピンへつなぎます。

    Make Transform

  4. ブループリントを終了するために、Set ノードの実行ピンをクリックして引き出して、 Load File from Explorer ノードを追加します。Anchor 変数の参照を Datasmith Runtime Actor 入力へつなぎます。

    Runtime Load Datasmith

  5. ブループリントを 保存 して コンパイル します。Anchor ブループリントのコピーをレベルに追加して Play を押してテストします。

Runtime Load From Explorer

Unreal Engine で File Explorer が開いてファイルの選択を求められます。

ブループリントで Datasmith Direct Link を作成する

1 つ以上のソース アプリケーションと Unreal Engine プロジェクトの間で Datasmith Runtime を使って実行時に Datasmith Direct Link を開くこともできます。

  1. まず最初に、Datasmith コンテンツのアンカー ポイントを含むために Actor Blueprint を新規作成します。新しいブループリントをダブルクリックしてエディタを開きます。

  2. 前述の例と同様に、Event Graph タブを選択して Event BeginPlay 以外のすべてのイベントを削除します。Event BeginPlay から接続をドラッグして Spawn Actor From Class ノードを追加します。[Class] ドロップダウン メニューを開き、DatasmithRuntimeActor を選択します。

  3. アンカーをスポーンするためには Transform が必要です。Spawn Actor の左を右クリックして Make Transform ノードを追加します。Make Transform から出力を Spawn Actor の Spawn Transform ピンへつなぎます。

    Make Transform

  4. 次に、アプリケーションとソース アプリケーションの間の接続点とするために Direct Link Proxy が必要です。Set ノードから接続を引き出して Get Direct Link Proxy を作成します。Return Value という変数へ昇格させて「Anchor」と名前を付けます。Public となるように設定します。

    Load Direct Link Blueprint

  5. [My Blueprints] パネルの [Functions] セクションの [+] ボタンをクリックして新しい関数を作成し、「DirectLinkUpdate」と名前を付けます。この新しい関数を使って実行時に DirectLink 接続をトリガーします。

    Creating a new Blueprint Function

  6. まず Direct Link Proxy 変数のコピーを取得します。変数から線をドラッグして Get List of Sources ノードを作成します。出力を変数に昇格させて Direct Link ソースのリストを保持し、この変数を public にします。

    Get List of Sources

  7. Set から線をドラッグして Set Import Options ノードを作成します。Direct Link へ接続する前にこのノードを使ってインポート オプションをいくつか設定します。Datasmith Runtime Import Option とアンカーが入力として必要です。

    Set Import Options

  8. Anchor 変数をコピーを取得して Set の Input Options の Target 入力に接続します。

  9. 右クリックして Make Datasmith Runtime Import Options ノードを作成して、出力から Import Options 入力への接続を引き出します。

    Make Import Options

  10. Set の Import Options から線をドラッグして Open Connection with Index ノードを作成して関数を完了します。これには、アンカーと Source Index が入力として必要です。Anchor への参照を Target 入力へつなぎます。

    Open Connection with Index

  11. ソース インデックスを保持するために新しい integer 変数を作成します。「Source Index」と名前を付けて、Open Connection with Index の Source Index 入力につなぎます。インデックス値が 0 の場合、リストの最初のソースに接続します。

    Adding a Source Index

  12. 最後に、My Blueprints の DirectLinkUpdate 関数をクリックして [Details] パネルで [Call In Editor] をオンにします。このオプションによって、Details of the Anchor オブジェクトで実行時に関数が使用可能になります。

    Call In Editor

  13. 保存 して コンパイル します。完成したブループリントは以下のようになります。

ソース アプリケーションを開始して、[Play] ボタンをクリックしてプロジェクトを実行します。ワールド アウトライナー でアンカーを選択して [Details] パネルで [Direct Link Update] ボタンをクリックします。ソース アプリケーションで [Synchronize with Direct Link] ボタンをクリックします。ブループリントで指定したインポート オプションを使って、レベル内に Datasmith コンテンツがレベルに表示されます。

Runtime Direct Link

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

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