-
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ストリーミング
-
フェイストラッキング
-
ハンドトラッキング
-
同じシーンで追跡ポーズ設定が異なるヘッドを切り替えるにはどうすればよいですか?
追跡ポーズ設定が異なるヘッドを2つ以上作成した場合、1つのヘッドをアクティブにして他のヘッドを非アクティブにすることなくヘッドを切り替えると、ヘッドは誤ったポーズデータを使用します。
この問題を回避するには、以下の手順に従ってください。
同じシーンにあるヘッドを見つける方法には、以下の2つの方法があります。これらの方法では、トラッキング元のスタイルである TrackingUniverseSeated と TrackingUniverseStanding を利用して2つのヘッドを切り替えます。ChooseDoF のパブリックフラグである HowToFindHead を使用して、見つかったヘッドのうちのどれを使用するかを選択します。
public class ChooseDoF :MonoBehaviour { public ETrackingUniverseOrigin trackingSpace = ETrackingUniverseOrigin.TrackingUniverseSeated; public bool HowToFindHead = false; void OnEnable() { if (HowToFindHead) method1(); else method2(); } // For method 1, it makes use of the Transform function to find the head you would like to take. void method1() { #if UNITY_5_5_OR_NEWER // Global find GameObject body1 = transform.root.Find("Body1").gameObject; GameObject body2 = transform.root.Find("Body2").gameObject; #else // Children find GameObject body1 = transform.Find("Body1").gameObject; GameObject body2 = transform.FindChild("Body2").gameObject; #endif if (trackingSpace == ETrackingUniverseOrigin.TrackingUniverseSeated) body1.SetActive(true); else body2.SetActive(true); } // For method 2, it traverses the component list to find the head you would like to take. void method2() { // Children find var list = GetComponentsInChildren<WaveVR_Render>(true); foreach (WaveVR_Render render in list) { var obj = render.transform.parent.gameObject; if (trackingSpace == ETrackingUniverseOrigin.TrackingUniverseSeated) { if (obj.name == "Body1") { obj.SetActive(true); break; } } else { if (obj.name == "Body2") { obj.SetActive(true); break; } } } } }
-
実行前のヘッドはすべて、非アクティブになっています。
-
GameObject 内で、以下のいずれかを実行します。
- 追跡スペースで、Tracking Universe Seated を選択し、Body1 Head をアクティブにします。
- 追跡スペースで、Tracking Universe Standing を選択して、Body2 Head をアクティブにします。
- 追跡スペースで、Tracking Universe Seated を選択し、Body1 Head をアクティブにします。
参考になりましたか?
はい
いいえ
送信
ありがとうございました!フィードバックをいただければ、お役立ち情報の提供を改善してまいります。