Unreal Engine では、USD Stage アクタと USD Stage ワークフローを通じて USD がサポートされています。このクイック スタート ガイドでは次のことについて説明します。
- USD Stage アクタを作成する
- USD Stage ウィンドウを使用してプロパティを編集する
- 新しいプリミティブを USD Stage アクタに追加する
- データを USD ファイルに書き戻す
- シーケンサーを使用して USD アニメーションにアクセスする
- アセットを Unreal Engine プロジェクトにインポートする
作業を進める前に、プロジェクトで USD Importer プラグインを有効にしておく必要があります。詳細については、「プラグインを操作する」を参照してください。
前提条件のトピック
このページの内容を理解および利用するには、次のトピックに関する知識があることを前提としています。
このチュートリアルでは、Pixar の Kitchen Set USD ファイルを使用します。Pixar は、学習とデモ用に USD サンプル ファイルの小規模なライブラリを提供しています。Kitchen Set サンプルやその他のサンプルは、こちら からダウンロードしてください。
1. USD Stage アクタを作成する
USD コンテンツでの作業を開始するには、[USD Stage] パネルを開きます。
-
レベル エディタのトップ メニューで、[Window (ウィンドウ)] > [Virtual Production (バーチャルプロダクション)] > [USD Stage] を選択します。
-
[USD Stage Editor] パネルにあるメニューで [File (ファイル)] > [Open (開く)] を選択し、使用する USD ファイルを開きます。
階層セクションに、USD ファイルからのシーン階層が表示されます。
Unreal Engine で開く各 USD ファイルには、USD データのアンカーとして機能する独自の USD Stage アクタが必要です。上記のプロセスでは、USD Stage アクタが自動的にレベルに追加されます。
[Place Actors (アクタを配置)] パネルを使用して USD Stage アクタを追加し、[Details (詳細)] パネルの [Root Layer (ルートレイヤー)] オプションを使用して関連する USD ファイルを選択することもできます。
2. [USD Stage] ウィンドウを使用してプロパティを編集する
USD Stage Editor ウィンドウのプロパティ セクションを使用して、USD Stage アクタおよびプリミティブのプロパティを編集できます。
USD Stage アクタの UpAxis を変更する
-
[USD Stage] ウィンドウで、階層の一番上にある Stage を選択します。プロパティ セクションで upAxis プロパティを見つけて、ドロップダウン メニューをクリックします。USD データの上方向を表す新しい軸を選択します。
プリミティブのバリアントを変更する
-
USD Stage Editor で、[Options (オプション)] > [Selection (選択)] を選択し、[Synchronize with Editor (エディタと同期)] をオンにします。そうすることで、Unreal Engine のレベルと USD Stage Editor ウィンドウの選択が同期します。
-
階層セクションで、Kitchen_Set の横にあるドロップダウン矢印をクリックして、グループを展開します。Props_grp を展開すると、シーン内の小道具が表示されます。
-
West_grp を展開すると、個々のプリミティブが表示されます。オレンジ色で強調表示されている小道具は 合成円弧 であり、それらのプリミティブを右クリックすると、そのプリミティブへの参照を追加 (またはクリア) できます。他の右クリック アクションとして、プリミティブを追加または除去する機能、ペイロードを切り替え、ロード、アンロードする機能などがあります。
-
DiningTable_grp を展開して、ChairB_1 を選択します。プロパティ セクションでは以下の項目を編集できます。
プロパティ 説明 name 選択されているアセットの名前を表示します。 path (パス) 選択されているアセットのパスを表示します。 kind 選択されているアセットのタイプを定義します。
- assembly:モデルのコレクション。
- component:サブコンポーネントが入っているモデルのタイプ。
- group:アセンブリ内のモデルのコレクション。
- model:種類の基本タイプ。アセットはコンポーネントとグループを区別するために使用される抽象的な共通性を持っているため、アセットではその種類をモデルに設定すべきではありません。詳細については、Pixar USD ドキュメントの「Model Hierarchy」を参照してください。
- subcomponent:コンポーネント内にあるプリミティブ。モデルのタイプではありません。
purpose ロードする初期の目的を設定します。USD Stage アクタと整数値を入力として使用します。
以下の選択肢があります。
- default
- proxy
- render
- guide
visibility ロードする初期の可視性を設定します。USD Stage アクタと整数値を入力として使用します。
以下の選択肢があります。
- inherited:可視性を親から継承します。
- invisibile:プリミティブとそのサブツリーに含まれるすべてのプリミティブはレンダリングされません。
xformOp:rotateZ 選択されているアセットの Z 回転を定義します。 xformOp:translate アセットの X、Y、Z 位置を定義します。 xformOpOrder アセットに適用されているトランスフォーム操作の順序を表示します。 modelingVariant シーンに表示されている現在のバリアントを定義します。アセットに 1 つまたは複数のバリアントがある場合のみに表示されます。 References プリミティブにアタッチされているすべての参照を表示します。 -
このシーンにある椅子には、ChairA と ChairB という 2 つのバリアントがあります。ChairB_1 を選択した状態で、プロパティの Variants セクションを見つけます。modelingVariant を ChairA に変更します。そうすると、シーンで使用される椅子メッシュが新しいバリアントに入れ替わります。
3. 新しいプリミティブを USD Stage アクタに追加する
プリミティブは、右クリック メニューを使用して階層に対して追加および除去できます。プリミティブが追加されると、そのプロパティをプロパティ セクションで編集できます。
新しい椅子を Kitchen Set に追加する
-
階層セクションにある DiningTable_grp エントリを右クリックし、メニューから [Add Prim (プリミティブを追加)] を選択します。この新しいプリミティブを「ChairB_3」という名前にします。
-
階層セクションで、新しいプリミティブを選択します。[Details] セクションで、その kind を component に変更します。
-
椅子の USD ファイルを参照して、ステージに取り込みます。階層セクションにある ChairB_3 を右クリックし、[Add Reference (参照を追加)] を選択します。Kitchen Set のファイルがある場所に移動します。「assets > Chair」フォルダを開き、「Chair.usd」ファイルを選択し、[Open] をクリックします。
-
これで、新しいプリミティブが Chair USD データを参照し、ChairA バリアントが表示されます。これはレベルの原点に配置されます。階層セクションにある ChairB_3 を選択し、その modelingVariant を ChairB に変更します。
-
ビューポート内で新しい椅子をクリックし、トランスフォーム ツールを使用してその椅子をテーブルの近くに配置します。
4. データを USD ファイルに書き戻す
USD Stage アクタを使用して行った変更内容を USD ファイルに書き戻すことができます。[USD Stage Editor] パネルのメニューで [File] > [Save (保存)] を選択します。
5. シーケンサーを使用して USD アニメーションにアクセスする
USD アニメーションにアクセスする
USD ファイル内に格納されているアニメーションにアクセスするには、USD Stage アクタによってスポーンされる専用のレベル シーケンスを使用します。
-
アウトライナー で UsdStageActor を選択します。[Details] パネルの USD セクションで、Level Sequence を見つけます。そのアセットをダブルクリックすると、それが シーケンサー で開かれます。
シーケンサーの使用の詳細については、「シネマティックスとシーケンサー」を参照してください。
椅子をアニメートする
手順 3 で作成した新しいプリミティブ ChairB_3 にアニメーションを追加するには、新しい USD ファイルを作成し、それをレイヤーとして USD Stage アクタに追加します。
-
[USD Stage] ウィンドウの Layers セクションで kitchen_set.usd レイヤーを右クリックし、[Add New (新規追加)] を選択します。この新しいファイルを「myanim.usda」というファイル名で保存します。
-
USD レイヤーでは、LIVRPS 構造 を使用して、シーンの最終的な合成にレイヤーがどのように影響を及ぼすかが決定されます。アニメーションによって Kitchen Set に影響を及ぼすには、レイヤー構造で、そのアニメーションが入っているレイヤーが、そのプリミティブが入っているシーンよりも上位にある必要があります。レベル エディタのトップ メニューで [Window] > [Place Actors] を選択すると、[Place Actors] パネルが開きます。[Place Actors] パネルで USD Stage Actor を検索し、その新しいコピーをレベルにドラッグします。
-
アウトライナー で UsdStageActor を選択します。[USD Stage Editor] パネルのメニューで [File] > [Open] を選択し、myanim.usda ファイルを選択します。
-
myanim.usda レイヤーを右クリックして [Add Existing (既存の項目を追加)] を選択すると、Kitchen Set がレイヤー スタックに追加されます。[File] ウィンドウで「kitchen_set.usd」ファイルを選択し、[Open] をクリックします。
-
アニメーションを追加する前に、そのアニメーションの長さを USD Stage に伝えておく必要があります。階層セクションで Stage プリミティブをクリックします。プロパティ セクションで endTimeCode と endFrame の値をどちらも「48」に変更します。
-
アウトライナー で、新しい USD Stage アクタを選択します。[Details] パネルで、USD セクションまで下にスクロールして Level Sequence を見つけます。そのアセットをダブルクリックすると、それが シーケンサー で開かれます。
-
[Sequencer (シーケンサー)] パネルで [+Track (+トラック)] ボタンをクリックし、[Actor to Sequencer (アクタをシーケンサーに追加)] サブメニューで、アニメートするアクタを選択します。
-
新しいトラックにある [+Track] ボタンをクリックし、新しい Transform トラックを作成します。
-
適切な位置での椅子の回転をアニメートします。シーケンサーでのトラックの使用の詳細については、「トラック」を参照してください。
-
[USD Stage] ウィンドウの [File] > [Save] メニューを使用して、データを USD ファイルに書き戻します。
6. アセットを Unreal Engine プロジェクトにインポートする
USD Stage アクタに表示されるアクタを、次のいずれかの方法で Unreal Editor のコンテンツ ブラウザにインポートできます。
- [File] > [Import Into Level (レベルにインポート)] を使用する。このプロセスでは、アセット (スタティックメッシュ、スケルタルメッシュ、マテリアル、テクスチャなど) とアクタの両方がインポートされます。
- コンテンツ ブラウザ の [Add/Import (追加/インポート)] ボタンを使用する。このプロセスではアセットのみがインポートされます。
- ファイルを コンテンツ ブラウザ にドラッグアンドドロップする。このプロセスではアセットのみがインポートされます。
- USD Stage Editor ウィンドウの [Action (アクション)] > [Import (インポート)] オプションを使用する。このプロセスでは USD Stage アクタ に関するすべてのものがインポートされ、アセットとアクタの両方で機能します。インポート プロセスが完了すると、USD Stage のアセットは コンテンツ ブラウザ からの新しいアクタで置き換えられます。
Kitchen Set を Unreal Engine にインポートする
-
[USD Stage] ウィンドウで Kitchen Set を開いた状態で、[Actions] メニューを選択して [Import] を選択します。
-
インポートされるアセットを格納する場所を選択します。この例では、Kitchen Set をインポートすると、選択した場所に「Kitchen_set」という名前のフォルダが作成されます。マテリアルとスタティックメッシュはそれぞれ個別のサブフォルダに保存されます。