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](edit-enable-plugins.png"Enabling the USD Importer plugin")(w:400)

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

    ![The USD Importer plugin](enable-usd-importer.png"The USD Importer plugin")(w:700)

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

![USD Stage option in the Window menu](window-usd-stage.png"USD Stage option in the Window menu")(w:300)

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

![Place Actors panel](usd-place-actors.png"Place Actors panel")(w:400)

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. 次に、[Add (+)] ボタンをクリックして、アクタのトランスフォーム トラックを作成します。

  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](usd_stage_details.png"USD Stage Actor details panel")(w:500)

プロパティ

説明

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