Choose your operating system:
Windows
macOS
Linux
Datasmith インポータでは処理対象のオブジェクトに関する メタデータ を自動的に取り込むことができます。このメタデータは 3D デザインまたは CAD アプリケーションで各オブジェクトに対してユーザーがセットアップした情報です。メタデータは、通常、アセットが表す、機械のパーツや建築要素に関する実世界の情報 (そのピースのコスト、構成している素材、重量や断熱性能などの物理特性、パーツに加えることのできる最大トルクなどの使用上の情報など) を保存するために使用されます。メタデータは、アセットに関してプロジェクトで必要になる可能性がある他の種類の情報を保存するために使用することもできます。
Unreal Engine と Unreal Editor でこのメタデータを利用できるようにすると、次の 2 つの点で役に立ちます。
-
アセット パイプライン内: アセットをインポートし、レベルをセットアップするときにメタデータを使用できます。これは異なる処理が必要な異なる種類のアセットとアクタを区別するために役に立ちます。次はその例です。例:
-
Datasmith インポート プロセス時にメタデータを使用して、最終シーンに不要な特定の種類のアセットを識別することで、そのような不要なアセットのインポートを省略することができます。
-
インポート後にメタデータを使用して、レベル内のマージ、結合、置換したいアクタ、またはマテリアルを置換したいアクタを識別できます。
-
-
ゲームのランタイム時: ランタイム時にメタデータを使用して、ソース デザイン ツールから取り込んだアクタに関する選択した情報をユーザーに表示できます。次はその例です。例:
-
レベルのオブジェクトに、構造プロパティに関する情報を含む BIM データがある場合は、プレイヤーがシーンでそれらのオブジェクトを選択すると、インタラクティブ体験でその情報を視覚化する必要がある場合があります。
-
または、プレイヤーが異なるデザイン オプションを選択できる製品コンフィギュレータのプロジェクトである場合、プレイヤーがその時点で選択した表示されているアセットに割り当てられるコストのメタデータに基づいてコストの中間結果を、ゲームプレイ ロジックで計算して表示する必要がある場合があります。
-
このページでは Datasmith インポート プロセスを通じて Unreal にメタデータを取り込む方法、エディタ内およびランタイム時の両方でスクリプトでメタデータにアクセスする方法について説明します。
メタデータ ソース
現在、Datasmith は次のデザイン ツールからメタデータをインポートします。
現在、Datasmith はジオメトリのメタデータのみを処理します。ライトやカメラなど他のシーン オブジェクトのメタデータの処理はサポートしていません。
Autodesk 3ds Max
[Object Properties (オブジェクト プロパティ)] ウィンドウの [User Defined (ユーザー定義)] タブで 3ds Max オブジェクトにメタデータを追加します。
3ds Max でメッシュ用のこのパネルを表示するには、次の手順を実行します。
-
ウトライナまたはビューポートでメッシュを選択します。
-
右クリックして、コンテキスト メニューから [Properties (プロパティ)] または [Object Properties (オブジェクト プロパティ)] を選択するか、メイン メニューから [Edit (編集)] > [Properties (プロパティ)] を選択します。
-
上図のように、
key = value
ペアの形式でこのパネルにメタデータを入力します。等号 (=) の両側に必ず半角スペースを 1 つ入れてください 。このスペースがない場合、Datasmith がメタデータを認識できず、予期したとおりにメタデータがインポートされません。
using MAXScript を使用してユーザー定義のプロパティをセットアップすることもできます。
元は Revit で作成され、3ds Max にインポートされたモデルの場合、3ds Max インポータにより、ユーザー定義プロパティにモデルの BIM 情報がすでに設定されています。
Autodesk Revit
Revit ビューで要素を選択すると、 [Properties (プロパティ)] パレットに、その要素に割り当てられているすべてのインスタンス プロパティのリストが表示されます。これらの値は自由に変更したり、独自のカスタム プロパティを追加したりできます。
これらのプロパティの設定方法および使用方法の詳細については、 「Revit のヘルプ」 を参照してください。
Datasmith を使用して Revit のシーンを Unreal Editor にインポートする場合、Datasmith では各 Revit 要素のすべてのインスタンスのプロパティを、Unreal Engine のレベルでその要素用に Datasmith が作成する Static Mesh アクタのメタデータとして割り当てます。また、このメタデータには、空でないオブジェクトの Revit タイプの任意の型のプロパティも含まれています。
Datasmith のメタデータは常にキー/値ペアのフラット リストであるため、[Properties (プロパティ)] パレットのカテゴリのヘッダー (上図の [Constraints (コンストレイント)] 、 [Structural (構造)] 、 [Dimensions (寸法)] 、および [Identity Data (識別データ)] など) は含まれません。実際のプロパティの名前と値のみが保持されます。
Dassault Systèmes SolidWorks
SolidWorks ファイルをインポートすると、Datasmith では、作成する各 Static Mesh アクタに最小限の事前設定メタデータを追加して、元の SolidWorks デザインでのそのメッシュのパーツ名とアセンブリを示します。ただし、Datasmith では、現時点では、パーツやアセンブリに追加するカスタム メタデータ プロパティを引き継ぎません。
Trimble SketchUp Pro
SketchUp で作成する各コンポーネントでは、[Price (価格)]、[Size (サイズ)] および [Status (ステータス)] など Advanced Attributes を設定できます。
Datasmith では、Type 値 (ある場合) を含むこれらすべての高度な属性をメタデータにインポートします。
Datasmith のメタデータはコンポーネントのジオメトリを表す個別の Static Mesh アクタではなく、シーン階層のコンポーネントを表すアクタにアタッチされている場合があります。シーンでこのようなアクタを使用している場合、後述されるブループリントや Python の例を調整する必要があります。
Maxon Cinema 4D
Cinema 4D では、 [Attributes (属性)] パネルで [User Data (ユーザー データ)] > [Manage User Data (ユーザー データの管理)] を選択して、シーンの各オブジェクトにユーザー データを追加できます。
この実行方法の詳細については、 「Cinema 4D ドキュメント」 を参照してください。
データ変換にはいくつかの重要な注意事項が適用されます。
-
Cinema 4D では、ユーザー データを階層グループに編成することができますが、Unreal Engine では Datasmith のメタデータは常にキー/値のフラット リストです。上記のようにユーザー データにグループが含まれている場合、Datasmith では階層を平坦化して、すべてのグループのすべてのメタデータ キーを単一のフラット リストに保存します。グループ名自体は破棄されます。
例えば、以下の画像では、グループがインポートされておらず、ネストされたプロパティ ( IntegerData 、 VectorData 、 ColorData 、 BooleanData ) が StringData および FloatData と兄弟関係になるように移動されていることがわかります。
-
Cinema 4D でユーザー データに設定したデータ型に関係なく、Datasmith のメタデータに保存される値は常に文字列です。Datasmith では、できる限り、元のデータの値を文字列に変換します。この文字列を解析すると関連情報を抽出できます。ただし、グラデーション、他のシーン オブジェクトへのリンク、優先度の値、スプラインなど、一部の複雑または特殊な Cinema 4D のデータ型はサポートされていません。
例えば、以下の画像は、 ColorData アイテムおよび VertexData アイテムが、元の色と頂点の RGB 値と XYZ 値をそれぞれ含む文字列にどのように変換されるかを示しています。
-
Datasmith では、メタデータのキー名に英数字、ハイフンおよびアンダースコアのみ使用できます。ユーザー データの名前に他の文字が含まれている場合、それらの文字は自動的にアンダースコアに変換されます
次の画像は、上記のユーザー データをインポートした結果を示しています。
IFC 2x3
Datasmith は、各 IFC オブジェクトに割り当てられたすべてのプロパティをインポートして、Unreal Engine の対応するアクタに Datasmith のメタデータとして保存します。
データ変換に関する注記:
-
IFC ではプロパティをグループに編成できます。例えば、上の画像では、複数のグループ PSet_Revit_Mechanical 、 PSet_Revit_Dimensions 、 PSet_Revit_Identity Data などが表示されています。ただし、Unreal Engine では Datasmith のメタデータは常にキー/値のフラット リストです。上記のように IFC プロパティにグループが含まれている場合、Datasmith では階層を平坦化して、すべてのグループのすべてのメタデータ キーを単一のフラット リストに保存します。グループ名自体は破棄されます。グループ名自体は破棄されます。
-
Datasmith では、メタデータのキー名に英数字、ハイフンおよびアンダースコアのみ使用できます。ユーザー データの名前に他の文字が含まれている場合、それらの文字は自動的にアンダースコアに変換されます例えば、上の画像では、 Fixture Units プロパティは、Datasmith のメタデータでは Fixture_Units に変換されます。
メタデータ値の特殊文字はすべて保持されます。
Unreal Editor でメタデータを表示する
Datasmith のインポート プロセスが完了したら、 [Details (詳細)] パネルの [Asset User Data (アセット ユーザー データ)] セクションで、レベルの Static Mesh アクタのメタデータを確認できます。
現在のことろ、Datasmith のメタデータは Unreal Editor では読み取り専用です。
ブループリントおよび Python でメタデータにアクセスする
シーンのオブジェクトに関連付けられているメタデータにアクセスする方法は複数あります。使用すべき方法は、メタデータにアクセスする必要があるのが Datasmith のインポート プロセス中であるのか、インポートの終了後であるのかに応じて決まります。
すべてのメタデータのキーと値は、デザイン アプリケーションまたは CAD アプリケーションでの元のタイプに関係なく、Unreal Engine では文字列として保存されます。例えば、3ds Max のメタデータ値に、
true
などの Boolean 値や
312
などの数値を設定した場合、Unreal 内でスクリプトで読み取るときには、それらの値は文字列になります。値が Boolean や数値である必要がある場合、
[Utilities (ユーティリティ)] > [String (文字列)] > [String to Int (文字列を整数に変換)]
または
[String to Float (文字列を浮動小数点に変換)]
などのブループリント変換ノード、または int()、float() などの Python のビルトイン文字列解析関数を使用してください。
インポート中にメタデータにアクセスする
Datasmith インポート プロセス 中 に (たとえばシーンに Unreal のアセットを生成する前に、除外したい特定のメッシュを識別するために、メタデータにアクセスする必要がある場合)、Datasmith シーンからメタデータを読み取ることができます。入力プロセス中にスクリプトを実行する方法の背景情報については、 「Datasmith インポート プロセスのカスタマイズ」 を参照してください。
Datasmith シーンで メッシュ アクタ要素 にアタッチされているメタデータが見つかります。
実装方法を選んでください。
Python
インポート後にメタデータにアクセスする
インポート プロセスで Datasmith シーンが Unreal のアセットとアクタにファイナライズされたら、Datasmith では、Datasmith シーンの各メッシュ要素のメタデータを、その Static Mesh アセットのインスタンスを表す、レベルのすべてのアクタにも適用します。その後は、ユーザーがブループリントまたは Python を使用して、レベルで Static Mesh アクタの一部またはすべてのメタデータを取得できます。
実装方法を選んでください。
Python