Cinemachine
Cinemachineというカメラワークをいい感じにできるUnity公式アセット
存在は知ってたけど、映像作品作る用だと思って触ってなかった。
でもキャラクターのFPSやTPSに使えるらしいので触ってみる!
セットアップ
こちらの記事を参考にセットアップしました
PackageManagerで入れる
カメラにBrainをつける
Chinemachine>CreateVirtualCameraで仮想カメラを作る。
このコンポーネントがついた空のオブジェクトができる
仮想カメラで設定した値(位置)がMainCameraに送られるので、MainCameraは動かしても意味がない
FPS・TPS設定
こちらを参考に設定する
仮想カメラのFollowをキャラクターにする。LookAtの対象はなし。
BodyはTransposer。FollowOffsetはキャラのいい感じの場所に設定。
Dampongを全部0にするとカメラが遅れてついてくることがなくなる。
Aimは動画だとPovにしていたけど、あれはマウスの位置に追従してカメラが回転する。
既にドラッグで角度を回転させるようにしていたのでSame As Follow Targetにしたらキャラクターの角度に合わせてついてくるようになった
TPSにするにはFollowOffsetのZを後ろにしたらいい
スクリプトで切り替え
スクリプトからのTPS,FPSの切り替えはこんな感じでFollowOffset.z の値を変えればいい
FollowTargetをスクリプトから設定する
読み込んだVRMをFollowしたい。スクリプトから設定できるのかな?
できた
using Cinemachine;
~~
[SerializeField] CinemachineVirtualCamera _VCam;
_VCam.Follow = playerObject.transform;
回転だけスクリプトから制御したい
AimをSame As Follow Targetにしたらキャラクターの回転に合わせてカメラも回転するけど、上下方向に向かない;;
キャラは上下には回転しないからね
上下方向のカメラ移動だけスクリプトからやりたい
AimをNothingにしてVirtualCameraの回転をスクリプトで制御したらできる!