VR Follow HUD - mimyquality/FukuroUdon GitHub Wiki
概要
VR において、視界にピッタリ張り付く HUD(Head Up Display、いわゆるオーバーレイ表示)は VR 酔いに繋がると言われています。
このギミックは、VR 酔い対策として、HUD をビューポイントの移動に遅延して追従させる UDON ギミックです。
パラメーターで位置と回転を別々に設定でき、遅延させずに同期させる事も可能です。
また、追従箇所を指定する事ができるので、HUD 以外の用途にも応用できます。
昨今の HMD は焦点距離がビューポイントから前方に2m程度で設定してあるそうです。
本ギミックに添付のサンプルは、ビューポイントから2m前方に Render Mode が World Space のuGUIキャンバスが表示されるよう調整してあります。
なお、そのままだと2m以内にあるオブジェクトにUIが隠れてしまうので、必要な人は別途対策してください。
参考リンク :
TextMeshPro を常に最前面に表示させる
UIがオブジェクトに隠れてしまう時の対処法
導入手順
パッケージ内容
- VR Fllow HUD ギミック
使い方
Packages > Fukuro Udon > Samples > VRFollowHUD にサンプルプレハブが入っています。
プレハブを Hierarchy に置くだけで、 VR Follow HUD
がアタッチさているオブジェクトがローカルプレイヤーに追従するようになっています。
追従させたいオブジェクトにこのコンポーネントを「Add Component」から直接アタッチしてもOKです。
[!IMPORTANT] 表示したい内容は各自で用意してください。
パラメーターについて
- Tracking Point : 追従箇所を指定します。Head/Right Hand/Left Hand/Origin(ルームスケールの原点)/AvatarRoot から選択できます
- Enable Position : 有効にすると、位置がTracking Pointに向かって追従するようになります。
- Enable Rotation : 有効にすると、向きがTracking Pointに向かって追従するようになります。
- VR Only : 有効にすると、デスクトップモードの時のみ位置と回転が遅延せずに追従します
- Sync Potision : 有効にすると、位置が遅延せずに追従します
- Follow Move Speed : 追いつく移動速度
- Distance Range : ここで設定した値以上離れなくなります(meter)
- Move Threshold : この値以上離れるまで追従しなくなります(meter)
- Sync Rotation : 有効にすると、回転が遅延せずに同期します
- Follow Rotate Speed : 追いつく回転速度
- Angle Range : ここで設定した値以上に角度が開いていると、回転速度が加速します
- Rotate Threshold : この値以上角度が開くまで追従しなくなります
- Lock Roll : 有効にすると、Z軸回転のみ遅延せずに同期します
- Lock Pitch : 有効にすると、X軸回転のみ遅延せずに同期します
- Lock Yaw : 有効にすると、Y軸回転のみ遅延せずに同期します
[!NOTE] このギミック自体はパラメーターの Tracking Point で指定した部位に追従するだけのギミックです。そのため、色々応用が利くと思います。また、一部のパラメーターは他の Udon Graph、U#から操作可能です。
遅延追従が不要の場合は、余分なパラメーターや処理を省いた、LocalPlayer Tracking Tracker
コンポーネントを使えます。
サンプル
以下のワールドにサンプルを設置しています。
https://vrchat.com/home/world/wrld_4b7ed36e-c436-409f-9f87-8a6f4c80e79b