UnityとMeta Quest 2で身長に応じたアバターサイズ調整を実現する方法

C言語関連

Meta Quest 2を使ったUnityのVR開発で、XR OriginやRigを用いてアバターと現実の動きを連動させる際、ユーザーの身長に合わせてアバターのサイズを自動調整する方法について解説します。この記事では、Main Cameraの座標だけでなく、ユーザー身長を取得してアバターに反映させる方法を具体例とともに紹介します。

VRでの身長測定の基本

VRデバイスは通常、ユーザーの頭部位置をトラッキングします。Meta Quest 2の場合、ヘッドセットのY座標(高さ)を取得することでユーザーの目線の高さを知ることができます。

この値を使えば、ユーザーの身長に合わせてアバター全体のスケールを調整することが可能です。ただし、座標はゲーム開始時からの相対値になるため、初期位置を基準にする必要があります。

初期身長を取得する手順

まず、ゲーム開始時にMain CameraのY座標を取得して初期の頭の高さとします。この値をユーザーの身長として基準値に設定します。

例として、Awake()やStart()関数でCamera.main.transform.position.yを保存し、後でアバターのスケール計算に使用します。

アバターのスケール調整方法

取得した初期身長とアバターのデフォルト身長を比較して、スケール比を算出します。例えば、ユーザーの身長がアバターの標準身長より高ければ、アバターのY軸スケールを比例的に大きくします。

具体例:
float scale = userHeight / defaultAvatarHeight;
avatar.transform.localScale = new Vector3(scale, scale, scale);

注意点と補正

身長に合わせる際、アバターの各パーツの比率が崩れないよう注意します。また、足元や手元の位置もVR空間で正しく反映されるよう、XR RigのOffsetを調整する必要があります。

必要に応じて、初期位置の床の高さをゼロに補正することで、アバターが浮いたり沈んだりしないようにできます。

まとめ

Meta Quest 2を用いたUnityのVR開発では、Main CameraのY座標を初期身長として取得し、アバターのスケールを比例調整することで、現実の身長に合わせたアバターを実現できます。初期位置補正や各パーツの比率調整を行うことで、自然で没入感のあるVR体験を提供可能です。詳細なアバター開発手順はこちらの記事も参考にしてください。

コメント

タイトルとURLをコピーしました