Unity+UnrealEngine4+Blog.

UnityやUnrealEngine4とかについて学習したことを書いてます

Unity ルームスケール時のリセンター機能

UE4のリセンターはこちら

nabesi777.hatenablog.com

 

 

今日はVRコンテンツでたまに使うリセンター機能の記事です。

ルームスケールでのコンテンツは基本リセンターは使いませんが、やむを得なくリセンター機能が必要な場合に使用します。

 

わかりやすいように空っぽのシーンでいちから作っていきます。

 

まずは空のゲームオブジェクトを作成

f:id:nabesi777:20191128194848p:plain

名前をCameraRigに変更

f:id:nabesi777:20191128194907p:plain

 

ポジションを0へ

f:id:nabesi777:20191128194925p:plain

 

CameraをCreateしてCameraRigの子要素へ入れる
PositionやRotationは0にしておく

f:id:nabesi777:20191128194950p:plain

 

正面がわかるようにCubeを設置

Z軸を3に変更

f:id:nabesi777:20191128195051p:plain

 

HMDで見れるようにProjectSettingsのVirtualRealitySpportedにチェック

f:id:nabesi777:20191128195315p:plain

 

スクリプト作成していきます。

f:id:nabesi777:20191128195407p:plain

 

下の様にコードを書いていきます。(コピーできないスクショで申し訳ないです)

気を付ける点はCameraRecenter()の中身はRotation→Positionの順に書くことです。

 

f:id:nabesi777:20191128200120p:plain

 

最後にCameraRigへスクリプトをアタッチして、それぞれ参照を埋めたら完成です。

プレイ中にAキーを押すと正面にCubeが表示されるようになるはずです。

f:id:nabesi777:20191128200149p:plain

 

 

今回は空のゲームオブジェクトから作成しましたが、カメラの親にゲームオブジェクトがあればいいので、SteamのCameraRigとかでも問題なく使えます。

 

今回は0,0,0へのリセンターですが、別の座標へリセンターしたい場合は上のスクリプト内での0の所へその座標を入れれば大丈夫です。(だと思います。)