facebook twitter hatena line email

Unity/Cinemachine/基本

提供: 初心者エンジニアの簡易メモ
2024年7月30日 (火) 05:36時点におけるAdmin (トーク | 投稿記録)による版 (VCamごとに切り替え方法を指定する)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

基本的な使い方

  1. MainCameraのInspectorから、AddCompornentして、CinemachineBrainを追加する
  2. 空のGameObjectを作って、Zを-10にして、Inspectorから、AddCompornentして、ChinemachineVirtualCameraを追加する(もしくは、Unityメインメニュー/Component/Cinemachine/CreateVirtualCamera)
  3. 追っかける3Dオブジェクトを作って(ここではCube)、ChinemachineVirtualCameraのFollowとLookAtへ、それを追加する
  4. ChinemachineVirtualCameraのAimをComposerにする

こうすれば、3Dオブジェクトにカメラを向けてくれるようになる。

参考:https://ekulabo.com/cinemachine-overview#outline__5

参考:https://light11.hatenadiary.com/entry/2019/07/23/210040

カメラを固定する

  1. MainCameraのInspectorから、AddCompornentして、CinemachineBrainを追加する
  2. 空のGameObjectを作って、Zを-10、XとYを0にして、Inspectorから、AddCompornentして、ChinemachineVirtualCameraを追加する
  3. 追っかける3Dオブジェクトを作って(ここではCube)、ChinemachineVirtualCameraのLookAtへ、それを追加する(Followはnull)
  4. ChinemachineVirtualCameraのAimをComposerにする

こうすれば、カメラを固定したまま、3Dオブジェクトにカメラを向けてくれるようになる。

カメラで追跡

  • ChinemachineVirtualCameraのBodyを、transposerにすると、3Dオブジェクトを、カメラが、追っかけてくるようになる。

仮想カメラを複数用意してカメラ切り替え

  • ChinemachineVirtualCameraのオブジェクトを複数用意
  • ChinemachineVirtualCameraのPriorityに、それぞれ別の値を入れる
  • 一方の、ChinemachineVirtualCameraを非アクティブにすると、じんわり、切り替わる。

Priorityの大きいほうが、稼働カメラとなる。

CinemachineVirtualCameraの別の追加方法

Unityメインメニュー/GameObject/Cinemachine/VirtualCameraを追加すると"CM vcam1"のオブジェクトがヒエラルキーに追加される

ズーム

値が小さいと近い、大きいと遠い

cinemachineVirtualCamera.m_Lens.FieldOfView = 80f;

キャラクタ追跡時のカメラ移動スピード

CinemachineVirtualCameraのAimの(HorizontalDamping, VerticalDamping)を0にすれば、即移動する

カメラ切替時のスピード

CinemachineBrainのDefaultBlendのスピードを2から1とかにすると速くなる。

カメラ切替時をカットインする

CinemachineBrainのDefaultBlendをEaseInOutからCutに変える

公式:https://docs.unity3d.com/ja/Packages/com.unity.cinemachine@2.6/manual/CinemachineBrainProperties.html

VCamごとに切り替え方法を指定する

  1. CinemachineBrainのCustomBlendの"CreateAsset"ボタンを押し、CustomBlendファイルを作成する
  2. FromとToに個別のVCamをドラッグ&ドロップで指定し、Styleに、切替方法(CutやEaseInoutなど)を指定する。

公式:https://docs.unity3d.com/ja/Packages/com.unity.cinemachine@2.6/manual/CinemachineBlending.html

画面の上下にターゲット範囲を移動

画面中央から上側へ

AimのScreenYを0.5から0.4へ

画面中央から下側へ

AimのScreenYを0.5から0.6へ

DeadZoneWidthを0だと範囲がわからないので、DeadZoneWidthを0から増やすと、範囲を確認できる

ロックオンのような動作

  • "Look At"に敵を入れる
  • "Follow"にプレイヤーを入れる

参考:https://qiita.com/jusmiso/items/34fa5a97cc440674b801

左右のカメラの振りスピードを遅く

AimのHorizonalDampingの値を、初期値の0.5から値を上げる。コードだと以下の通り。

cinemachineVirtualCamera.GetCinemachineComponent(CinemachineCore.Stage.Aim).GetComponent<CinemachineComposer>().m_HorizontalDamping = 20;

参考:https://docs.unity3d.com/ja/Packages/com.unity.cinemachine@2.6/manual/CinemachineAimComposer.html