Unity での VR 開発は、ワークフローや設計上の考慮点に関しては Unity での他のリアルタイム 3D 開発と共通していますが、以下のような特長を持っています。
VR 開発を始めるには、XR Plug-in Management システムを使用して、サポートしたいデバイスの XR プロバイダーのプラグインをインストールして有効にしてください。詳しくは XR プロジェクトの設定 を参照してください。
基本的な VR シーンには通常、トラッキングデータの 3D 原点を定義する XR Origin が含まれます。これはゲームオブジェクトとコンポーネントの集合体であり、ここにはメインシーンカメラとユーザーのコントローラーを表すゲームオブジェクトも含まれています。基本的な VR シーンの設定方法については、XR シーンを設定する を参照してください。
より高度な開発を行う場合は、通常、ユーザーが 3D 環境内で移動したり環境と相互作用するための手段が必要になります。XR Interaction Toolkit は、例えばオブジェクトを選択して掴むなどのインタラクションを作成するためのコンポーネントに加え、カスタマイズ可能なロコモーションシステムも提供します。XR Interaction Toolkit の代わりに Input System を使用することも可能ですが、両方を併用することもできます。
Unityでの VR 開発に使用される機能や API のほとんどは、パッケージを通して提供されます。パッケージには以下のようなものがあります。
Unity で VR アプリを構築するには、XR Plug-in Management システムを使用して、サポートしたいデバイスのプロバイダープラグインを追加して有効にします。手順については XR プロジェクトの設定 を参照してください。
Unity は、以下を含む VR プロバイダープラグインをサポートしています。
ノート: 多くのヘッドセットメーカーは、OpenXR ランタイムを標準で使用する方向で取り組んでいます。しかしこのプロセスは完了していないため、OpenXR と、ヘッドセットメーカー独自のプロバイダープラグインや SDK との間で、機能が一致しない場合があります。
XR Interaction Toolkit は、VR アプリケーションの開発をより簡単で迅速にします。XR Interaction Toolkit は以下を提供します。
XR Core Utilities パッケージには、他の Unity XR プラグインやパッケージで使用されるソフトウェアユーティリティが含まれています。通常、このパッケージは他の XR パッケージの依存関係としてプロジェクトにインストールされます。
Unity の Input System パッケージは、VR コントローラーボタンとジョイスティックからの入力へのアクセスをサポートするだけでなく、XR トラッキングデータとハプティクスへのアクセスも提供します。XR Interaction Toolkit や OpenXR プロバイダープラグイン を使用する場合は Input System パッケージが必要です。
Unity の VR Project Template は、Unity でのバーチャルリアリティ開発の出発点として使用できます。このテンプレートは、プロジェクト設定を調整し、適切なパッケージをプリインストールするほか、VR で使用できるプロジェクトを設定するにあたって参考になる、様々な事前設定済みサンプルアセットを含んだサンプルシーンを提供します。新規プロジェクトの作成時に、Unity Hub から VR Template にアクセスしてください。このテンプレートを使用してプロジェクトを作成する方法については、XR プロジェクトの作成 を参照してください。
このテンプレートのアセットについて、またサンプルシーンがどのように設定されているかについての詳細は、VR Project Template に関するガイド を参照してください。
ハンドトラッキングは、ユーザーが手を使って VR アプリケーションとインタラクトできるようにする機能です。ハンドトラッキングは XR Hands パッケージによってサポートされています。
XR Hands パッケージは以下を提供します。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.