Unity虚拟相机Cinemachine教程[通俗易懂]

2022-09-01 14:10:11 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

准备

在PackageManager中安装Cinemachine包。

1.CinemachineBrain组件

相当于虚拟相机的总管理。

参数介绍: Live Camera:当前显示的相机 Live Blend:过度相机时显示进度 Show Debug Text:在Game视窗里显示当前使用的相机

Show Camera Frustum:显示视锥 Ignore Time Scale:是否受TimeScale影响 World Up Override:自己设置覆盖Y轴防止万向节死锁。 Update Method:Update方法,选择默认的SmartUpdate即可。 Blend Update Method:相机混合时的Update方法。 Default Blend:混合时的曲线,比如线性或者Ease之类,也可以自定义。 Custom Blends:自定义混合方案。 Events:虚拟摄像机激活时将触发此事件。如果涉及混合,则事件在混合的第一帧时触发。

2.2D虚拟相机

通过选择菜单栏中的Cinemachine可以创建我们需要的虚拟相机。(注意相机要改为Orthographic) 参数介绍 Status Live:勾选solo意味只使用这一个相机。 Game Windows Guides:是否在游戏视窗显示线框

Save During Play:勾选后可以在运行时保存组件的修改。 Priority:根据数值大小决定优先显示哪个相机,越大的优先级越高 Follow:相机跟随目标 Look At:看向目标,相机不动(2D基本不用,大多数用Follow) Mode Override:相机模式选择 Ortho Filed:Orthographic模式下视野大小 Dutch:z轴旋转 Damping相关(阻尼):镜头缓动效果 ScreenX和ScreenY:镜头偏移 Dead Zone(死区):死区内镜头不会一直跟随。 Soft Zone(软区):在软区内镜头会缓慢跟随目标。超出软区相机会瞬移跟随。 Unlimited Soft Zone:不限制软区(去除红色部分) 下图中黑色部分为死区,蓝色部分为软区,超出红色会瞬移。

Lookahead Time:如果设置的话跟随目标点就会朝移动方向偏移,这样做比如在2D游戏中就可以看到更前面的视野。 Lookahead Smoothing:平滑值。 Lookahead Ignore Y:忽略Y轴影响。(2D游戏经常勾选,不然可能会导致镜头不稳) 黄点就是设置了Lookahead后所带来的偏移。

我们可以通过选择Extensions->AddExtension->CinemachineConfiner来为虚拟相机添加限制。

有两种方式,一种是新建一个空物体添加PolygonCollider2D组建调整好大小赋值过来。另一种如下图。

关于虚拟相机之间的切换我们常用的有两种,一种是设置Priority,会显示优先级高的。另一种是优先显示激活状态的相机,可以通过激活失活虚拟相机进行显示切换。

3.3D虚拟相机

这里只针对与2D虚拟相机的不同之处进行讲解。

参数介绍: Field Of View:Perspective模式下视野大小 Near Clip Plane:下图部分与相机距离

Far Clip Plane:下图部分与相机距离

Noise:相机效果 Noise Profile:效果选择 Amplitude Gain:振幅 Frequence Gain:频率

要用ctrl shift f调整相机位置时最好勾选目标相机的solo,不然可能会出bug调整所有相机。

3D镜头限制

利用Timeline控制虚拟相机

创建Timeline

我们可以在Window->Sequencing->Timeline打开Timeline面板。如果没有该选项的话可以在Window->PackageManager中进行下载。之后选中场景中物体点击Create即可创建新的Timeline。

创建后会自带一个Animation Track,并且选中物体上会添加一个Animator。我们暂时用不到直接删除。 我们可以右键左侧或者点击加号创建Cinemachine Track。

创建后需要给Track添加一个Cinemachine Brain组件。

之后直接往Track中拖入虚拟相机即可(或者右键选择Add Cinemachine Shot)。并且可以拖拽模块实现混合效果。

关于body和aim

body aim

Target Group Camera

Target Group Camera

镜头震动

镜头震动

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140276.html原文链接:https://javaforall.cn

0 人点赞