「Unity/Cinemachine/複数ターゲット」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→スクリプトでaimの値を変更) |
(→スクリプトでaimの値を変更) |
||
行39: | 行39: | ||
// Composerの場合 | // Composerの場合 | ||
− | GetCinemachineComponent(CinemachineCore.Stage.Aim).GetComponent<CinemachineComposer>().m_MaximumFOV = 179; | + | cinemachineVirtualCamera.GetCinemachineComponent(CinemachineCore.Stage.Aim).GetComponent<CinemachineComposer>().m_MaximumFOV = 179; |
</pre> | </pre> | ||
参考:https://nazenavi.com/2021/06/10/unitycinemachinevirtualcamerapov/ | 参考:https://nazenavi.com/2021/06/10/unitycinemachinevirtualcamerapov/ | ||
公式:https://docs.unity3d.com/Packages/com.unity.cinemachine@2.1/manual/index.html | 公式: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