前言
Cinemachine是Unity引擎的一个高级相机系统,旨在简化和改善游戏中的相机管理。Cinemachine提供了一组强大而灵活的工具,可用于创建令人印象深刻的视觉效果,使开发人员能够更轻松地掌控游戏中的摄像机行为。
主要功能和特性包括:
1.虚拟摄像机系统: Cinemachine引入了虚拟摄像机的概念,允许开发人员使用相机组件的虚拟实例,而不必直接操作实际摄像机。
2.目标跟踪: Cinemachine能够自动跟踪和对焦游戏中的目标,使相机的运动更加平滑和自然。
3.多摄像机管理: Cinemachine能够管理多个摄像机,并根据优先级和条件自动切换它们,以实现更流畅的镜头过渡。
4.镜头切换: Cinemachine支持创建切换镜头的区域,以便在游戏中实现不同的视角和效果。
5.轨道系统: Cinemachine引入了轨道的概念,允许开发人员在3D空间中定义相机的运动路径,实现更复杂的镜头动画。
6.渐变效果: 提供了通过Impulse Listener实现相机渐变效果的功能,使相机对游戏中的事件有更生动的响应。
7.Timeline集成: Cinemachine与Unity的Timeline集成,使开发人员能够在时间轴上控制和调整相机动画。
8.高级功能: 提供了一系列高级功能,如自定义Rig Logic和State Driven Camera,使相机行为更加可定制。
使用Cinemachine,开发人员能够更容易地实现专业水准的相机工作,而不必亲自处理许多繁琐的细节。这使得游戏开发者能够专注于创造更引人入胜的游戏体验。
一.VirtualCamera
Cinemachine为我们提供了VirtualCamera组件,让我们方便的控制相机。
我们场景中一般只需要一个MainCamera主相机,但是可以存在多个Virutal Camera,便于我们随时切换不同模块的相机状态。
1.CinemachineBrain
当我们创建了一个Virtual Camera后,我们会发现原来的MainCamera上多了一个组件CinemachineBrain,
Cinemachine Brain是Camera上的一个组件,相当于"大脑",可以在每一帧来监控并计算场景中所有活动的Virtual Cameras的状态(位置,方向等),同步选择其他具有相同优先级的Virtual Cameras中或切换具有更高优先级的Virtual Camera甚至进行Virtual Cameras之间的混合(切换)
Brain的作用就是监听VirualCamera的梳理结果,然后实际控制Camera进行拍摄操作 。
2. Virtual Camera
Solo:一种控制方式,用于在同一时间只激活一个轨道,而不是同时激活多个
Game Window Guides:Game窗口会显示辅助线
Save During Play:如果选中,运行中的虚拟相机属性可以被保存下来,退出Play状态不会被重置。
Priority:优先级,调整该虚拟相机的优先级。CinemachineBrain会根据这一项来选择LiveCamera同步到UnityCamera中。在Timeline中不生效该选项。
Follow: 设置虚拟相机想要跟随的目标(Body Target)
Look At:设置虚拟相机想要关注的目标(Aim Target)
Standby Update:当虚拟相机处于Standby状态时的更新方式。Never方式为不更新,Always方式为每一帧都更新,Round Robin为循环更新,将所有待命的虚拟相机按照优先级大小来进行每一帧的循环更新
Lens:设置该虚拟相机的Lens属性
Transitions:相机混合时的设置。
Body:配合Follow使用的参数设置
Aim:配合LookAt使用的参数设置
Noise:可以实现模拟相机抖动效果
二.其他相机
1.FreeLook Camer:适用于第三人称摄像机体验。允许玩家在三个不同的轴上自由旋转视角,提供了一种灵活的方式来调整和控制相机的行为。
2.BlendListCamera: 允许你在多个不同的虚拟摄像机之间进行平滑的混合。可以根据权重在不同的摄像机之间过渡,创造出无缝的过渡效果。
3.State-Driven Camera:允许你定义多个不同的相机状态,并根据游戏的状态来切换这些状态。每个状态都可以有自己的相机设置和参数。
4.Clear-DrivenCamra:可以根据相机的清除标志(Clear Flags)来驱动相机。这使得相机的行为可以与场景的渲染设置和效果相关联。
5.Dolly Camera with Track:在相机上制作路径动画(轨道相机)
6.Dolly Track with Cart:是给GameObject制作路径动画
7.Target Group Camera:跟随一个目标组,根据目标的位置和权重进行相机的跟随。适用于多个目标的场景,确保相机能够同时聚焦在多个目标上。
8.Mixing Camera:允许你混合多个不同的相机。每个相机都有一个权重,根据这些权重来混合不同相机的输出,创造出特定效果。
9.2D Camera:专为 2D 游戏设计的相机。提供了特定于 2D 游戏的功能,如像素完美摄像机设置、跟随目标等,简化了 2D 游戏开发中相机的管理。
三.Cinemachine and Timeline
Cinemachine很容易和Timeline结合使用,比直接使用相机动画制作镜头更容易。使用Timeline可以激活、停用、混合虚拟相机。Timeline可以将Cinemachine、场景中的GameObject和其他资产组合在一起,以可视化方式创建、调整出丰富的过场动画,甚至是交互式的过场动画。
Cinemachine Track:Cinemachine的专用轨道