UE4 の Universal Scene Description (ユニバーサル シーン デスクリプション)

USD ファイルを Unreal Engine 4 に取り込み、そのコンテンツを操作する方法について説明します。

Windows
MacOS
Linux

ほとんどのコンピュータ グラフィック プロダクション (映画、ゲーム、またはその他の形式) は通常、大量の 3D データを生成、保存、送信します。パイプラインでは、様々なアプリケーション (Unreal Engine、Maya、Houdini、Blender) を使用する異なる立場の人物 (アニメーター、ライティング アーティストまたはシェーディング アーティスト、モデラー、fx アーティストなど) からデータを受け取ります。しかし、こうしたデータは歴史的に、タスク / アプリケーションの特定のニーズとワークフローに合わせて調整された独自の特別な形式のシーン デスクリプションを持っていることから、他のアプリケーションでは読み取りまたは編集できない場合があります。

Universal Scene Description (USD) フォーマットは、そうした背景から、多くの要素アセットで構成される可能性のある任意の 3D シーンを、堅牢かつスケーラブルに交換および拡張できるようにするために Pixar によって開発されたデータ形式です。USD は、3D ジオメトリとシェーディングの読み取り、書き込み、編集、および迅速なプレビューを行える豊富なツールセットを提供するだけでなく、要素アセット (モデルなど) またはアニメーションの交換も可能です。

また他の交換パッケージとは異なり、USD では、任意の数のアセットを仮想セット、シーン、ショットに組み立てて編成した後、単一のシーン グラフで、単一の一貫した API を使用して、アプリケーションからアプリケーションにそれらを送信し、(オーバーライドとして) 非破壊的に編集できます。

Unreal Engine 4 の USD

4.24 リリース以前でも、Unreal Engine では 2 つの方法で USD ファイルを操作できましたが、それぞれに次のような重大な欠点がありました。

  • Import USD Plugin (C++):これにより、USD ファイルから Unreal アセットにオブジェクトをインポートし、レベルでアクタをスポーンすることができます。しかし、これでインポート可能なのはスタティック メッシュのみです (アニメーション、カメラ、マテリアル、ライトはインポートできません)。この方法は、ワークフローを効率的にするというよりも、むしろ互換性のある形式を得るために行います。

  • Python USD Import/Export:双方向 Python ワークフローは C++ と同様の機能を提供し、オブジェクトを USD ファイルにエクスポートして戻す機能も追加されています。しかし、この方法は Python スクリプトとして実装されていることから、全体的なパフォーマンスが低下してしまいます。また、実装では、インポートとエクスポートのサポートも制限されていました。

4.24 エンジン リリースでは、USD ファイルを操作する新しい方法である、USD Stage アクタ および USD Stage Editor が追加されました。

スタティック メッシュやマテリアルのようなネイティブの Unreal Engine アセットに USD データを変換する代わりに、新しく追加された USD Stage ActorUSD Stage Editor ウィンドウを使用することで、USD データをネイティブに操作できます。これにより、USD データをより速く Unreal に取り込んだり、USD コンテンツの元々の構造をより明確に表示したり、ディスク上にあるソースの USD ファイルに変更を加える際のライブ アップデート処理を行ったりできるようになりました。

このワークフローには、他にも多くの改善点があります。

  • .usd .usda(ASCII)、.usdc(バイナリ) 形式をロードする機能。

  • USD シーン グラフとレイヤー階層の視覚化。

  • スタティック メッシュ、カメラ、スケルタル メッシュ、バリアント、およびアニメーションのサポート。

  • マテリアルのサポート (PreviewSurface および DisplayColor)。

  • USD Preview Surface でのテクスチャのサポート。

  • ペイロードを有効または無効にする機能 (コンテンツのロードおよびアンロードのため)。

  • Static Mesh アセットを USD Geom メッシュとしてエクスポートし、頂点、法線、UV をサポートする機能。

  • Alembic や Custom Path Resolver などの USD プラグインのサポート。

現在はベータ版ですが、USD のサポートが必要なほとんどのユーザーにこのアプローチをお勧めします。以下のセクションでは、この方法を使用して USD コンテンツを操作する方法について説明します。

USD インポート プラグインを有効化する

