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/usdc/usda/usdz)
- 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に持って行く流れを解説予定です。