ジャンプするとカメラがY軸方向に動いてしまうのを抑制したい
フォーラム検索
似たような質問があった、助かるー
forum.unity.com
CinemachineのComposerという機能らしい
DeadZoneとか使うらしい
light11.hatenadiary.com
light11.hatenadiary.com
MinimalLevelのカメラも参考になりそう
空のオブジェクトでCameraRigを用意
いろいろデータをぶら下げたいので
今まで使用していたRegular Cameraを移動
CameraRigの子供にする
空のオブジェクトでCinemachineVirtualCameraを用意
ここに追加のカメラ設定をMinimalLevelのカメラを参考に追加する
ちなみに、Cinemachine ConfinerはCinemachineVirtualCameraコンポーネントのAdd Extensionから設定できる
というかこの設定が必要かどうかはわからないw
Regular Cameraのコンポーネントを修正
今まで使っていたCamera Controllerを無効にして
CinemachineBrainを追加
CinemachineVirtualCameraのいろいろ設定
Lens Ortho Size
playerをどれぐらいのサイズで映したいかを設定
今回は3を設定
Cinemachine Camera Controllerの設定
とりあえずInstant Reposition Cameraにチェック入れる
Cinemachine Confinernの設定
とりあえず、こんな感じ
再生すると、Bounding VolumeにLevelManagerが入るはず
CinemachineVirtualCameraの設定
まずはBodyをFramingTransposerに変更する
中身はこんな感じ
目指したいカメラ挙動
一定以上の高さまでジャンプしたらカメラが追従してきて欲しい
こんな感じで
youtu.be
CinemachineVirtualCameraの仕組みは、
画面中央の横のラインをplayerが超えるとカメラが追従するっぽい
で、この動きを実現するために必要な設定は
カメラの位置とLabelBoundsの位置っぽい
今回は下図のように設定
LabelBounds(黄色のBOX)の下辺に、CinemachineVirtualCamera(白色のBOX)が接触する様にする
Cinemachine Confinernの設定がここで生きてくる
CinemachineVirtualCameraはLabelBoundsの中で動くようになる
その機能によって上記のカメラが実現するっぽい