Choose your operating system:
Windows
macOS
Linux
このページでは、Visual Dataprep システムの概要と、リアルタイム ビジュアリゼーション用の 3D データを準備するために、独自のカスタム インポート レシピの作成方法について説明します。
Visual Dataprep を有効にする
プロジェクトで次のプラグインを有効にします。
DataPrep Editor
Datasmith Importer
Dataprep Geometry Operations - 特定のフィルタおよびオペレーションで必要となるプラグインです。
Datasmith がサポートする他の種類のソース ファイルからインポートする場合、それらのファイル タイプに対応する他のインポータ プラグインを有効にする必要があります。詳細は「Unreal Engine 4 に Datasmith コンテンツをインポートする」を参照してください。
建築、土木、建設、または 自動車、プロダクトデザイン、製造 カテゴリのテンプレートから Unreal プロジェクトを開始した場合、これらのプラグインが既に有効となっている場合もあります。
Visual Dataprep アセット
Visual Dataprep システムは、Dataprep アセットと呼ばれる新しい種類のアセットに基づいています。このアセットは、視覚的に一連の手順を配列するという点でブループリントに似ています。ただし、この Dataprep グラフの目的は、指定した 1 つ以上の入力ファイルから読み取ったシーン データを変換することです。
新しい Dataprep アセットを作成するには、[コンテンツブラウザ] で右クリックし、コンテキスト メニューから [Dataprep]> [Dataprep Asset] を選択します。
Dataprep エディタの UI
ブループリント クラスと同様に、Dataprep アセットには専用のエディタ ウィンドウがあります。このウィンドウを開くには、コンテンツ ブラウザ で Dataprep アセットをダブルクリックします。
Dataprep エディタの UI はいくつかのパネルに分かれており、Dataprep ワークフロー の様々なポイントで使用します。
番号 |
名前 |
説明 |
---|---|---|
1 |
ツールバー |
インポート、実行、[コミット といったアクションを含む、Dataprep ワークフローで最も重要なユーザー アクションのショートカット。. |
2 |
コンテンツブラウザ プレビュー |
入力ファイルからインポートしたすべてのアセットをリストします。これは、グラフを Commit (コミット) するときに Visual Dataprep システムが [コンテンツブラウザ] に作成するアセットのプレビューです。 |
3 |
ビューポート プレビュー |
入力ファイルからインポートした 3D シーンの視覚的なプレビューを表示します。 |
4 |
アウトライナ プレビュー |
入力ファイルからインポートした 3D シーンのすべてのアクタをリストします。これは、Visual Dataprep システムがレベルで作成するアクタと、レベルの [World Outliner (アウトライナ)] で作成されるシーン階層のプレビューです。 |
5 |
設定パネル |
このパネルを使用して、3D シーンをインポートする入力ファイル、およびプロジェクトの [コンテンツブラウザ] でアセットを作成する場所を指定します。 Dataprep アセットの インスタンス でオーバーライドできるように Dataprep グラフでパラメータを公開している場合は、ここにリスト表示されているパラメータを [Parameterization (パラメータ化)] セクションでも確認することができます。詳細は「Dataprep インスタンスを操作する」を参照してください。 |
6 |
パレット |
Dataprep グラフ エディタにドラッグしてインポート レシピをビルドできる構成要素を表示します。 |
7 |
Dataprep グラフ エディタ |
Dataprep レシピを準備するエリアです。ここでは、Unreal Engine でリアルタイム ビジュアリゼーション用入力コンテンツを準備するために、左から右に Dataprep システムが実行されます。 |
8 |
詳細パネル |
メインレベルエディタの [Details (詳細)] パネルと同様に、[アウトライナ プレビュー] で選択したアクタに関する情報を表示します。これらの設定は読み取り専用であることに注意してください。これらは単なる参考情報として提供されており、アクタに対する Dataprep グラフの効果を評価できます。 |
Dataprep のワークフロー
下記の手順は、Visual Dataprep アセットをセットアップするための一般的なワークフローです。
入力ファイルを指定します。右上の [Setttings (Dataprep)] パネルで、インポートするファイルごと、または入力ファイルの各フォルダごとに新しい入力プロデューサーを作成します。Chord Tolerance および Stitching Technique などのジオメトリ オプションおよびテセレーション オプションを設定するために歯車アイコンをクリックします。
また、以下の Output 設定をカスタマイズすることができます。
Folder は、インポートされたアセットを維持するためにプロジェクトの コンテンツ ブラウザ で作成されたフォルダの名前を決定します。デフォルトでは、アセットは種類に応じて Datasmith によってこのフォルダ内のサブフォルダ (スタティックメッシュ用、マテリアル用、テクスチャ用など) へ配布されます。(Dataprep グラフの作成時に Output to Folder 操作を使ってデフォルト配布をオーバーライドすることができます。)
Level Name はシーンを維持するために作成される新しいレベル アセットの名前を設定します。Dataprep グラフの結果をコミットした後、サブレベルを追加することで、インポートされたシーンをプロジェクトのレベルに追加することができるようになります。
予備インポートを行います。ツールバーの [Import] ボタンを押して、ソース ファイルを一時的なワールドにインポートします。
ファイルから読み取られたコンテンツで 3D ビューポートとその他のプレビュー パネルが更新されます。このコンテンツはまだプロジェクトに追加されていません。Dataprep エディタだけに存在する一時的なワールドにあります。これにより、プロジェクトに結果を保存する前に、入力ファイルから読み取ったアセットとシーン階層を変更できます。
この手順は厳密に言えば必須ではありませんが、Dataprep グラフをビルドするときに、Dataprep グラフの効果を簡単に評価できるようになります。
Dataprep グラフをビルドします。パレットから 選択 (Select By) ノードと オペレーション ノードをDataprep グラフ エディタにドラッグし、アクション ノードを実行したい順序で接続します。以下の「Dataprep グラフ」を参照してください。
グラフをテストします。ツールバーの [Execute (実行)] ボタンを押して、ビルドした Dataprep グラフを使用してソース ファイルからインポートしたデータを実行します。プレビュー パネルが更新され、結果が表示されます。
ブロックまたはアクション ノードは、名前を右クリックしてドラッグし [Disable (無効にする)] オプションを選択することで、個別に無効化することができます。無効にされたブロックまたは アクション ノードはグラフ内でグレーアウトされます。再度メニューを開いて [Enable (有効にする)] オプションをクリックすると有効になります。
コミットします。入力ファイルからインポートした 3D データに対するグラフのエフェクトが満足のいくものなら、ツールバーの [Commit] ボタンを押してインポート処理を完了させます。
結果をコミットすると、Visual Dataprep システムは [コンテンツ ブラウザ プレビュー] のアセットをプロジェクトのアセットに保存します。また、現在開いているレベルを変更して、[アウトライナ プレビュー] に表示されるアクタの階層を追加します。
アクタ階層を新しいレベルにインポートする場合は、[Settings (Dataprep)] パネルの [Sub-Level] 設定でレベルの名前を設定します。Visual Dataprep システムは、(まだ存在しない場合) この名前で新しいレベルを作成し、そのレベルにアクタを追加します。そして、Unreal Editor のメイン ウィンドウで現在開いているレベル内のサブレベルとしてそのレベルを追加します。
統計パネル
Visual Dataprep アセット エディタのメインメニューから [Window] > [Statistics] の順で [Statistics (統計情報)] パネルを開きます。このパネルには、Dataprep グラフの実行前後の、描画呼び出し、アクタの数、合計頂点数などのデータのメトリックの簡単な比較が表示されます。
Dataprep グラフ
Dataprep アセットの中心は Dataprep グラフです。つまり、ここで指定した入力ファイルに対してシステムが実行する一連の操作を行います。
すべての Dataprep グラフは アクション ノードと呼ばれる構成要素 (ブロックが垂直に重なったもの) で作成されています。例えば、上記のグラフには 3 つのアクション ノードが含まれています。Dataprep グラフを実行すると、左側の Start ノードから開始し、それぞえrのアクション ノードを左から右の順に実行します。
アクションの境界をドラッグすることで、アクションのサイズを水平方向に変更してテキスト全体を読むことができます。
条件付きで分岐が可能なブループリント グラフとは異なり、Dataprep グラフは常に分岐のない単一の実行パスに沿って左から右に進行します。また、連続するアクション ノード間にデータフローはありません。すべてのアクション は同じものを使用します。つまり、指定した入力ファイルからインポートされるアセットとアクタのセットを使用します。
それぞれのアクション ノードは、1 つ以上のブロックのスタックで構成されています。Dataprep グラフがアクションを実行すると、アクション ノードの各ブロックが上から下に処理されます。
アクションのビルドを作成するには、左側のパレットからブロックをグラフ エディタにドロップするか、グラフ エディタのバックグラウンドを右クリックして状況に応じたパレットからブロックを選択します。
複数のアクションをまとめてグループ化できます。以下の方法で行います。
グループ化するアクションをクリックおよびドラッグして選択します。
グループを右クリックします。
コンテキスト メニューから [Group Actions (アクションをグループ化)] を選択します。
グループを右クリックしてコンテキスト メニューから [Disable Action Group (アクション グループを無効化)] を選択すれば、アクション グループのすべてのアクションを無効にすることができます。
アクションのグループ化を解除するには、グループを右クリックして [Ungroup Actions (アクションのグループ化を解除)] を選択します。
オペレーション、フィルター、トランスフォーム
基本的な 3 種類のブロックを Dataprep アクション ノードで使用することができます。
Operations はアセット、アクタ、またはコンポーネントを事前定義した方法で変更します。例えば、上記の Set Material、Compact Scene Graph、Set Simple Collision のそれぞれのブロックは、すべて異なる種類のオペレーションです。
Dataprep グラフで使用できるすべての様々なオペレーションの詳細については、「Visual Dataprep 操作リファレンス」を参照してください。
フィルタ (Select By ブロックとも呼ばれます) は、現在の アクション ブロックでそれらのオペレーションが変更するアセット、アクタ、コンポーネントを決定します。デフォルトでは、すべてのアクション ステップは、入力ファイルから構築された一時的なワールドに含まれるすべてのアセット、アクタ、コンポーネントに対してオペレーションを実行します。これらの フィルタ ブロックを使用して、これらのアセット、アクタ、コンポーネントのサブセットを定義し、それによってアクション ノードが変更するオブジェクトを制御できます。
Dataprep グラフで使用できるすべてのフィルターの詳細については、「Visual Dataprep セレクション リファレンス」を参照してください。
トランスフォーム は選択中のアセット、アクション、コンポーネントを複雑な方法で変更します。この点において、フィルタと似ています。ただし、フィルタ ブロックは、そこに渡されたオブジェクトのリストの絞り込みのみ行います。対照的にトランスフォーム ブロックは現在選択しているものにオブジェクトを追加することができます。
たとえば、シーン階層から特定のツリー オブジェクトを選択するとします。そのために、フィルタ ブロックを使ってシーン要素のフルセットを少数の特定の親要素に絞って、トランスフォーム ブロックを使ってその選択を再拡張して選択した要素の子供を含みます。
アクタ内で選択したオブジェクトのセットを拡張または変更するために使用する各種トランスフォームの詳細は「Dataprep のセレクション トランスフォームに関するリファレンス」を参照してください。
アクションの例
以下に示すアクション は、CAD アセンブリの部品に新しいマテリアルを設定しています。このノードは一連のステップを実行し、フィルタとオペレーションのスタックを通してデータを上から下に処理します。
ステップ番号 |
名前 |
ブロックタイプ |
説明 |
---|---|---|---|
1 |
入力ピン |
N/A |
アクション は、すべてのアセットとアクタを含む一時的なワールドからすべてのデータを収集し、それらのオブジェクトをスタックの一番上のブロックに渡します。 |
2 |
Filter by Tag |
Filter |
このフィルタは、「Metal」タグを持つアクタのみを保持し、そのアクタのリストを次のブロックに渡します。 |
3 |
Filter by Actor Label |
Filter |
このフィルタは、名前に「Mechanical」という単語が含まれるアクタのみを保持し、それらを次のブロックに渡します。 |
4 |
Set Simple Collision |
Operator |
この操作は、上記のフィルタで識別された一連のアクタによって参照される、すべての Static Mesh アセットにボックス コリジョン形状を設定します。そして、アクタの同じリストを次のブロックに渡します。 |
5 |
Set Material |
Operator |
最後の操作は、上記のフィルタで識別されたアクタのセットが所有するすべてのスタティック メッシュ コンポーネント上のすべてのマテリアルを見つけ、それらのマテリアルをブロックの Material 設定で代わりに指定します。 |
このアクションのすべてのブロックが完了したら、グラフの次のアクションの実行が開始します。次のアクションが開始すると、テンポラリ ワールドからすべてのデータを再度集めます。前のブロックによって整備されたすべてのフィルタは考慮されなくなります。ただし、マテリアルの変更、アクションの削除など、前のアクションによるシーンの変更は次のアクションへ維持されます。
フィルタを使用する
すべてのフィルタ ブロックは、操作ブロックで変更するアセット、アクタ、コンポーネントの正確なリストの取得と、フィルタに期待どおりの効果があるかの確認を容易にするオプションがあります。
これらのオプションにアクセスするには、フィルタ ブロックを右クリックして、コンテキスト メニューの [Filter] セクションを開きます。
複数のフィルタ ブロックに影響を与えるには、Control キーを押しながら選択対象のすべてのブロックを左クリックします。影響を与えるブロックがすべて強調表示されたら、強調表示されたブロックのいずれかを右クリックします。または、複数のブロックをクリックしドラッグして選択します。
選択したアセットからフィルタを作成する
ビューポート、アウトライナ、アセット パネルから 1 つ以上のアクタまたはコンポーネントを選択し、Dataprep グラフ エディタのどこかを右クリックし、コンテキスト メニューから [Create Filter From Selection] を選択します。
リストの最初のアクタまたはアセットに選択されたアクタとアセットと共に、アクタとアセットの数が表示されます。
このリストを直接編集することはできませんが、以下の手順でリストを含む新しいフィルタを作成することができます。
Dataprep Recipe の Filter by Selection フィルタを選択します。
コンテキスト メニューから [Preview Filter(s)] を選択します。これにより、このフィルタで選択される [World Outliner Preview] パネルのアクタとアセットが強調表示されます。
フィルタで選択する新しいアクタとアセットを追加するには、Ctrl キーを押しながら [World Outliner Preview] パネルでそれらをクリックします。
Dataprep グラフ エディタのどこかを右クリックして、コンテキスト メニューから [Create Filter from Selection] を選択します。
フィルタのロジックを反転する
[Filter] > [Inverse Filter(s) Selection] を選択して 選択 ブロックの選択ロジックを Exclude By ブロックに変えます。これにより、同じアクションの操作は、設定した条件に一致 しない シーン要素のセットにのみ適用されます。
フィルタ結果をプレビューする
[Filter] > [Preview Filter(s)] を選択して [Content Browser Preview] パネルと [World Outliner Preview] パネルでフィルタで選択されたすべてのアセットとアクタの横にチェックマークを表示させます。
一度に表示できるのは 1 つのフィルタ、または選択した 1 セットのフィルタとなります。異なるフィルタまたはフィルタ セットのプレビューが開始されると、前のフィルタのプレビューは停止します。