Controllerスクリプトを張り付けたところ妙な挙動を見せたのでメモ。Controllerを使えば簡単にできそうじゃん!と試したところ、つまずく点が多々あったのでその記録です。Controllerスクリプトを貼ったアバターの視点が上向きにずれてしまう問題が発生しました。Inspectorを見ると、CameraRigのY座標に妙な値が入っていました。OVRPlayerController.csの中身を調べると、CameraRig.transform.localPositionの値に固定のオフセットが掛かっている箇所がありました(UpdateController()の処理)。trueのときに、Controllerの座標に合わせてCameraRigのY座標にオフセットをかける処理のようです。useProfileDataをfalseにすることでこの処理を無効にできます。Dataチェックボックスを外すことで、アバターの視点位置のズレは解消しました。無効にしたところ、今度は視点がアバターの上空に飛ばされてしまいました。本体のTransformのPositionを見ると、本来アバターが存在するはずの座標からY軸方向とZ軸方向に定数値のオフセットが掛かっていることが分かりました。ControllerのCenterの座標に入れてあげることで視点の位置を調整することができました。Controllerの仕様を調べてみようと思います。GrabberのColliderがズレるカメラは正常に設定できましたが、次はLocalAvatarWithGrabの子オブジェクトであるAvatarGrabberLeft(Right)のColliderがずれてしまいました。確認したところUpdateTransform()の処理(HmdRotatesYがtrueの時に実行される個所)が原因であることが分かりました。Yのチェックボックスを外すことで無効化できます。無効にするとGrabberのColliderの位置がしっかり手の動きに追従するようになりました。備考AvatarGrabberの子であるGrabVolumeが把持範囲のColliderを持っているんですね。Transformの値を変えることでColliderの位置や角度を自由に決めることができました。Authorsumisameすみさめといいます。Policy当サイトのプライバシーポリシーについてはこちらのページをご確認ください。