質問: ### 前提・実現したいこと プログラミングは多言語で経験はありますが、Unity初心者です。 UnityとVIVEで開発をしています。 コントローラーは使わない前提です。 注視点ベースのUIを実装したいです。具体的な機能は以下のイメージです。よくあるパターンかと思います。 HMDの向きで選択する。中央に注視点を示すマーカーが表示されている。ボタン等のほうを向くと選択状態になり、例えば3秒間選択状態だと確定する。3秒間には時間の経過を示す円状または棒状のインジケーターが表示される。 VR Samplesのアセットは落としてみました。 ### わからないこと VIVEはコントローラーがあるからか、注視点ベースで作ることがあまりないのかなと思います。ネット上に情報があまりありません。 イメージ的には、Cameraから毎フレームRayを飛ばして、衝突したオブジェクトを取得して、どうこうするのだということはわかりました。 ただ他のHMD用には、SDKが大体あり、場合によってはインジケーターまで簡単に準備できるようになっていたりしているように思います。 注視点を示すマーカーの表示深度の実装、インジケーターの実装、などいろいろやることがありますが、共通の実装を世界中で各自で車輪の再発明をしているのか、と疑問になっています。 VIVEでそういうことをしたい場合、完全に自前で実装するのが一般的なのでしょうか。それとも一般的に利用されるアセットなどあるのでしょうか。 ### わからないこと(2) GUIを使うのか、普通の3Dオブジェクを使うのか、どちらが一般的でしょうか?
回答: 注視点ベースのUI ========== 私自身は実装したことはないですが、興味を惹かれましたので検索したところ、「視線コントローラー」「視線入力」「Gaze UI」等と呼ばれている技術であることがわかりました。 Viveのアセット ========== Vive用のアセットだと、SteamVR PluginとVRTKというものがよく利用されます。 VRTKでGaze UIを実現するという解説動画が見つかりましたので、記載します。 * 解説動画:Gaze UI (Headset Pointer) | Unity VR Tutorial (VRTK) #4 * ソースコード:SyntonicApps/unity-vrtk-examples 手動で実装 ====== アセットを使わない方法もあります。以下の解説が詳しいです。 * yumemi-inc/vr-studies:102 1 視線コントローラー