准备

在PackageManager中安装Cinemachine包。

1.CinemachineBrain组件

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

unity申请相机权限 unity相机在哪_unity


参数介绍:

Live Camera:当前显示的相机

Live Blend:过度相机时显示进度

Show Debug Text:在Game视窗里显示当前使用的相机

unity申请相机权限 unity相机在哪_unity申请相机权限_02


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:是否在游戏视窗显示线框

unity申请相机权限 unity相机在哪_unity申请相机权限_03

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:不限制软区(去除红色部分)

下图中黑色部分为死区,蓝色部分为软区,超出红色会瞬移。

unity申请相机权限 unity相机在哪_U3D_04


Lookahead Time:如果设置的话跟随目标点就会朝移动方向偏移,这样做比如在2D游戏中就可以看到更前面的视野。

Lookahead Smoothing:平滑值。

Lookahead Ignore Y:忽略Y轴影响。(2D游戏经常勾选,不然可能会导致镜头不稳)

黄点就是设置了Lookahead后所带来的偏移。

unity申请相机权限 unity相机在哪_U3D_05


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

unity申请相机权限 unity相机在哪_U3D_06


unity申请相机权限 unity相机在哪_游戏开发_07


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

unity申请相机权限 unity相机在哪_unity申请相机权限_08


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

3.3D虚拟相机

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

参数介绍:

Field Of View:Perspective模式下视野大小

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

unity申请相机权限 unity相机在哪_unity申请相机权限_09

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

unity申请相机权限 unity相机在哪_游戏开发_10


Noise:相机效果

Noise Profile:效果选择

Amplitude Gain:振幅

Frequence Gain:频率

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

3D镜头限制

unity申请相机权限 unity相机在哪_unity申请相机权限_11


unity申请相机权限 unity相机在哪_游戏开发_12

利用Timeline控制虚拟相机

创建Timeline

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

unity申请相机权限 unity相机在哪_U3D_13


创建后会自带一个Animation Track,并且选中物体上会添加一个Animator。我们暂时用不到直接删除。

我们可以右键左侧或者点击加号创建Cinemachine Track。

unity申请相机权限 unity相机在哪_unity申请相机权限_14


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

unity申请相机权限 unity相机在哪_unity申请相机权限_15


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

unity申请相机权限 unity相机在哪_unity_16

关于body和aim

bodyaim

Target Group Camera

Target Group Camera

镜头震动

镜头震动

分屏

1.新建两个Layer

unity申请相机权限 unity相机在哪_unity申请相机权限_17


2.新建两个unity camera和两个cinemachine camera。并将cinemachine camera各自设置新建的Layer。

unity申请相机权限 unity相机在哪_unity申请相机权限_18


unity申请相机权限 unity相机在哪_游戏开发_19


3.两个camera分别剔除不同的层即可。

unity申请相机权限 unity相机在哪_Time_20


4.最后根据需求调整viewport即可。

unity申请相机权限 unity相机在哪_Time_21