UnityのVR開発環境の現状整理 2022

8.2K Views

October 26, 22

スライド概要

XR Interaction Toolkit、Oculus Integration、MRTK、WebXR Export等、Unityで使用できるVR開発環境を一望し、VRヘッドセットによってどれを選択すればいいのか、またそれぞれのSDKの動向について解説します。

こんな人におすすめ:
・さまざまなVR関係のSDKを見て情報量に戸惑っている方
・UnityにおけるVR開発において適切な技術選定をしたい方

受講者が得られる知見:
・Unityで使用できるVR開発環境の全体像
・それぞれのSDKの関係性
・OpenXR規格を含めたUnityおよびUnity周辺の全体的な動向

出演:
古林 克臣 (フリーランス)

--
初出: SYNC 2022 #UnitySYNC
https://events.unity3d.jp/sync/

profile-image

リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

UnityのVR開発環境の現状整理 2022 こりん(@korinVR) SYNC 2022 2022/10/26

2.

自己紹介 本名 ハンドル 職業 古林 克臣(こばやし かつおみ) こりん(@korinVR) VRエンジニア

3.

略歴(VR関連) 2013年~ Oculus Rift DK1を購入 個人でVR作品を制作・展示していたら いつのまにか本業に 2015年~ 施設・イベント向けVRアトラクション制作 2019年~ Questアプリや簡易メタバースシステム開発

4.

今日のお題 目的 - UnityのVR開発環境の全体像を把握する - Gotanda.unity #19で行った同セッションのアップデート - 主要なSDK・ツールキットを一通り見ていきます 注意 - 解説するのは2022年10月時点の状況です - ベンダーを分かりやすくするため Unity のようなラベルを付けています

5.

予備知識

6.

Unity XR Plugin Management Unity 2019.4以降のプラグインシステム 各VR/ARデバイスの実装の違いをプラグインで吸収しようとしている

7.

SDK+プラグインで各ヘッドセットに対応 Unity XR Interaction Toolkit - OpenXR Plugin、Oculus XR Plugin 等 Meta Quest / Valve Index / HTC Vive / PICO / Varjo 等 Meta Oculus Integration – Oculus XR Plugin Meta Quest Microsoft MRTK – OpenXR Plugin + Mixed Reality OpenXR Plugin HoloLens / Meta Quest 等 De-Panther氏 WebXR Export – WebXR Export Chrome (Windows) / Questブラウザ / PICOブラウザ 等

8.

Khronos OpenXR規格 XRプラットフォーム・デバイスのオープン規格 Unityでは主に Unity OpenXR Pluginから使用 主要なVR/ARヘッドセットや ゲームエンジンがOpenXRに対応 Chrome等のWebXR実装でも使用 標準規格としての地位がほぼ固まる Appleが参加していないのが懸念

9.

各SDKの動向

10.

Unity XR Interaction Toolkit

11.

Unity XR Interaction Toolkit Unity公式の汎用XRツールキット XR Plugin Managementのプラグインでさまざまなヘッドセットに対応 (Meta Quest、Valve Index、HTC Vive、PICO、Varjo 等) 2022/2にプレビューがはずれて正式版になった

12.

Unity XR Interaction Toolkitの導入方法 高機能でセットアップや機能の使用にだいぶ予備知識が必要(だった) XR Interaction Toolkit 2.2.0以降では パッケージのStarter Assetsサンプルに設定済みの各種プレハブあり Complete XR Origin Set Upをシーンに配置するだけで最低限動作 その他、動作するサンプルとしてUnity公式の XR Interaction Toolkit Examples を開くのがおすすめ(VRフォルダ) 年内に新しいサンプルが登場するとのこと

13.

Valve Steam VR対応アプリの開発 Steam VRランタイムのOpenXR規格対応により Unity XR Interaction Toolkit + OpenXR Pluginで開発できる Steamでのストア販売まで可能 例えばZombieland VRがOpenXR Pluginを使用 従来の Valve SteamVR Plugin + OpenVR Pluginは 開発が停止している状態

14.

Unity Valve OpenXR PluginのViveトラッカー対応 Steam VRがOpenXRのViveトラッカーの暫定拡張に対応 Unityのフォーラムのスレッドで公開されているスクリプトをインポートして プロファイルを有効化するとトラッキングデータが取れる→詳しくはこちら

15.

PICO PICOヘッドセット対応 PICO DeveloperサイトからSDKをダウンロード 展開したローカルのパッケージをインストールすると PICOプラグインがインストールされる あとは基本的に Unity XR Interaction Toolkitがそのまま使える 開発者モードを有効にする方法 ハード的にはQuestに似ている Foveated Rendering、Focus Awareness等 PICO Storeへのアプリ公開は審査あり

16.

Meta Oculus Integration

17.

Meta Oculus Integration Meta社提供のQuest用SDK 「XR Interaction Toolkitがあるのにまだ必要なの?」→使います! Meta Quest固有の機能を使用する場合 - Metaのプラットフォームサービス - ハンドトラッキング、カメラパススルー (OpenXRでプリミティブなAPIは露出しているが…) - Application SpaceWarp 等 Oculus Integrationのほうが枯れていてパフォーマンスが出る傾向 実験的にPackage Managerでの配布も開始(Meta XR Utilities等)

18.

Meta Questが Khronos OpenXRに移行 従来の独自APIが廃止されOpenXR APIに Oculus IntegrationがOpenXRを使用するように 少し前まではVulkanで描画が壊れたりしていたが安定してきた

19.

