facebook twitter hatena line email

Unity/Cinemachine/複数ターゲット

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

複数ターゲットを同時にカメラ内に

  • 新しいGameObjectを作り、"TargetGroup"に名前変更し、CinemachineTargetGroupをAddComponentし、3Dのターゲットを追加
  • CinemachineVirtualCameraのLookAtに、TargetGroupオブジェクトを、追加する
  • CinemachineVirtualCameraのFollowはnoneにしておく。

参考:https://light11.hatenadiary.com/entry/2019/07/22/204953

複数ターゲットの変更をscriptで

CinemachineTargetGroup targetGroup;
targetGroup.m_Targets = new CinemachineTargetGroup.Target[]
        {
            new CinemachineTargetGroup.Target
            {
                target = playControllView.enemyGroup.transform.Find("Enemy" + enemyNum),
                weight = 1,
                radius = 1,
            },
        };

参考:https://nekojara.city/unity-cinemachine-group-composer

動的に増やす場合=

targetGroup.AddMember(targetObj.transform, 1, 1);

参考:https://note.com/piku_model/n/n9d7b40db8018

2つが離れすぎるで画面範囲に入らないとき

  1. AimをComposerからGroupComposerに
  2. AImのMaximamDistanceを大きく

スクリプトでaimの値を変更

MaximamDistanceの値を変更

// GroupComposerの場合
cinemachineVirtualCamera.GetCinemachineComponent(CinemachineCore.Stage.Aim).GetComponent<CinemachineGroupComposer>().m_MaximumFOV = 179;

// Composerの場合
cinemachineVirtualCamera.GetCinemachineComponent(CinemachineCore.Stage.Aim).GetComponent<CinemachineComposer>().m_MaximumFOV = 179;

参考:https://nazenavi.com/2021/06/10/unitycinemachinevirtualcamerapov/

公式:https://docs.unity3d.com/Packages/com.unity.cinemachine@2.1/manual/index.html