FOVE · Rift · Unity · VRソフト

Channel Playerのカメラトラッキングオフ実装

Riftの場合には、XRDevice.DisableAutoXRCameraTracking(target, true);でカメラのトラッキングは止められるが、FOVEの場合には利かないので、Fove Plug inに手を入れる必要がある。

以下に示すFoveInterfaceBase.csのコードの中で、positionやorientationが有効な時に、カメラのlocalPositionやlocalRotationに、HMDの現在の位置や角度の値である_sHeadPositionや_sHeadRotaionを代入しているので、このコード自体を無効にすれば、カメラのトラッキングを止めることが可能。同時に任意の値を入れれば、移動や回転も出来るのだが、これをRift側のカメラに実施しても、残念ながら思ったようには動かない。まだまだ調査が必要である。もっともカメラの固定や移動が必要なのは、VR動画でなく、2Dの動画なので、そちら側だけの機能として、先に実装するのはありかなと思う。

            if (_isAuthoritative)
            {
                // position head
                if (position)
                {
                    Vector3 posiTemp = _sHeadPosition * worldScale;
                    if (useCustomPositionScaling)
                    {
                        posiTemp.x *= positionScales.x;
                        posiTemp.y *= positionScales.y;
                        posiTemp.z *= positionScales.z;
                    }

                    gameObject.transform.localPosition = posiTemp;
                }

                // rotate head
                if (orientation)
                {
                    gameObject.transform.localRotation = _sHeadRotation;
                }
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中