我找不到如何根据英雄的速度和身高不断地动态地在3台摄像机(我称它们为中,上,下)之间动态融合的方法。
当跟随英雄时,中间的vCam是主要/基础的,我想根据英雄的高度按比例地混合上下vCam。
播放器/英雄可以在不同高度之间快速移动,因此应轻松地对混合进行加权。这是Cinemachine混合的自然组成部分。和工程。但是,就我目前对Cinemachine混合的了解而言,这就像是一个开关,而不是基于高度的恒定动态混合。
基本上我想获取当前的实时虚拟摄像机并将其存储在 CinemachineVirtualCamera 变量中。
public CinemachineBrain cine;
public CinemachineVirtualCamera VirtualCamera;
void Start()
{
VirtualCamera = cine.ActiveVirtualCamera;
}
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误:“无法将 Cinemachine.ICinemachineCamera 类型转换为 Cinemachine.CinemachineVirtualCamera”
我已经尝试过强制转换,但它不起作用,变量仍然为空。
我也尝试过:
VirtualCamera = cine.ActiveVirtualCamera.VirtualCameraGameObject.GetComponent<CinemachineVirtualCamera>();
Run Code Online (Sandbox Code Playgroud)
有人能帮助我吗?
我正在 Unity 中开展一个小型实验项目,我想锁定一个敌人。我的相机的行为类似于《黑暗之魂》相机,使用 Cinemachine Free Look 相机。现在我希望能够单击一个按钮,然后锁定敌人,类似于本视频中显示的《黑暗之魂》相机的工作原理。我还制作了一张图片来解释我正在寻找的内容。我希望玩家和敌人在锁定时都位于屏幕的垂直中心,但我希望摄像机跟随玩家,同时基本上围绕敌人旋转。
我尝试将玩家和敌人都添加到目标组中,但它的行为并不符合我想要的方式。当然,它会同时观察玩家和敌人,但不会像我试图在图像和视频中展示的那样使它们保持对齐。