美文网首页
Unity学习笔记 Cinemachine沿着轨道自动匀速移动

Unity学习笔记 Cinemachine沿着轨道自动匀速移动

作者: Cheney_ | 来源:发表于2025-02-05 17:12 被阅读0次

前言

通过Cinemachine提供的组件可以让我们的摄像机沿着自定义的轨道来匀速运动,完成这个功能需要三个必要部分:

摄像机 (Virtual Camera)

轨道路径 (Dolly Track)

轨道小车 (Dolly Cart)

该功能可由两种方式实现,不过都是大同小异。

方法一是三个部分都独立开,将虚拟相机的Body选择Tracked Dolly并使用AutoDolly功能,该方法是让摄像机根据绑定的Follow对象(也就是轨道小车)做自动沿轨道运动。

方法二是将虚拟相机放在轨道小车下,虚拟相机Body选择Do Nothing即可跟随着轨道运动。

方法一、使用AutoDolly

第一步:创建轨道路径(Dolly Track)

创建空物体,添加CinemachineSmoothPath或者CinemachinePath组件绘制路线。

CinemachineSmoothPath的话,路径弯曲会被自动平滑

CinemachinePath的话,路径的曲度可以通过弯曲的曲线自己调整

这里我使用CinemachineSmoothPath,然后在Scene自由编辑每个路径点(waypoint)的位置和旋转角度。

这里具体的参数含义就不过多介绍了,只说明一下用到的:

Resolution:代表路径的精细度,数值越大,路径点之间的分段就越多

Looped:路径是否头尾相连

Waypoints:自定义的路径点,其中Roll代表翻转角度

第二步:创建轨道小车(Dolly Cart)

创建空物体,添加CinemachineDollyCart组件,作用就是让这个物体作为轨道的小车随着轨道进行运动

这里使用到的参数设置如下:

Path:选择对应的轨道路径

Speed:轨道小车运动的速度

第三步:创建虚拟摄像机(Virtual Camera)

创建一个CinemachineVirtualCamera,对应的设置如下

Follow:代表相机要跟随的目标,选择刚刚创建的轨道小车(Dolly Cart)

Body:代表相机运动的算法,选择Tracked Dolly,进行跟踪轨道运动

Path:代表要跟踪的路径,选择刚刚创建的Dolly Track

Camera Up:代表运动时摄像机的朝上坐标,根据自己要的效果选择,这里我选择Path

Default -> 不修改VirtualCamera的up的值,使用Cinemachine Brain中World Up Override属性代替。

Path -> 使用当前位置Path的up向量

Path No Roll -> 使用当前位置Path的up向量,但是不受Roll影响

Follow Target -> 使用Follow目标的tramsform.up

Follow Target No Roll -> 使用Follow目标的tramsform.up,但是不受Roll影响

Auto Dolly:控制相机是否自动沿着轨道运动

Enabled:开启该功能,若不勾选,只会看到Dolly Cart在移动,但是摄像机不会跟着动,切记一定要勾选

这里提醒一下,要想Cinemachine的相机起作用,确保你的主相机上面绑定了CinemachineBrain这个组件

方法二、绑定虚拟相机在轨道小车上

第一步:创建轨道路径(Dolly Track)

同方法一

第二步:创建轨道小车(Dolly Cart)

同方法一

第三步:创建虚拟摄像机(Virtual Camera)

创建一个CinemachineVirtualCamera,对应的设置如下

Follow:不需要绑定

Body:选择Donothing

将该相机放在轨道小车(Dolly Cart)下即可

性能区别

理论上来说应该方法二性能上会比方法一好并且稳定一点,因为相机本身不用再去做AutoDolly里面的东西,但是经过测试(没有做很严谨的测试,也不是暴力测试),发现两者之间的性能都差不多,可能是因为用的设备能力有限(还是在HDRP的环境下)。

可能随着环境和程序的复杂度增加,他们之间的性能表现情况对比才能放大。

相关文章

网友评论

      本文标题:Unity学习笔记 Cinemachine沿着轨道自动匀速移动

      本文链接:https://www.haomeiwen.com/subject/hvjgujtx.html