本日はMetaQuestの学習枠です。
MetaHorizonの開発ドキュメントを読みながら実際に開発を行ってみました。
MetaHorizonの開発ドキュメント
MetaHorizonの開発ドキュメントを実際に手を動かしながら実行時のキャプチャをしていきます。
developers.meta.com
本記事は以下の「Horizon OS向けアプリの開発」の記事を試します。
developers.meta.com
UnityでHorizon OS用のエクステンデッドリアリティアプリを開発する
UnityでHorizon OS向けに開発する
MetaではMeta Questヘッドセット用のXRアプリを開発するのに役立つUnityパッケージを数多く提供しています。
例えばMeta XR Core SDKにはカスタムXRリグと基本的なXR機能のサポートが含まれています。
その他の専門のMeta XR SDKを使用するとUnityプロジェクトに様々なタイプのユーザー入力を統合することができます。
Meta XRリグ
標準的な3Dシーンの場合、仮想カメラ1台で「ゲームビュー」をキャプチャします。
XRシーンの場合は複数の別個の仮想カメラとスクリプトで構成されるリグが使われます。
これにより、ヘッドセットの動きがエンドユーザーに表示されるビューにマッピングされます。
Unity XR開発ではXRリグ(またはXR Origin)がXRシーンにおけるスペーストラッキングの中心となります。
XRリグにはコントローラーとヘッドセットのトラッキングデータをデバイスからアプリ内のシーンにマッピングするGameObjectsが含まれています。
このトラッキングデータはシーンカメラを動かすために使用されます。
また、インタラクションのコントロールやコントローラーと手のポーズのアニメーション化の際にも考慮されます。
Meta XR Core SDKにはOVRCameraRig prefabが含まれています。
これにはUnityの従来のメインカメラに代わるカスタムXRリグが含まれています。

他のUnity用Meta XR SDKには同様のXRリグprefabが含まれていますが、若干の違いがあります。
例えばインタラクションSDKにはOVRCameraRigInteractionが含まれており、コントローラーとジェスチャーコントロールを使ってMeta XR Core SDK OVRCameraRigを拡張します。

ユーザーインプットを処理する
Meta XR SDKを使って開発されたアプリはMeta Questのヘッドセットとタッチコントローラーの技術を使用してユーザーの頭、手、顔、音声からのインプットにアクセスして処理することができます。
インタラクション
ユーザーは、没入感のある様々な方法でXRアプリケーションとやり取りすることができます。例えば、頭を動かして自分の環境の異なるエリアを表示することができます。
手を伸ばしてオブジェクトをつかむことも、コントローラーのボタンを使って環境内でロコモーションの動きのような複雑な操作を実行することもできます。
インタラクションはユーザーの手の動きやコントローラーの動作が周囲のオブジェクトや環境に与える影響を決定します。
Meta XR Core SDKで提供される低レベルのAPIを使用して生のヘッドセットとコントローラーインプットでカスタムインタラクションを作成することもできますが、Meta XR Interaction SDKでMetaが提供する作成済みのカスタマイズ可能なインタラクションコンポーネントを使うことをおすすめします。

ボディトラッキングとフェイストラッキング
Meta Questのヘッドセットはユーザーの体と顔の複雑な動きをトラッキングすることができます。
Meta XR Movement SDKを使うとMeta Questハードウェアのトラッキング機能を利用して没入感のあるレスポンシブなユーザー体験を創造できます。

キーボードインプット
アプリではユーザーによるテキストの入力が必要になる場合があります。
Meta Quest用Horizon OSアプリではMeta XR Core SDKに含まれるAPIを使用して仮想キーボードのテキストを処理することができます。
あるいはMixed Reality Utility Kit (MRUK)が提供するトラッキング機能を備えた物理キーボードを使用することもできます。
音声インプット
ユーザーのインプットに対して実際の動きやコントローラーインプットを用いるだけでなくユーザーが自分の声で環境とやり取りできるアプリを開発することができます。
Meta XR Voice SDKを使ってアプリとのやり取りをより自然かつ柔軟にすることでXR体験を向上させます。
例えば音声コマンドでコントローラーの操作を一言で簡単に実行したり、インタラクティブな会話でアプリのエンゲージメントを高めたりすることができます。

生データのインプットの管理
Meta XR Core SDKを使用すると生データのコントローラーとヘッドセットのインプットにアクセスできます。
そのインプットを使ってUnityプロジェクト内のオブジェクトをコントロールしたり、独自のインタラクションやジェスチャーを作成したりできます。
複合現実機能の統合
Mixed Reality Utility Kit (MRUK)は、Meta Quest用の空間認識アプリを構築する際の一般的な操作を実現するユーティリティとツールを提供します。
MRUKは現実世界に対するプログラミングを容易にし、Metaによって提供されるほかの複合現実機能を活用します。
