FBX アセット メタデータ パイプライン

カスタム ユーザ定義属性について、 FBX を介して Unreal に取得する方法と、ブループリントと Python を使用して、Unreal Editor でカスタム ユーザ定義属性を操作する方法について説明します。

Windows
MacOS
Linux

リアルタイムな 3D プロダクションのサイズと複雑さは増大しており、また、現代のプロダクション パイプラインを成すツールの数も増え続けています。そのため、インテリジェントな自動化を導入しユーザーの効率性を向上することは、ますます重要となっています。そして、パイプライン インテリジェンスに基づくワークフローの構築は、通常、メタデータに大きく依存します。メタデータには、プロジェクト内で意味を持つアセットに関するカスタム定義のプロパティといったようなものが挙げられます。

通常は、アセットが最初に作成される1つのアプリケーションにメタデータ プロパティを追加します。そのとき、メタデータはそのアセットに関連付けられたままです。そして、パイプラインのもっと下にあるアプリケーションは、そのメタデータを読み取って、その関連付けられたアセットをどう処理するか、またはどう扱うかについての意思決定のために使用することができます。

Unreal Editorでは、アセット メタデータのページで説明されているように、ブループリントまたは Python のスクリプトを使用して、アセットのメタデータ キーと値を設定したり取得することができます。これは、Unreal プロジェクトのコンテキスト内でのみ実行されるアセット管理操作で役に立ちます。

しかし、アセットに関するメタデータを持つことの本当の価値は、通常、外部アプリケーションとの相互運用性と、複数のアプリケーションにまたがった、より大きなアセット管理パイプラインを作成ができることにあります。このために、Unreal FBX インポーターは、FBX ファイルから特定の種類のアセット メタデータを取得し、そのメタデータをUnreal Editor 内で使用します。

このメタデータはプロジェクトのアセットに割り当てられているため、ランタイムのゲームプレイ コードで直接アクセスすることはできません。これは、主にUnreal Editor でのアセット管理操作のスクリプティングを目的として使用されます。

メタデータ ソース

FBX ファイルを Unreal にインポートすると、インポーターはそのファイル内のオブジェクトにアタッチされた「FbxProperty」値を読み込み、辞書またはタグ値のペアのマップとして、作成した Unreal アセットにアタッチします。

以下のアプリケーションは、この「FbxProperty」システムを使用し、カスタム ユーザ定義メタデータを持つ FBX ファイルをエクスポートをサポートすることが知られています。

Autodesk Maya

Maya でアセットのメタデータを作成するには、オブジェクトにカスタムの追加アトリビュートを追加します。その方法の詳細については、Maya ヘルプを参照してください。

カスタムアトリビュートは Maya の Attribute Editor のオブジェクトの、Extra Attributes リストに表示されます。たとえば、このオブジェクトでは、2つのカスタムアトリビュートが1つの文字列プロパティと、1つの数値プロパティとして次のように作成されています。

Maya カスタムアトリビュートのメタデータ

Autodesk 3ds Max

3ds Max でアセットのメタデータを作成するには、メタデータを [Object Properties] ダイアログの [User Defined] タブに追加します。

3ds Max のメタデータ ユーザー定義プロパティ

現在、3ds Max のメタデータは、「FBX.UDP3DSMAX」メタデータ タグでアクセスでき る[User Defined] テキストボックスの内にある全ての内容を含む、単一の文字列としてインポートされます。そのため、Unreal Editorの Python またはブループリント スクリプトでこの文字列の値を読む際は、この文字列を自分で分割する必要があります。

Unrealの 3ds Max メタデータ

インポート後のメタデータ

アセット メタデータが、Unrealにどのように表示されるかについて、知っておくべきことがいくつかあります。

  • すべてのメタデータのキーと値は、外部アプリケーションで設定された元のタイプに関係なく、Unreal エンジンでは文字列として保存されます。たとえば、Maya のメタデータ値を「22」のような「数値」として設定した場合でも、Unreal内のスクリプトでその値を読み取ると、「22」という文字列になります。値を数値として扱いたい場合は、 [Utilities> String > String to String] [String to Float] などブループリントの変換ノードを使用するか、「int()」 や「 float()」など、文字列をパースする Python のビルトイン関数を使用します。

  • ソース アプリケーションでスペースを含むタグ名を作成すると、そのスペースは FBX によって削除されます。

  • 通常、タグ名には、値のソースを示すプレフィックスが付いています。FBX 経由でインポートされたアセットの場合、このプレフィックスは FBX. です。他のアプリケーションやプラグインは、異なるプレフィックスを使用することがあります。たとえば、Unreal エンジン Shotgun 統合では、プレフィックス SG. が使用されます。

たとえば、Maya で Created By という名前で作成したタグは、Unrealでは FBX.CreatedBy として使用できます。

Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信