複数ソフトで同一ファイルを同時編集してみた
以前の記事で、テレビ番組の背景セットを3DCGで制作していることを少しだけご紹介しました。
実際の現場では Maya や 3ds Max でモデリング、FBX や OBJ で書き出したあと Unreal Engine に持ち込んで描画、というフローを取っています。
例えばシーンが完成した後にモデルの修正が必要になった場合、再度モデリングをして書き出し、 Unreal Engine にインポートして… と工数がかかってしまいます😮💨
そのほかにも、同じフォーマットで書き出したがバージョンが異なっているようなことや、形状データを書き出したら互換性がない機能を使っていて思い通りにならない、など様々な問題が発生します。
こんなとき、モデリングソフトと描画ソフトがリアルタイムに同期できたら… 🤔というのを私自身も感じていました。
そんなときに活躍するのが NVIDIA Omniverse のコラボレーション機能です!
今更ながらコラボレーション機能を使ったことがなかったので、複数ソフトで同時編集する方法をご紹介します。
(今回は仕様上ローカルでの検証になります。)
動作環境
-
OS : Windows11
-
CPU : Intel Core i9-13900KF
-
GPU : NVIDIA GeForce RTX 4070 Ti
-
Unreal Engine 5.3.2
-
NVIDIA Omniverse Launcher
- Omniverse USD Composer
なぜ同時編集ができるのか?
一言で説明すると、「Omniverseというプラットフォームを経由してNucleusというデータベースの中にあるファイルを、OpenUSDという共通のフォーマットでやりとりしているから」です。なかなか難解ですね🧐
まずキーワードとなるのは「 OpenUSD 」です。OpenUSDとはピクサーが開発した、互換性のあるソフトウェアとプラットフォーム間で相互運用可能な共通のフォーマットです。(正確に言うとファイルフォーマットではありません)
また、レイヤーの構造を持っており、前段の作業履歴を持ったまま作業の結果を合成することで、元々のデータを上書きせずに編集できるので、非破壊編集が可能になっています。
このOpenUSDの機能によって、異なるソフトでも同じファイルを扱えるようになっています。
次にキーワードになるのは「 Nucleus 」です。NucleusとはOmniverseのデータベースおよびコラボレーションエンジンです。複数のユーザーを複数のアプリケーションで同時にライブ接続できる機能を持っており、OpenUSDのデータをリアルタイムで編集することができます。
以上の機能によってリアルタイムに、複数ユーザーが異なるソフトで編集できるようになっています!
では早速、同時編集の機能を試していきましょう!
NVIDIA Omniverseの設定
※下記サイトからOmniverse Launcher をダウンロードし、各種アカウント設定を完了させてください
1. Nucleusサーバーのダウンロードとインストール
Omniverse Launcherを開き、Nucleusタブを選択する
今回はローカルのサーバーを作成するので「Create Local Server」を選択する
ストレージのパスを指定する
管理者アカウントを作成する
このアカウントはNVIDIAアカウントとは関係ないので好きに設定して問題ありません
「ユーザー名」と「パスワード」はこのあとも使用するので控えておきましょう
サーバーのセットアップが進む
Localhost という名前のサーバーが出来上がりました!
2. ユーザーの設定
画像右のアイコン「コンテンツをブラウズ」を押すとブラウザでサーバーにアクセスできます
先ほど作成した管理者アカウントでログインする
画面左下の人のアイコンを押す
「Add User」を選択し、コラボレーションしたいユーザーを作成する
名前とメールアドレスを記載してユーザーを作成
画面右側の「INVITE USER」を選択するとリンクがコピーされるので、コラボレーションしたいユーザーにリンクを送る
グループの設定やアクセス制限などもできるので必要であれば設定をしておきます
(招待された側)パスワードを設定する
無事ログインできるとサーバーにアクセスできます!
3. コネクタとアプリケーションのインストール
使いたいソフトのコネクタをインストールしておく
今回は Omniverse USD Composer も利用するので、合わせてインストールしておきます
Unreal Engineでコラボレーションする場合の設定
プロジェクトファイルを開き、左上のomniverseのアイコンから「Add Server」を押す
接続したいサーバーの名前を入れる
omniverseのアイコンにマウスオーバーした際、connectedと表示されていれば接続完了
usdで保存されたオブジェクトを開く
Live Session にチェックを入れ、新しいセッションを作るか、既存のセッションを開くとコラボレーションが始まる
(特定のオブジェクトでコラボレーションしたい場合)UEでオブジェクトを 右クリック > Export to Omniverse をクリック
Exporter が開くので設定を確認
エクスポート先を設定する
Omniverse USD Composerでコラボレーションする場合の設定
編集したいUSDファイルを開く
右上の LIVE の横の▽を押す
既存のセッションに参加する(Join Session)か、新しくセッションを作成(Create Session)できる
緑色になっていればLIVEセッションができています!
動作デモ
左側が Omniverse USD Composer、右側が Unreal Engine の画面です。移動や回転共にリアルタイムに反映されていることがわかります!
まとめ
今回は Omniverse を利用して複数ソフトで同一ファイルをリアルタイムに編集する機能を今更ながら使ってみました!修正ファイルを書き出して、インポートし直して、のような手間が減ると思うと、すごく画期的な機能だな…と改めて感じました。
今回はローカルで実装しましたが、AWSを始めとしたクラウドで実装すれば、社内の複数人だけでなく複数社と協業する際も効率的な制作ができるのではないかと思います!
Omniverse にはそのほかにもリアルタイムレンダリングなど様々な機能が搭載されているので、これからどんどん使っていこうと思います!
おまけ
Blenderで検証
Blender には同時編集の機能はないものの、Nucleus から OpenUSD をインポートできたので実践してみました
Omniverse から Blender を開く
右上のメニューを表示させる
Omniverse メニューが表示される
CONNECTIONS の + で接続先を記載する
Import USD でインポートしたいファイルを選択する
設定を確認して OK を押す
インポートされればOK
編集後は Export USD でエクスポートすれば他のソフトでも使えそうです!