Version: Unity 6.0 (6000.0)
言語 : 日本語
Unity の AR 開発
XR アーキテクチャ

Unity の VR 開発

VR 開発は、一般的なワークフローや設計上の考慮事項に関しては Unity でのリアルタイム 3D 開発と共通しています。ただし、以下のような違いがあります。

  • より豊富なユーザー入力: “従来の” ボタンやジョイスティックコントローラーに加えて、VR デバイスにより、スペーシャルヘッドコントローラーや (場合によっては) 手や指のトラッキングが使用可能です。
  • 環境とのより “親密な” インタラクション: VR では入力方式が豊富なため、一般的な 3D ゲームやアプリケーションと比べてはるかに親密で “身体的” な環境とのインタラクションが期待されます。ユーザーは物を手に取り、環境内のオブジェクトと相互作用できることを期待しています。ヘッドトラッキングにより、カメラが壁などの環境の境界により近付くことができ、それらを通り抜けることさえできます。
  • ユーザーの快適性に関する懸念: 多くの人は、カメラの動きと頭の動きが一致しない場合に、VR で乗り物酔いを起こします。乗り物酔いの要因を軽減させる方法としては、高フレームレートを維持することや、快適なモードをユーザーが選択できるようにさまざまなロコモーションのオプションを提供すること、またカメラがユーザーのヘッドトラッキングから独立して動かないようにすることが挙げられます。

VR 開発を始めるには、XR Plug-in Management システムを使用して、サポートする必要があるデバイスの XR プロバイダーのプラグインをインストールして有効にしてください。詳細については、XR プロジェクトの設定を参照してください。

VR シーンの基本要素

基本的な VR シーンには、トラッキングデータの 3D 原点を定義する XR Origin が含まれます。これはゲームオブジェクトとコンポーネントの集合体であり、ここにはメインシーンカメラとユーザーのコントローラーを表すゲームオブジェクトも含まれています。基本的な VR シーンの設定手順については、XR シーンを設定するを参照してください。

通常、基本機能以外にも、ユーザーが移動して作成した 3D 世界を操作するための方法が必要です。XR Interaction Toolkit には、オブジェクトを選択して掴むなどのインタラクションを作成するためのコンポーネントが用意されています。また、カスタマイズ可能なロコモーションシステムも用意されています。XR Interaction Toolkit に加えて、または XR Interaction Toolkit の代わりに Input System を使用できます。

VR パッケージ

Unityでの VR 開発に使用される機能や API のほとんどは、パッケージを通して提供されます。パッケージには以下のようなものがあります。

VR プロバイダープラグイン

Unity で VR アプリを構築するには、XR Plug-in Management システムを使用して、サポートする必要があるデバイスのプロバイダープラグインを追加して有効にします。手順については、XR プロジェクトの設定を参照してください。

Unity は、以下を含む VR プロバイダープラグインをサポートしています。

  • Apple Vision Pro 用の Apple visionOS XR プラグイン
  • Oculus Rift、Meta Quest 2、Quest Pro 用の Oculus
  • OpenXR ランタイム対応のデバイス用の OpenXR (Meta ヘッドセット、VIVE ヘッドセット、Valve SteamVR、HoloLens、Windows Mixed Reality など)。
  • Sony の PS VR デバイスおよび PS VR2 デバイス向け PlayStation VR (PlayStation の登録済み開発者が利用可能)。詳細については、PlayStation パートナーを参照してください。
  • Unity エディターの再生モードビューで VR ヘッドセットをシミュレートするためのモック HMD

注意多くのヘッドセットメーカーは、OpenXR ランタイムを標準で使用する方向で取り組んでいます。ただし、このプロセスは完了していないため、OpenXR と、ヘッドセットメーカー独自のプロバイダープラグインや SDK との間で、機能が一致しない場合があります。

XR Interaction Toolkit

XR Interaction Toolkit を使用すると、VR アプリケーションの開発をより簡単かつ迅速に行うことができます。XR Interaction Toolkit には以下の設定と機能が用意されています。

XR Core Utilities

XR Core Utilities パッケージには、他の Unity XR プラグインやパッケージで使用されるソフトウェアユーティリティが含まれています。通常、このパッケージは他の XR パッケージの依存関係としてプロジェクトにインストールされます。

Input System

Unity Input System パッケージは、VR コントローラーボタンとジョイスティックからのユーザー入力へのアクセスをサポートするだけでなく、XR トラッキングデータとハプティクスへのアクセスも提供します。XR Interaction ToolkitOpenXR プロバイダープラグインを使用する場合は Input System パッケージが必要です。

ハンドトラッキング

ハンドトラッキングは、ユーザーが手を使って VR アプリケーションを操作できるようにする機能です。ハンドトラッキングは、XR Hands パッケージでサポートされています。

XR Hands パッケージは以下を提供します。

  • 標準のハンドデータモデル
  • ハンドトラッキングデータにアクセスするための API
  • XR Hand Skeleton Driver コンポーネント。Transform のセットを対応するハンドジョイントにマッピングし、トラッキングデータが受信されるとそれらの Transform を更新します。
  • XR ハンドメッシュコントローラー。ハンドトラッキングが取得される、または失われると、メッシュを有効または無効にします。
  • ハンドトラッキング API の使用方法を示す HandVisualizer のサンプル。
Unity の AR 開発
XR アーキテクチャ