「Unity/Cinemachine/複数ターゲット」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→スクリプトでaimの値を変更) |
|||
(同じ利用者による、間の7版が非表示) | |||
行1: | 行1: | ||
==複数ターゲットを同時にカメラ内に== | ==複数ターゲットを同時にカメラ内に== | ||
− | *新しいGameObjectを作り、"TargetGroup" | + | *新しいGameObjectを作り、"TargetGroup"に名前変更し、CinemachineTargetGroupをAddComponentし、3Dのターゲットを追加 |
*CinemachineVirtualCameraのLookAtに、TargetGroupオブジェクトを、追加する | *CinemachineVirtualCameraのLookAtに、TargetGroupオブジェクトを、追加する | ||
*CinemachineVirtualCameraのFollowはnoneにしておく。 | *CinemachineVirtualCameraのFollowはnoneにしておく。 | ||
行21: | 行21: | ||
</pre> | </pre> | ||
参考:https://nekojara.city/unity-cinemachine-group-composer | 参考:https://nekojara.city/unity-cinemachine-group-composer | ||
+ | |||
+ | ==動的に増やす場合=== | ||
+ | <pre> | ||
+ | targetGroup.AddMember(targetObj.transform, 1, 1); | ||
+ | </pre> | ||
+ | 参考:https://note.com/piku_model/n/n9d7b40db8018 | ||
==2つが離れすぎるで画面範囲に入らないとき== | ==2つが離れすぎるで画面範囲に入らないとき== | ||
#AimをComposerからGroupComposerに | #AimをComposerからGroupComposerに | ||
#AImのMaximamDistanceを大きく | #AImのMaximamDistanceを大きく | ||
+ | |||
+ | ===スクリプトでaimの値を変更=== | ||
+ | MaximamDistanceの値を変更 | ||
+ | <pre> | ||
+ | // GroupComposerの場合 | ||
+ | cinemachineVirtualCamera.GetCinemachineComponent(CinemachineCore.Stage.Aim).GetComponent<CinemachineGroupComposer>().m_MaximumFOV = 179; | ||
+ | |||
+ | // Composerの場合 | ||
+ | cinemachineVirtualCamera.GetCinemachineComponent(CinemachineCore.Stage.Aim).GetComponent<CinemachineComposer>().m_MaximumFOV = 179; | ||
+ | </pre> | ||
+ | 参考:https://nazenavi.com/2021/06/10/unitycinemachinevirtualcamerapov/ | ||
+ | |||
+ | 公式:https://docs.unity3d.com/Packages/com.unity.cinemachine@2.1/manual/index.html |
2023年10月7日 (土) 19:25時点における最新版
複数ターゲットを同時にカメラ内に
- 新しい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つが離れすぎるで画面範囲に入らないとき
- AimをComposerからGroupComposerに
- 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