🍣

ざっくりOmniverse

6 min read

最近BetaがリリースされたnVidiaのOmniverseを、ざっくりセットアップして
触ってみたところまでのメモを残しておこうと思います。

準備

ハードウェア

まず、Omniverseを活用する場合は、RTX 2080以上が必要だったので
今回はRTX3070を新調して、もともと使用していた1080から換装して準備完了。
ドライバーも指定のものが必要らしいので、最新のものをインストールしました。

正直、1080でもだめという時点でなかなかのハードルです。
まぁ、、、もともと3070を買おうか迷っていたので良いきっかけになったと
思うことにします。

インストール

次に、本体をダウンロードします。

https://www.nvidia.com/ja-jp/design-visualization/omniverse/
今すぐダウンロードからLauncherをダウンロードして、PCにインストールします。

Launcherは、Omniverseに必要な各種ツールをインストールしたり起動したりするための
ターミナルになります。
ここから、必要なものを別途インストールします。

インストールするのは、APPS以下にある

  • Create
  • Cache
  • Drive

あとは、CONNECTORSにある ADD + から

MayaConnectorsをダウンロードします。
ダウンロードすると、Mayaに必要なプラグインがインストールされます。

設定をする

次に、必要な設定をしていきます。

COLLABORATION の Add Local Collaboration Service を選択して
ユーザー情報を入力して、インストールします。

MayaとOmniverseCreateで連携するための各種サービスがインストールされました。

次にDrive。
スクショを撮り忘れてましたが、Driveをインストールして

ログインサーバーを聞かれるので、 localhost:3009 として、 Sign In します。

Sign In すると、Omniverseで共有するためのディレクトリが、Oドライブ(変えられる)
にマウントされます。
次にCache。

Cacheの「CACHE SETTINGS」を選び、

ブラウザ上に設定画面が表示されるので、「Collections」の Add を選び

localhost にして、 NEXT を押します。
次にユーザーIDとパスワードを聞かれるので、 COLLABORATION の Add Local Collaboration Service
で入力したIDとパスワードを入れます。

ここに localhostが追加されたら準備完了です。

Mayaから接続する

ここまでで、下準備は完了なのでMayaを起動して OmniverseCreateと連携をしてみます。
MayaとのConnectorをインストールすると、なにもしないでもPluginはロードされた
状態になります。

MenuにOmniverseが追加されます。

ここから Connect を選び、

localhost:3009 に Sign In します。

そして、Connect to USDを選び、

編集したい usdファイルを選びます。
選ぶときは、 上の設定で追加されたDrive以下に保存されたファイルを選びます。

次に、Omniverse Shelfのこのボタンを選び、

Fetchします。

シーンが開けました。

Createを開く

次に、Omniverse Create を開きます。
APPSのCreateからLAUNCHで開けます。

Mayaで開いているのと同じUSDを、Createで開きます。

開いたら、Layerタブにある

この雲マークをクリックします。

これで、LIVE SYNCがONになりました。

結果。
Maya側で操作したものを、Omniverse Create側にリアルタイムで反映できるようになりました。

OmniverseのMayaConnectorの特徴?ですが、
他のUSD系プラグインとは違い、MayaのノードしてUSDのPrimを展開して
作成ができます。
Connectorで開くときに、NewSceneするようになるので
現在の開いているMayaのシーン=USDの世界として解釈しているんでしょうかね。

Maya内ではUSDのレイヤーやリファレンスなどの情報は基本持っておらず
(TransformノードにKindの情報などは持っていた)
基本USDのオーサリングはCreate側で実行するイメージです。

Create内のうち、Maya側でモデルなどを編集したい場合、Connect to USDで
レイヤーをMayaで開き、該当レイヤーをMayaで編集する。
レイヤーのコンポジションなどといった、USD的な操作はCreate側でやる
そいう役割分担になっているようで
Maya内でレイヤーを指定してどうこうするより、直感的な感じがしました。

なお、↑ではMayaでの操作をCreateに渡してましたが
Create側での編集をすると、Maya側にリアルタイムで反映されます。
そして編集ができたらUSDに保存して編集を確定する...といった流れのようでした。

Create側のUSD操作

各レイヤーをMaya側でオーサリングできることはわかりましたが
複数のレイヤーをサブレイヤー合成したりする場合はどうなるか確認してみます。

CreateのTabには Stage と Layerの2つがあります。
大体同じだけど違うタブとして分けられているのは
Stageは、現在のすべてのレイヤーがコンポジションされて1つに組み上がった
結果のシーングラフになります。
Layerタブは、いわゆるPhotoShopなどのレイヤーと同じく、編集するためのレイヤー
を表示したものです。

USDはファイルを分けることで同時に編集することができる...というのは
何度か説明したとおりですが、

Omniverseでは、PhotoShopのレイヤーのようにレイヤーを追加して
表示・非表示したり、レイヤー単位でLiveSync(つまり複数の人でレイヤーを同時に操作できる?)
できるようになっています。

LayerのCreate Sublayerを選んで、

レイヤーを追加します。
このレイヤーは、上(RootLayer)に近いほど「強い」レイヤーになります。

レイヤーが複数ある場合は、「Authoring Lyaer」と表示されたレイヤーを
操作していることになります。
ので

Set Authoring Lyaer を選んで、追加したレイヤーをEdit対象にします。

試しに、新しく追加したレイヤーに Cylinder を追加してみます。

追加したレイヤーをMayaでConnect to USDで開くと、
シリンダーだけがあるシーンが開けました。

Mayaで開くと、EditLayerに記述されている内容が反映される感じでしょうか。

開いたレイヤーをLiveSync(雲マーク)をONにすれば
レイヤーの編集結果は、Create側にも反映されます。

リファレンスでロード

Createに対してモデルをリファレンスして配置したい場合。
その時は、

Contentからフォルダを開いていくと、USDファイルが表示されているので、
Drag&DropすればOKです。

キッチンセットをリファレンスした図。

リファレンスすると、それっぽいアイコンでロードされます。

リファレンスでロードした場合は、トップノード以下はロックされた状態になるようです。
Componentとしてロードされたものは、シーングラフ中だとLeafModel扱いになる
(編集はTopNodeのみ?)なのか
ビューポートで選択する場合も、RootPrimのみ(Assemblyのみ?)選ばれるようでした。
この辺の仕様はもうちょっと調べたいところです。

複数のモデルを配置する場合、リファレンスでモデルを管理する場合
この仕様は考える上で重要かもしれません。

まとめ

Createを使用すると、UEのエディタなどのように直感的にオブジェクトを配置したり
ライティングなどをできることができるし、
マテリアルのアサインなどもできることがわかりました。
そして、各レイヤーはMayaと接続してリアルタイムに編集できます。

なので、Mayaで各モデルを編集しつつ
Create上でLookDevやLayoutをする...さらにはそれを共同で行えるというのが
見えてきました。
これは熱いです。

Mayaでの扱われ方も、現在開いているMayaシーンが
USDのレイヤー扱いで切り分けられているので、SOLARISのように
USDの構造を熟知しないと扱いにくいということはなさそうです。
少なくてもMayaの世界でUSDを扱える様になると思いおます。

個人的にはCommingSoonになっているBlenderとのConnectorと
HoudiniのConnectorが出てきたら、かなりUSDを利用したパイプライン構築が
見えてくるんじゃないでしょうか。

引き続き色々調べてみようと思います。