「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
