Oculus Go開発

2020年6月23日に、OculusはOculus Goを終了する予定であることを発表しました。日付と代替品についての情報はOculus Goの紹介に掲載されています。

Oculus Quest開発

すべてのOculus Quest開発者は、Questストアと追加リソースへのパブリッシングアクセス権を得る前に、コンセプトレビューに合格する必要があります。Questアプリ開発サイクルのできる限り早い段階で、コンセプトドキュメントをレビュー用に提出してください。その他の情報およびコンテキストに関しては、「アプリをOculus Questストアに提出する」をご確認ください。

アプリのライフサイクル処理

このガイドでは、VRのフォーカスステートと、UnityでビルドされたOculusアプリのライフサイクルを処理するプロセスについて説明します。

フォーカスステート

入力フォーカス

Dashでは、入力フォーカスのコンセプト、すなわち、ユーザーがアプリあるいはその他のものにフォーカスしているかどうかを説明しました。Dashサポートのアプリへの追加は、アプリ実行時の正常な処理を意味しますが、ユーザーのフォーカスは別の場所にあります。

アプリにフォーカス入力があるかどうかを確認するには、フレームごとにOVRManager.hasInputFocusをクエリします。アプリにフォーカスがある場合、hasInputFocusはtrueを返します。ユーザーがDashメニューを開いたときやHMDを削除したときなど、ユーザーのフォーカスが別の場所にある場合、hasInputFocusはfalseを返します。

シングルプレイヤーのアプリまたはアプリ体験では、アプリを一時停止し、オーディオ再生をミュートし、シーン内でトラッキングされているコントローラー/手のレンダリングを停止できます(Dashは別のハンドセットを使用します)。

マルチプレイヤー体験では、入力フォーカスの損失を異なる方法で処理した方が良いでしょう。アプリにフォーカス入力がない間は、手を非表示にして入力を無視する必要がありますが、オーディオの再生と背景のマッチングは継続した方が良いでしょう。

詳しくは、Unityスクリプト記述リレファレンスOVRManagerにあるHasInputFocusをご覧ください。

VRフォーカス

入力フォーカスと同様に、ランタイムはアプリにVRフォーカスがあるかどうか、すなわち、アプリの一部がユーザーに表示されているかどうかも知らせます。

様々な理由でアプリがVRフォーカスを失う可能性があります。最も一般的なものは、ユーザーがホームに戻るか、別のアプリに切り替える場合です。アプリにVR入力があるかどうかを確認するには、フレームごとにOVRManager.hasInputFocusをクエリします。アプリが表示されなくなると、OVRManager.hasVrFocus()falseを返します。

VRフォーカスが失われると、ユーザーはアプリを見ることができなくなります。フレームの送信を停止し、オーディオをドロップし、さらにトラッキング入力を停止してください。アプリを中断した位置にユーザーを戻せるように、ゲームの状態を保存しておいた方が良いでしょう。

詳しくは、Unityスクリプト記述リレファレンスOVRManagerにあるHasVRFocusをご覧ください。

アプリのライフサイクル

Unityアプリケーションは、Oculusランタイムからの次の一般的なイベントをリッスン、あるいはチェックできます。

アプリのスタート

アプリケーションが初期化されたとき -

  • HMDAcquired
  • HMDMounted
  • VrFocusAcquired
  • TrackingAcquired

HMDの高速なアンマウントとマウント

ユーザーがHMDを削除すると、すぐに元に戻します

  • HMDが削除されたとき - HMDUnmounted
  • HMDが入れ換えられたとき - HMDMounted

遅延ありのHMDのアンマウントとマウント

ユーザーがHMDを削除すると、少し待ってから元に戻します(10秒以上)

  • HMDが削除されたとき - HMDUnmounted
  • その後、10秒以降 - OnApplicationPause(true)
  • HMDが入れ換えられたとき -
  • OnApplicationPause(false)
  • TrackingLost
  • HMDMounted
  • TrackingAcquired

HMDがガーディアンのトラッキングされたスペースから抜け出ます

ユーザーのHMDが定義されたプレイエリアから抜け出ます

  • OnApplicationFocus(false)
  • OnApplicationPause(true)

HMDがプレイエリアに戻ります

  • OnApplicationFocus(true)
  • OnApplicationPause(false)
  • TrackingLost
  • TrackingAcquired

電源ボタンが押されるとディスプレイをオフにします

  • OnApplicationPause(true)

電源ボタンが押されるとディスプレイをオンにします

  • OnApplicationPause(false)
  • TrackingLost
  • TrackingAcquired

Oculusボタンが押されるとシステムUIを開きます

  • OnApplicationFocus(false)
  • OnApplicationPause(true)

ユーザーが「再開」を選択する

  • OnApplicationFocus(true)
  • OnApplicationPause(false)