UnrealEngineでOmniverse

公開:2021/02/03
更新:2021/02/03
3 min読了の目安(約3300字TECH技術記事

以前テストしたときはUnrealEngine4でOmniverseをインストールするとエラーで
UE4が起動できなくなってしまったので放置していましたが、
改めて試したら起動することができたので、色々と基本的な挙動を調べてみます。

まず、私自身はUE4初心者です(ナニモワカラナイ)
なので、同時にUE4の操作方法も忘れないようにメモしていきます。

設定する

まずUE4でOmniverseを使用できるようにインストールします。

OmniverseのConnectorsを選択して

ADD+から、

自分の使用するUEのバージョンのConnectorをインストールします。

インストールしたらUEを起動して、プロジェクトを作成します。
そしてプロジェクト設定から

プラグインのOmniverseをクリック。

設定のServer Listを選び、Omniverseのサーバーのアドレスを入れて
LiveEditをONにします。

設定すると、こんな感じでOmniverseのアイコンが表示され、

プロジェクトに「Omniverse」フォルダが追加されました。

Omniverseフォルダの中に入ると、指定したサーバーへのログイン画面が出てくるので
作っておいたアカウントでログインします。

ログインできると、OmniverseのDriveがUEのコンテンツブラウザに表示されました。

そして親の顔より見たキッチンセットを開いてみます。

結果のアウトライナ。

同じUSDをCreate側で開いて操作してみると、Syncできているのがわかります。
ただし、最初はLiveSyncONにしているのに同期されず

このアイコンのLiveEditをON/OFFしたりレベルを保存を押したりしたら
動くようになりました。
この辺ちょっとよくわからないです。

USDのレイヤーを確認

ロードはできましたが、アウトライナに表示されるのはUSDのシーングラフでUSDでのPrimが
表示されているわけではありません。
UE4でUSDの構造を確認するには

ウィンドウから Omniverse Layers を表示します。

結果がこちら。
「Layers」なので、シーングラフが表示されているわけではなく、
現在ロードしているアセットのレイヤー、すなわちUSDファイルの一覧が
表示されるもののようです。

Arch_Grpとかはレイヤーじゃない気がするも、、、、?

UE4からUSDを出力

UE4のデータをUSDに書き出すこともできるようで、
アウトライナーからExportしたいオブジェクトを選択→右クリック でExport to Omniverse
すると、

オプションが選べて、Exportすることができます。

FBXで読み込んだMixamoのモデルをそのまま出力したら普通にアニメーションも来ました。

Exportすると、選択したオブジェクトがUSDとして出力されるわけですが
構造的には単一のUSDとして出力されるわけではなく
選択したオブジェクトがリファレンスとして出力されます。

キャラモデルがProps、アニメーションシーケンスが Animations 以下に別のUSDとして出力され
Materialに関してはMDLが出来上がります。

MaterialがMDLで扱えるのは結構良さそうです。

まとめ

とりあえずざっくりと設定方法と、ロードしたりエクスポートしたりする部分を試してみましたが
UE側の知識が足りていないのでなんともいえませんが

https://docs.omniverse.nvidia.com/exp_robotics/con_connect/ue4.html#supported-unsupported-features

LiveSyncしながらUSDベースでレイアウトをしつつ、マテリアル周りを調整したりする...みたいなことが
できるようなので
(Create上でUSDをReferenceすると、UE4側にもそれが反映される)
レイアウトしつつUE4でLookDevをするといった使い方もできそうで未来を感じます。

今回試していないですが、Create-UE4だけではなく
Mayaや他の対応しているConnectorのプラットフォーム間でも同期ができるので
そうなってくると色々とワークフローが変わるんじゃないかな?と夢が膨らみます。

とはいえ、まだ現状だとベータ版という感じがするのと
MayaのPluginと同様同時編集を重ねると何が起こるか謎(Mayaの場合はぶっ壊れる)
なことと、OmniverseのNucleusサーバー前提になってしまう危うさみたいなものがあるので
もうちょっと検証が必要かなーと思います。

今後に期待。

追記

前に試したときにエラーUE4公式のUSDロードプラグインを読んでいるせいでした。

こちら。
USDのライブラリのバージョンが違うせいっぽいですね、考えてみればそりゃそうだ。