Unityでジャンクゲームを作っているっぽい

会社帰りにGPD PocketにUnity入れてゲーム作ってます

【CEtest2】22_CorgiEngineでカメラ調整その1

ジャンプするとカメラがY軸方向に動いてしまうのを抑制したい

フォーラム検索

似たような質問があった、助かるー
forum.unity.com

CinemachineのComposerという機能らしい

DeadZoneとか使うらしい
light11.hatenadiary.com
light11.hatenadiary.com
MinimalLevelのカメラも参考になりそう

空のオブジェクトでCameraRigを用意

いろいろデータをぶら下げたいので
f:id:mekatamatama:20220405223039p:plain

今まで使用していたRegular Cameraを移動

CameraRigの子供にする
f:id:mekatamatama:20220405223140p:plain

空のオブジェクトでCinemachineVirtualCameraを用意

ここに追加のカメラ設定をMinimalLevelのカメラを参考に追加する
f:id:mekatamatama:20220405223157p:plain
ちなみに、Cinemachine ConfinerはCinemachineVirtualCameraコンポーネントのAdd Extensionから設定できる
というかこの設定が必要かどうかはわからないw

Regular Cameraのコンポーネントを修正

今まで使っていたCamera Controllerを無効にして
CinemachineBrainを追加
f:id:mekatamatama:20220405223431p:plain

CinemachineVirtualCameraのいろいろ設定

Lens Ortho Size

playerをどれぐらいのサイズで映したいかを設定
今回は3を設定
f:id:mekatamatama:20220405223448p:plain

Cinemachine Camera Controllerの設定

とりあえずInstant Reposition Cameraにチェック入れる
f:id:mekatamatama:20220405223414p:plain

Cinemachine Confinernの設定

とりあえず、こんな感じ
再生すると、Bounding VolumeにLevelManagerが入るはず
f:id:mekatamatama:20220405223512p:plain

CinemachineVirtualCameraの設定

まずはBodyをFramingTransposerに変更する
中身はこんな感じ
f:id:mekatamatama:20220405223612p:plain

目指したいカメラ挙動

一定以上の高さまでジャンプしたらカメラが追従してきて欲しい
こんな感じで
youtu.be

CinemachineVirtualCameraの仕組みは、
画面中央の横のラインをplayerが超えるとカメラが追従するっぽい
f:id:mekatamatama:20220405223712p:plain
で、この動きを実現するために必要な設定は
カメラの位置とLabelBoundsの位置っぽい
今回は下図のように設定
f:id:mekatamatama:20220405223728p:plain
LabelBounds(黄色のBOX)の下辺に、CinemachineVirtualCamera(白色のBOX)が接触する様にする
Cinemachine Confinernの設定がここで生きてくる
CinemachineVirtualCameraはLabelBoundsの中で動くようになる
その機能によって上記のカメラが実現するっぽい