[Omniverse] [Unity] Omniverse Unity Connector 201.0.0 beta

  • by

2023年10月21日ごろに、Omniverse Unity Connectorが201.0.0 betaにバージョンアップされました。
前回の200.1よりもかなり機能強化された部分があるため、改めて情報を書いていくことにします。

使用できる機能は、ドキュメントもご参照くださいませ。
https://docs.omniverse.nvidia.com/connect/latest/unity.html

インストール

Omniverse Unity Connectorのインストールは2段階の作業が必要になります。
また、今回はOmniverse Unity Connectorになりますので、過去のバージョンを削除してから最新版をインストールすることにしました。

  • Omniverse Launcherからインストール
  • Unityのプロジェクト上で、Package Managerを使ってインストール

Omniverse Launcherからインストール

Omniverse LauncherのEXCHANGE-CONNECTORSでUnity Connectorを探し、INSTALLボタンを押してインストールします。

インストール先は、OmniverseのSettingsよりLIBRARY PATHで確認できます。

"unity-connector-201.0.0"にインストールされました。

Omniverse Unity ConnectorはUnityのプロジェクトごとに参照を与えるため、
この段階ではまだ過去バージョンは削除していません。

Unityのプロジェクト上で、Package Managerを使ってインストール

Unityのプロジェクトを開きます。
もしくは新しくプロジェクトを作成します。

このとき、古いバージョンのOmniverse Unity Connectorをプロジェクトで使用している場合は、一度古いものを削除します。
メインメニューの[Window]-[Package Manager]を選択。

「Packages: In Project」を選択し、Omniverse Unity Connectorの過去バージョンがある場合は選択。
右の「Remove」ボタンを押すと削除できます。

削除後は、一度Unity Editorを再起動したほうがいいかもしれません。

新しいバージョンのOmniverse Unity Connectorをインストールします。
Package Managerの左上の「+」からメニューを表示し、「Add package from disk」を選択します。

Unity Connectorをインストールしたフォルダ内の"unity-connector-201.0.0/com.nvidia.omniverse.connector"より"package.json"を選択します。

Packageとしてインストールが完了するのにしばらく時間がかかります。
無事インストールが完了すると、Omniverse Unity Connectorがプロジェクトに追加されました。
メニューに「Omniverse」が追加されているのを確認します。

Omniverse Launcherから古いUnity Connectorをアンインストール

すべてのUnityプロジェクトでこのUnity Connectorの置き換え作業を行った後、
不要になったOmniverse Unity Connectorをアンインストールします。

Omniverse LauncherのLIBRARYを選択し、左からConnectorsを選択します。
インストールされたConnectorが一覧表示されます。

Unityにマウスカーソルを合わせると、右端に3本線のアイコンが表示されるためクリック。
OPTIONSメニューから一番上のSettingsを選択します。

UNINSTALLボタンを押すことで、対象のUnity Connectorを削除できます。

Omniverse Unity Connectorで使用できる機能

Omniverse Unity Connector 201.0.0 betaで使用できる機能は以下のものがあります。
なお、UnityのRenderPipelineはBuilt-in、URP、HDRPに対応しています。
マテリアルは標準サポートされているShaderのみに対応しています。
ただし、テクスチャの_MainTexなどのUnityでよく使われるマテリアルのパラメータを使っている場合、
カスタムShaderでもUSDに渡せる場合があります。

  • USDのエクスポート
    • シーンをエクスポート (usd/usdc/usda/usdz)
      • カラのGameObject → USDのXform
      • Mesh
      • Camera
      • Light
    • アセットをエクスポート (usd/usdc/usda/usdz)
    • マテリアル (UsdPreviewSurface, OmniPBR, OmniGlassにコンバート)
    • エクスポートはローカルだけではなく、Nucleus上にも直接エクスポートできる
    • エクスポート完了後に、USD ComposerまたはUSD Presenterを起動し、エクスポートしたUSDファイルを即座に開く
    • UnityでのGameObject名にUSDで使えない文字列を使用している場合(UTF-8など)、DisplayNameも出力 New!
    • Physics情報をエクスポート(Rigidbody, Collider, Physics Joint, Articulation) New!
    • UnityのPrefabをUSDファイルに分けて出力 New!
  • USDのインポート
    • アセットとしてUSDファイルをインポート。テクスチャやマテリアルも読み込まれる。
    • マテリアル (UsdPreviewSurface, OmniPBR, OmniGlassからコンバート)
    • ローカルだけでなく、Nucleus上からもインポートできる New!
    • インポートするUSDのMeshでDisplayColorを使用している場合、Unityにインポートする際に頂点カラーを使用するか、マテリアルとして割り当てるか選択できる。ただし、201.0.0 betaでは正しく動作しない。
  • UnityからOmniverseアプリ(USD Composerなど)への一方通行のLive Sync

内部的な変更点

  • シーンごとの設定ファイルの管理は、Unityの標準的な機能を使うように変更
  • ファイル入出力のUIを統一。Omniverseが提供するファイルダイアログボックスを使用することでNucleusにも同じ流れでエクスポート/インポートできるようになった。
  • usdzのエクスポートは、同じファイルダイアログボックスから指定できるようになった。
  • USD 20.08 → 22.11の仕様変更に合わせたエクスポート

今回はここで区切り、次回はUnityから出力したusdzファイルをiPhone/iPadのAR Quick Lookに持って行く流れを解説予定です。