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

Unreal Engine では 2 つの方法で USD ファイルを操作することができます。

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

  • Python USD Import/Export:双方向の Python ワークフローにより、USD ファイルからオブジェクトを Unreal アセットにインポートしてレベルでアクタをスポーンすることができます。また、オブジェクトを USD ファイルにエクスポートすることもできます。UE4 と USD はアセットが異なるため、変換すると品質が低下します。

USD Stage Actor/USD Stage Editor ワークフローには以下の利点があります。

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

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

  • スタティックメッシュ、スケルタルメッシュ、階層スタティックメッシュ コンポーネント (HISM)、マテリアル、ライト、カメラ、バリアント、アニメーション、ブレンド シェイプをサポート。

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

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

  • ペイロードの有効/無効化 (コンテンツのロードおよびアンロードのため)。

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

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

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

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

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

    Enabling the USD Importer plugin

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

    The USD Importer plugin

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

USD Stage option in the Window menu

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

Place Actors panel

Live USD Stage のワークフロー

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

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

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

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

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

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

USD ファイルから読み込まれ、ビューポートに表示される 3D シーン オブジェクトは、他のほとんどの Unreal Engine の機能と完全に互換性があり、Unreal Engine で作業する他のアクタとまったく同じように扱うことができます。ビューポートの USD シーンから個々のオブジェクトを選択し、アクタを移動させたり、新しいマテリアルを割り当てたり、操作することもできます。

USD Stage エディタからは、USD ファイルで定義されたバリアントを切り替えて、それらの変更がすぐにシーンに反映されるのを確認することができます。

アニメートされたスケルタル メッシュを含む、他の USD ファイルに存在するコンテンツを参照することができる USD Stage アクタをレベルに追加することができます。USD ファイルのアニメーションはレベル シーケンスに関連付けられており、これを使用してアニメーションをスクラブしたり再生したりできます。

USD Stage エディタで USD Stage に変更を加えた場合、[File] > [Save] を使って USD データを保存することで、それらの変更を USD ファイルに書き戻すことができます。

Unreal Engine 4 で USD アニメーションにアクセスおよびオーサリングする

USD ファイルに格納されたアニメーションは、USD Stage アクタでスポーンされた特別に生成されたレベル シーケンスからアクセスすることができます。

[Details (詳細)] パネルでレベル シーケンスをダブルクリックします。シーケンサーのトランスフォーム トラックに USD xform のアニメーションが表示されます。その他の形式のアニメーション (floats、boolean、スケルタルボーンなど) はタイムトラックで表示されます。上の画像では、アニメーションが継続している各タイムコードに USD アニメーション データがキー/値のペアで表現されていることが分かります。

レベル シーケンスで生成された USD Stage を使って、USD Stage でスポーンされたアクタにバインドし、トランスフォーム トラックでアニメーションを追加することができます。

  1. [Track+] をクリックし、[Actor to Sequence] オプションを強調表示し、リストから使用するアクタを選択します。

  2. 次に、[+] ボタンをクリックして、アクタのトランスフォーム トラックを作成します。

  3. キーフレームを使って、アクタのトランスフォーム データを動かします。

USD アニメーション データがベイクされます。データを USD ファイルに保存し直すと、xform 値が一致するように更新されます。アニメーションを削除するには、バインディングまたは新しいトランスフォーム トラックのいずれかを削除できます。これにより、USDxform 変換属性からすべての時間変化する値が消去されます。

USD コンテンツを Unreal Engine 4 にインポートする

USD Stage に表示されるアクターは、次のインポートオプションのいずれかを使用してUE4 のコンテンツブラウザにインポートできます。

  • [File] > [Import Into Level] を使用する。このプロセスでは、アセット (静的メッシュ、骨格メッシュ、マテリアル、テクスチャなど) とアクタの両方がインポートされます。

  • コンテンツ ブラウザ[Add/Import] ボタンを使用する。このプロセスでは、アセットのみがインポートされます。

  • コンテンツ ブラウザ にファイルをドロップ アンド ドロップする。このプロセスでは、アセットのみがインポートされます。 [USD Stage] パネルの [Action] > [Import] を使用する。このプロセスでは、アセットとアクタの両方がインポートされます。インポート プロセスが完了すると、USD Stage のアセットは コンテンツ ブラウザ からの新しいアクタに置換されます。

USD Stage エディタ

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

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

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

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

  • プリミティブの追加/削除と、それらのリファレンスの変更。

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

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

USD Stage アクタのプロパティ

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

USD Stage Actor details panel

プロパティ

説明

Root Layer

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

Initial Load Set

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

Purposes to Load

USD ファイルに存在する目的に応じてロードするプリミティブを決定します。

  • Load All: すべてのデータをステージにロードします。

  • Load None: USD Stage Editor ウィンドウにロードするまで、ステージにオブジェクトをロードしないようにします。|

Time

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

Level Sequence

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

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