-
VIVE Wave
-
SDK
- VIVE Wave とは何ですか?
- Wave SDK はどこからダウンロードできますか?
- Wave デベロッパーコミュニティフォーラムにアクセスするにはどうすればいいですか?
- カスタムパッケージをインポートした後に、コンパイルエラーまたはビルドエラーを修正するにはどうすればよいですか?
- コントローラーをシーンに配置するにはどうすればよいですか?
- 同じシーンで追跡ポーズ設定が異なるヘッドを切り替えるにはどうすればよいですか?
- 同じシーンで 6DoF と 3DoF の間で切り替えるにはどうすればよいですか?
- イベントの受信やシステムオーバーレイへのクリックができないのはなぜですか?
- ランタイムにコントローラーオブジェクトを取得するにはどうすればいいですか?
- コントローラーポインターを表示または非表示にするにはどうすればよいですか?
- コントローラーモデルオブジェクトをルートからエミッターに変更するにはどうすればよいですか?
- コントローラーがイベントを送信したかどうかを確認するにはどうすればいいですか?
- 回転のみの環境でコントローラーの位置を設定するにはどうすればよいですか?
- シーンで1つのコントローラーのみを表示するにはどうすればよいですか?
- 床から頭部までの距離を知るにはどうすればいいですか?
-
-
VIVE SRWorks
-
VIVE アイ・フェイシャルトラッキング
- VIVE アイ・フェイシャルトラッキング SDK とランタイムはどこでダウンロードできますか?
- アイトラッキングを調整するにはどうすればよいですか?
- VIVE アイ・フェイシャルトラッキングにはどのドライバーが必要になりますか?
- VIVE アイ・フェイシャルトラッキングランタイムを更新するには?
- VIVE Pro Eye のファームウェアを更新するにはどうすればよいですか?
- アプリを起動した時に、Windows に変更を許可するメッセージが表示されるのはなぜですか?
- アイカメラバージョンに「N/A」と表示されます。問題ありますか?
- 他のアイトラッキング上の問題が発生した場合はどうすればいいですか?
- アイキャリブレーションの初期化と OpenCL でエラーが発生しました。どうすればいいですか?
- VIVEワイヤレスアダプターを使用している場合、アイトラッキングは動作しますか?
- 視覚障害がある場合、キャブリエーションデータはどうなりますか?
- トラッキング可能な FOV とはトラッキング精度は?
-
VIVE ハンドトラッキング
-
VIVE 3DSP Audio
-
VIVEPORT
-
VIVE Businessストリーミング
-
フェイストラッキング
-
ハンドトラッキング
-
同じシーンで 6DoF と 3DoF の間で切り替えるにはどうすればよいですか?
6DoF デバイスを持っており、6DoF モードで実行している場合は、コンテンツを 6DoF と 3DoF の間で切り替えることができると想定できます。
コンテンツで 3DoF と 6DoF を切り替える必要がある場合は、この点に留意してください。
ヘッドセットとコントローラー
3DoF の場合、固定変換のためにコントローラーは通常目の前にあります。固定変換は、コントローラーとコントローラーを使用するユーザーの間の距離を維持します。この距離は、コントローラーを動かしても変化しない場合があります。しかしながら 6DoF の場合は、固定変換を外す必要があります。外さなかった場合、コントローラーとコントローラーを使用するユーザーの間に常に隔たりが発生することになります。
6DoF では、コントローラーは通常、ヘッドセットと同じ場所に配置されます。この場所が位置センサーの原点となります
Vector3(0, 0, 0). 3DoF に切り替えると、ヘッドセットとコントローラーが常に原点に固定されます。
VR の使用中に、ヘッドセットやコントローラーの GameObject を操作していない場合、コントローラーのモデルが頭から出現し、頭が床にあるのを見ることになるでしょう。このため、コントローラーと床の間の距離を保つためにも、固定変換はやはり必要になります。
ポーズトラッカー
WaveVR_PoseTracker で、3DoF モードのときに trackPosition を false に設定します。このフラグは、GameObject の変換位置は更新しません。更新する場合は、スクリプトで実行します。
controllerGameObject.GetComponent<WaveVR_PoseTracker>().trackPosition = false;
trackPosition を true に設定して 6DoF モードに切り替えます。
レンダリング
レンダリングは、ポーズを取得する際に、オリジンタイプをシステム全フレームに設定します。オリジンタイプは、ポーズの座標 (0,0,0) の表示方法を決定します。
ヒント: オリジンタイプはランタイムに変更できます。
3DoF の場合じゃ、WaveVR の render.origin を WVR_PoseOriginModel.WVR_PoseOriginModel_OriginOnHead_3DoF に設定します。詳細は、SDK API の説明をご覧ください。
var render = WaveVR_Render.Instance; render.origin = WVR_PoseOriginModel.WVR_PoseOriginModel_OriginOnHead_3DoF;
目から頭への変換
目から頭への変換は、目の空間座標を頭の空間座標に変更します。
例えば左目が、目の前にあるリンゴを位置 (0, 0, 1) として見ている場合、この世界の実際のリンゴの位置は次のようになります:
HeadPose * EyeToHeadTransform * (0,0,1)
EyeToHeadTransform が次のとおりであり:
| 1 0 0 -0.03 | | 0 1 0 0 | | 0 0 1 0 | | 0 0 0 1 |
ヘッドセットの変換が次のとおりである場合:
| 1 0 0 0 | | 0 1 0 1.8 | | 0 0 1 0 | | 0 0 0 1 |
目の変換 (-0.03, 0, 0) を、頭の空間から取得できます。リンゴは:
- 頭の空間では (-0.03, 0, 1)
- 世界空間では (-0.03, 1.8, 1)
リンゴの位置は、逆変換することで、世界空間と目の空間からも知ることができます。
EyeToHeadTransform^-1 * HeadPose^-1 * (-0.03, 1.8, 1)
6DoF と 3DoF で EyeToHeadTransform の値が異なる可能性があります。
6DoF の左目 | 1 0 0 -0.03 | | 0 1 0 0.05 | | 0 0 1 0.05 | | 0 0 0 1 | 3DoF の左目 | 1 0 0 -0.03 | | 0 1 0 0 | | 0 0 1 -0.15 | | 0 0 0 1 |
6DoF の変換値はヘッドセットに基づいて変わります。3DoF の場合、変換値は頭の回転中心に基づいており、ユーザー体験を向上させるため、z は通常 -0.15 になります。
参考になりましたか?
はい
いいえ
送信
ありがとうございました!フィードバックをいただければ、お役立ち情報の提供を改善してまいります。