Cinemachine Virtual Camera Switch target at runtime in virtual camera, its causing jerk? - Unity Forumに寄せられた回答によれば、そういう仕様になっているとのことです。
なめらかに遷移させるには、各対象ごとにそれぞれバーチャルカメラを作って、注目対象を変える際にはアクティブなカメラを切り替える(または優先度を変更する)ことになりそうでした。
LookAt
差し替えだと、確かにおっしゃる通り急に映像が切り替わってしまいますが...
アクティブなバーチャルカメラを切り替えるやり方だと、なめらかに遷移しました。
ご参考までに、図中のボタンには下記のようなスクリプトを付けており、またメインカメラの「Cinemachine Brain」の「Default Blend」は0.5秒にしています。
C#
1using System.Linq;
2using Cinemachine;
3using UnityEngine;
4using UnityEngine.UI;
5
6[RequireComponent(typeof(Button))]
7public class LookTargetSelector : MonoBehaviour
8{
9 public Transform Target;
10 private CinemachineVirtualCamera[] virtualCameras;
11
12 private void Awake()
13 {
14 this.virtualCameras = FindObjectsOfType<CinemachineVirtualCamera>();
15 var button = this.GetComponent<Button>();
16 var text = button.transform.Find("Text").GetComponent<Text>();
17 button.onClick.AddListener(this.SwitchTarget);
18 text.text = this.Target.name.Split('_').Last();
19 }
20
21 private void SwitchTarget()
22 {
23 Debug.Log($"Target:{this.Target.name}");
24 // あらかじめ、LookAt部位が異なる複数のCinemachineVirtualCameraを作っておき
25 // 注目部位用のカメラだけをアクティブに、他は非アクティブにする
26 foreach (var virtualCamera in this.virtualCameras)
27 {
28 virtualCamera.enabled = virtualCamera.LookAt == this.Target;
29 }
30 }
31}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/14 07:23