Meta Oculus固有の機能 - アバター関連がOculus Integrationから分離された Meta Avatars SDKを別途ダウンロードして使用 - Interaction SDK - Oculus Integrationの高機能なインタラクションツールキット これらを使うと基本的にはQuest依存になるので注意 Meta Quest Developer Hub(旧Oculus Developer Hub)が 高機能になっているので要チェック OculusプラットフォームのP2P通信はdisconに

20.

余談:マルチプラットフォーム対応

21.

余談:マルチプラットフォーム対応 - XR Interaction ToolkitとOculus Integrationに両対応したい - iPhone・Androidスマートフォン版もビルドできるようにしたい 等 個人的にはエディタ拡張のメニューでビルド環境をまるごと切り替えている asmdefをきちんと設定(Oculus Integrationの有効化・無効化 等) パッケージ構成を変更(PackageManager.Client.AddAndRemove) カメラリグ等のプレハブを適宜入れ替え 抽象化レイヤーを作ってインターフェース経由でカメラリグ等を使用 GitHub Actions等で全プラットフォームのCIを走らせる 今回のスコープからはずれるので踏み込みませんがこんな感じでできます!

22.

Microsoft Mixed Reality Toolkit

23.

Microsoft Mixed Reality Toolkit 元々はHoloLensのSDKだったが 汎用ツールキットを志向 ハンドトラッキングの空間UIが 充実しているのが特徴 Meta Questでも一部動作 OpenXR Plugin Mixed Reality OpenXR Plugin Microsoft ハンドトラッキングやアイトラッキング等の拡張APIにアクセス Unity

24.

最新のMRTK3でアーキテクチャが大きく変更 2022年10月現在Public Preview - Unity XR Interaction Toolkitベースになった クロスプラットフォームの基盤をUnity側に任せるように - 機能がPackage Managerのパッケージとして細かく分割・整理された MRTK3の対応プラットフォームは現在 HoloLens 2 / Meta Quest / PCのOpenXRヘッドセット 今後増えていくと見られる

25.

MRTK3の導入方法(概要) Unityで新規プロジェクトを作ったのち Mixed Reality Feature Toolで必要なパッケージをインストール MRTKのプロファイルを設定

26.

De-Panther氏 WebXR Export

27.

De-Panther氏 WebXR Export De-Panther氏のライブラリ(Apache 2.0) WebGLビルドを W3C WebXR Device APIでVR/ARに対応させる Chrome (Windows)、Meta Questブラウザ、PICOブラウザ等で VRボタンをクリックするとVRモードに De-Panther氏がOpenUPMで 公開しているパッケージをインストール WebXRCameraRigをシーンに配置 →詳しい手順はこちら

28.

WebXR Exportのパフォーマンスは? 意外と動く (比較的簡単なシーンならQuestのブラウザでも90fps動作するように) 主な実行速度のペナルティ: - Multiviewレンダリングができない 左右両眼を別々のカメラで描画→負荷が2倍 - UnityのWebGLビルド自体のペナルティ - WebAssemblyがネイティブよりは少し遅い - マルチスレッドに未対応(現在対応しようと頑張っている様子) - GPUスキニングができない 等

29.

ところでUnity公式のWebXR対応は? 公式のロードマップではUnder Consideration(検討中) このカードにフィードバックすると 対応の優先度が上がるかも? Multiviewレンダリングに 対応してくれると嬉しい… (JavaScriptのBabylon.jsは OCULUS_multiview拡張に対応)

30.

VRChat VRChat SDK

31.

VRChat VRChat SDK UnityのVR開発環境として無視できない デフォルトでマルチプレイヤー・アバター対応 本格的なゲームワールドも登場 「PROJECT: SUMMER FLARE」 (ヨツミフレームさん作) プレイ時間約3時間の謎解きワールド 「VERTEX: VRCBattleRoyale」 (坪倉さん作) PUBGのような本格対戦型FPS

32.

VRChat VRChatのワールド公開の流れ ※VRChat社との特別な契約なしに商業利用できないことに注意 アカウントを作って初期状態ではワールドをアップロードできない ユーザーランクをVisitorからNew Userに上げる必要がある (だいたい数時間から十数時間ほど遊ぶと上がる) SDKからワールドをアップロードすると限定公開(Community Labs)に →問題が報告されず一定の人がプレイすると自動的に一般公開(public)に

33.

VRChat VRChatのワールド制作 Unity 2019.4.31を使用 最新の方法はVRChat Creator Companionでプロジェクトを作成 UnityのPackage Managerが活用されるようになった

34.

VRChat VRChat SDKのスクリプティング ノードベースのビジュアルプログラミング言語Udon Udon Node GraphがUdon Assemblyに変換されUdon VMで実行 基本的にはUnityのAPI(の一部)がそのまま露出している C#をUdon AssemblyにコンパイルするUdonSharpがあり こちらでコードを書いている人のほうが多い 標準のC#と異なりかなり文法の制限がある 実行速度も数桁遅いので注意

35.

まとめ

36.

2022年9月現在 いろんなヘッドセットに対応したい →XR Interaction Toolkit Questの機能を最大限引き出したい 業務アプリを開発したい HoloLensに対応したい →Oculus Integration WebXRに対応したい →WebXR Export →Mixed Reality Toolkit VRChat SDKもあるよ! その他メタバースプラットフォームのSDKも… (Cluster Creator Kit等)

37.

宣伝 いろいろまとめ記事を書いてます 各SDKの詳細なトピック等 「VR開発メモ」で検索を!

38.

聞いてくださって ありがとうございました! こりん(@korinVR)