Unreal Editor で USD ファイルを使用する前に、次の手順で [Plugins (プラグイン)] メニューから USD Importer プラグインを有効にする必要があります。

  1. [Edit (編集)] メニューから [Plugins] を選択します。

    PluginsOption.png

  2. 検索バーで 「USD」 を検索し、USD Importer プラグインを有効にしてエディタを再起動します。

    USDImporter.png

エディタを再起動すると、[Window (ウィンドウ)] メニューの下に新しく [USD Stage Editor] オプションが表示されます。

USDStageOption.png

[Mode (モード)] パネルには、レベルに追加可能な次の新しい USD アクタもいくつかリストされます。

USDAssets.png

Live USD Stage のワークフロー

エディタ内で USD コンテンツを操作するには、次の手順に従います。

  1. [Window (ウィンドウ)]## メニューから ##[USD Stage Editor]## を選択します。

  2. [USD Stage Editor] パネルのメニューから、[File] > [Open] を選択し、USD ファイルを参照します。

    USDEditorLoadUSD.png

選択した USD ファイルから読み取ったシーン階層がパネルに表示されます。

USD データの複雑さによって、読み込み時間が異なる場合があります。大きなシーンがある場合は、USD Stage Actor を設定して、最初に USD ファイルからデータをロードしないようにし、必要に応じて個々のペイロードのみをロードします。以下の 「USD Stage Actor のプロパティ」 を参照してください。

USD Stage Actor もレベルに追加されます。このアクタは、ファイルから読み取られた USD データのコンテナであり、レベル内のそのデータの場所を提供します。

USD ファイルから読み込まれ、ビューポートに表示される 3D シーン オブジェクトは、他のほとんどの Unreal Engine の機能と完全に互換性があり、ほとんどの場合、Unreal Engine で作業する他のアクタとまったく同じように扱うことができます。例えば、ライト、他のスタティック メッシュ、マテリアル、ブループリント クラスなどを追加できます。ビューポートの USD シーンから個々のオブジェクトを選択し、他のアクタと同様に操作することもできます。

USD Stage Editor からは、USD ファイルで定義されたバリアントを切り替えて、それらの変更がすぐにシーンに反映されるのを確認することもできます。アニメートされたスケルタル メッシュを含む追加の USD Stage Actor をレベルに追加できます。USD ファイルのアニメーションはレベル シーケンスに関連付けられており、これを使用してアニメーションをスクラブしたり再生したりできます。

USD Stage Editor で USD Stage に変更を加えた場合、それらの変更を USD ファイルに書き戻すことができます。

USD Stage Editor

USD Stage Editor は、USD ファイルのシーン階層の概要を示し、USD データを変更するツールを提供します。これには下記が含まれています。これには下記が含まれています。

  • USD ファイルのオープン、保存、再読み込み。

  • 可視性とペイロードの切り替え、またはプリミティブのバリアントの選択。

  • 新しいレイヤーの作成、既存のレイヤーのオープン、またはレイヤーのミュート。

オレンジ色の行は合成された円弧であり、任意のプリミティブを右クリックして参照を追加 (または参照をクリア) できます。他の右クリック オプションには、プリミティブを追加または削除する機能や、ペイロードを切り替え、ロード、またはアンロードする機能があります。

USD Stage Editor[Details (詳細)] パネルでは、現在の選択に関する情報が表示され、定義済みの バリアント から選択することが可能です。

USD Stage アクタのプロパティ

USD アクタ作成後は、[Details (詳細)] パネルのプロパティから、アクタが USD ファイルのデータにアクセスして使用する方法を制御できます。

USDDetailsPanel.png

プロパティ

説明

Root Layer

このアクタに使用する USD ファイルを選択します。

Initial Load Set

レベルを開始するときに USD シーンのどの部分をロードするのかを定義します。Load All は、ステージのすべてのデータをロードします。Load None は、USD Stage Editor ウィンドウにロードするまで、ステージにオブジェクトをロードしないようにします。

Time

このアクタの USD ステージを評価するタイム コード。

Start Time Code

このアクタの評価を開始するタイム コード。

End Time Code

このアクタの評価を停止するタイム コード。

Time Codes Per Second

1 秒あたりに評価されるタイム コードの数。

Level Sequence

このアクタに関連付けられているレベル シーケンス。

Select Skin
Light
Dark

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

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

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

フィードバックを送信