> 技术文档 > Unity Cinemachine(虚拟相机)的基础入门使用

Unity Cinemachine(虚拟相机)的基础入门使用


如何安装

Unity Cinemachine(虚拟相机)的基础入门使用直接在PackageManager中安装即可

VirtualCamera(虚拟相机)

Unity Cinemachine(虚拟相机)的基础入门使用

如上图,在场景中创建一个虚拟相机(VirtualCamera)
1:面板中会多一个“CM vcam1”,此时 MainCamera的操作需要通过“CM vcam1”来完成,针对于MainCamera本身的操作将会失效(如改变位置等)
2:MainCamera后多出一个红色图标,表示此时已被虚拟相机控制

Look at & Follow (聚焦与跟随)

Unity Cinemachine(虚拟相机)的基础入门使用

在“CM vcam1”的面板中:
Fllow:跟随目标物体一起移动
Look At:始终聚焦在目标物体上
Body:虚拟相机跟随时的一些参数调整

创建多个虚拟相机(多镜头)

当场景中创建多个虚拟相机时,主相机的操控权由最后一个被激活的虚拟相机控制,且虚拟相机之间的切换有切换的转场动画,如下图
Unity Cinemachine(虚拟相机)的基础入门使用

新创建的“CM vcam2”控制了主相机
Unity Cinemachine(虚拟相机)的基础入门使用

当“CM vcam2”被隐藏,相机的控制权由上一个被激活的“CM vcam1”掌控

虚拟相机的混合模式(切换虚拟相机时转场动画)

Unity Cinemachine(虚拟相机)的基础入门使用

类型有:切割、缓入缓出、 缓入、 缓出、 硬入、 硬出、 线性、 自定义(从上至下),此时设定的切换动画会强加给所有的虚拟相机切换

自定义虚拟相机切换动画

1:创建“Custom Blends”并保存
Unity Cinemachine(虚拟相机)的基础入门使用

2:在CustomBlends中自定义各个虚拟相机之间的切换动画
Unity Cinemachine(虚拟相机)的基础入门使用

结合TimeLine自动转场

Unity Cinemachine(虚拟相机)的基础入门使用

1:创建TimeLine窗口
Unity Cinemachine(虚拟相机)的基础入门使用
Unity Cinemachine(虚拟相机)的基础入门使用

2:创建空物体,选中空物体后创建对应的Playable
Unity Cinemachine(虚拟相机)的基础入门使用
Unity Cinemachine(虚拟相机)的基础入门使用
Unity Cinemachine(虚拟相机)的基础入门使用

3:将虚拟相机拖拽至最左侧空白区域,在弹框中选择第一个。将需要的虚拟相机全部进行添加,自定义设置对应的顺序以及时间即可

Timeline自带的Cinemachine Track的基础使用

Unity Cinemachine(虚拟相机)的基础入门使用

1:找到挂载TimeLine的空物体,在TimeLine面板中点击加号,选择Cinemachine Track
Unity Cinemachine(虚拟相机)的基础入门使用

2:将挂载有Cinemachine的Camera赋值进去后,将目标虚拟相机拖入Timeline的轨道进行调整
Unity Cinemachine(虚拟相机)的基础入门使用

3:可以通过在轨道上推动相机的动画块,使其产生重叠的部分,重叠的部分就是已经设置好的转场动画(在挂载有Cinemachine的Camera中设置的转场动画)

推轨相机

Unity Cinemachine(虚拟相机)的基础入门使用

Dolly Camera with Track:相机围绕焦点在轨道上运行
Dolly Track with Cart:自定义相机轨迹

Dolly Camera with Track(自定义轨道的推轨相机)

Unity Cinemachine(虚拟相机)的基础入门使用

1:创建推轨相机,会生成两个新物体
Unity Cinemachine(虚拟相机)的基础入门使用

2:在DollyTrack中将轨道自定义创建出来
Unity Cinemachine(虚拟相机)的基础入门使用

3:将需要注视或者跟随的目标赋值,并调整(Follow一般在Body中设置,LookAt一般在Aim中设置)
Unity Cinemachine(虚拟相机)的基础入门使用

4:在TimeLine中给相机设置成为 Animation Track
Unity Cinemachine(虚拟相机)的基础入门使用

5:在TimeLine中点击录制,通过改变PathPosition的方式来创建一系列关键帧,录制完毕即可

自由相机(FreeLook)

Unity Cinemachine(虚拟相机)的基础入门使用

1:创建FreeLookCamera_自由相机
Unity Cinemachine(虚拟相机)的基础入门使用

2:给自由相机绑定上Follow和LookAt之后,会出现由三个红色圆圈和一条弧线构成的“环轨”,环轨规定了自由相机的移动范围,在inspector->Obrits中可以改变环轨的参数

StateDrivenCamera(状态驱动相机)

可以根据不同的动画状态来驱使不同状态的相机
Unity Cinemachine(虚拟相机)的基础入门使用

1:创建StateDriveCamera,并将带有动画状态机(必要条件)的目标物体赋值给An imatedTarget
Unity Cinemachine(虚拟相机)的基础入门使用

2:创建若干个虚拟相机来调整机位,新创建的相机需要点击“solo”将相机变为Live模式才可以进行调整
Unity Cinemachine(虚拟相机)的基础入门使用

3:调整完毕之后可以设置对应的动画状态与机位的绑定,并调整动画效果来实现动画状态绑定机位的效果

ClearShot(切镜相机)

Unity Cinemachine(虚拟相机)的基础入门使用

