VR Follow HUD - mimyquality/FukuroUdon GitHub Wiki

概要

VR において、視界にピッタリ張り付く HUD(Head Up Display、いわゆるオーバーレイ表示)は VR 酔いに繋がると言われています。
このギミックは、VR 酔い対策として、HUD をビューポイントの移動に遅延して追従させる UDON ギミックです。
パラメーターで位置と回転を別々に設定でき、遅延させずに同期させる事も可能です。 また、追従箇所を指定する事ができるので、HUD 以外の用途にも応用できます。

昨今の HMD は焦点距離がビューポイントから前方に2m程度で設定してあるそうです。
本ギミックに添付のサンプルは、ビューポイントから2m前方に Render ModeWorld Space のuGUIキャンバスが表示されるよう調整してあります。 なお、そのままだと2m以内にあるオブジェクトにUIが隠れてしまうので、必要な人は別途対策してください。
参考リンク :
TextMeshPro を常に最前面に表示させる
UIがオブジェクトに隠れてしまう時の対処法

導入手順

Installation

パッケージ内容

  • 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