1:创建切镜相机
Unity Cinemachine(虚拟相机)的基础入门使用
Unity Cinemachine(虚拟相机)的基础入门使用
Unity Cinemachine(虚拟相机)的基础入门使用

2:CollideAgainst设置障碍物层级,该层级的一切物体都会被视为障碍物,所以玩家的层级要和场景的层级分开设置 如上图,玩家的层级为Player 障碍物的层级为Default
Unity Cinemachine(虚拟相机)的基础入门使用

3:Shot Evaluation:设定一个距离,当该相机与玩家的距离达到设置的最大距离时,此时就将优先级转移给另一个相机
Unity Cinemachine(虚拟相机)的基础入门使用

4:勾选SaveDuringPlay后,在运行状态下进行的数值改变,同样会被保存下来
Unity Cinemachine(虚拟相机)的基础入门使用

5.添加好机位之后,进行数值调整即可

TargetGroup(一个相机追随多个玩家)

Unity Cinemachine(虚拟相机)的基础入门使用

1:创建TargetGroupCamera
Unity Cinemachine(虚拟相机)的基础入门使用

2:Group Composer:保持多个目标在镜头内;Group Farming Size:设置目标行程的包围和占屏幕的比例
MinimumFoV、MaximumFoV:最大、最小的视野范围
Unity Cinemachine(虚拟相机)的基础入门使用

3:设置对应的目标物体后调整参数即可

BlendListCamera(混合列表相机)

根据时间的不同来切换不同的机位
Unity Cinemachine(虚拟相机)的基础入门使用

1:创建BlendListCamera
Unity Cinemachine(虚拟相机)的基础入门使用

2:设置不同的虚拟相机,以及相机之间切换的时间和动画方式即可

MixingCamera(混合相机)

Unity Cinemachine(虚拟相机)的基础入门使用

1:创建混合相机(mixingCamera)
Unity Cinemachine(虚拟相机)的基础入门使用

2:可以设置不同相机的权重占比,权重占比越高则相机的优先级也越高,镜头越偏向权重高的相机,若权重一样,则会自动创建处于中间机位的相机,一般情况下在项目运行过程中使用脚本来控制相机之间的权重变化

DollyTrackWithCart(轨道物体)

Unity Cinemachine(虚拟相机)的基础入门使用

1:创建轨道物体
Unity Cinemachine(虚拟相机)的基础入门使用
Unity Cinemachine(虚拟相机)的基础入门使用

2:设置物体运动的轨道,
Roll:旋转角度,可以设置物体在运动中的旋转
Resolution:轨道精度,数值越高,轨道的精细度就越高
Looped:勾选之后可以让轨道闭合起来,一般用于设置可以往返循环播放的轨道
Unity Cinemachine(虚拟相机)的基础入门使用

3:将需要运动的目标物体放入DollyCart下,并在Speed处设置一个速度,开始运行时,物体便会沿着设定好的轨道去进行运动,可以再添加一个虚拟相机来对物体进行追踪和跟随

CinemachineBrain的属性

Unity Cinemachine(虚拟相机)的基础入门使用

LiveCamera:当前启用的相机
LiveBlend:相机切换的一个过程(如下图)
Unity Cinemachine(虚拟相机)的基础入门使用

ShowDebugText:属性的Debug展示(如下图)
Unity Cinemachine(虚拟相机)的基础入门使用

ShowCameraFrustum:是否展示视锥体
ignoreTimeScale:相机的行为是否收到时间缩放的影响
WorldUpOverride:可以设置一个自定义的坐标来代替世界坐标的Y轴,由于摄像机的y轴与世界坐标的y轴的夹角需要始终小于90度,当超过90度时,相机会强行改变自身的坐标,造成相机运动不流畅,所以可以自定义一个坐标代替世界坐标系,来缓解这个问题
UpdateMethod:(设置摄像机与什么同步)FixedUpdate:与物理刚体同步 LateUpdate:与画面绘制去同步SmartUpdate:根据实际情况选择同步ManualUpdate:自行编写代码自定义控制同步
Unity Cinemachine(虚拟相机)的基础入门使用

Events:
Camera Cut Event:相机切换的一瞬间发生的事件
Camera Activated Event:相机切换的第一帧时发生的事件
Unity Cinemachine(虚拟相机)的基础入门使用

VirtualCamera的属性

Unity Cinemachine(虚拟相机)的基础入门使用

SaveDuringPlay:勾选之后,在运行中对相机进行的修改调整在运行结束后也可以被保存下来
Priority:相机权重
Dutch:镜头画面旋转

Body和Aim的一些属性

Body:
Unity Cinemachine(虚拟相机)的基础入门使用Unity Cinemachine(虚拟相机)的基础入门使用

相机运行时的算法选择(上图)
Unity Cinemachine(虚拟相机)的基础入门使用Unity Cinemachine(虚拟相机)的基础入门使用

从目标推断位置时设置的坐标空间
Aim
DeadZone:(空白区域)死亡空间 将目标物体始终锁定在设定出来的空间内
Unity Cinemachine(虚拟相机)的基础入门使用

SoftZone:(蓝色区域) 当物体进入到蓝色区域时,会将物体重新移动到死亡空间内(空白区域)
Unity Cinemachine(虚拟相机)的基础入门使用

Screen:控制死亡空间(空白区域)在屏幕中的位置
Unity Cinemachine(虚拟相机)的基础入门使用

Cinemachine案例学习

镜头抖动:
Unity Cinemachine(虚拟相机)的基础入门使用

Noise选择“Basic Multi Channel Perlin”
在 Noise Profile中选择效果
Amplitude Gain调整强度