1.什么是Cinemachine?
Unity2017版本推出的摄像机管理官方解决方案,致力于帮助开发者高效的实现游戏中的相机系统。
Cinemachine核心组件包括Brain和Virtual Camera(虚拟相机),Brain负责相机的切换,虚拟相机负责拍摄。
2.虚拟相机包含什么?
2.1 虚拟相机主要由六个模块组成,分别是:
Lens:包括调整FOV等参数; Body:负责处理相机和跟踪目标之间的相对位置的这样一个关系; Aim:负责处理焦点和跟踪目标在镜头中的相对位置; Noise:模拟手持相机的晃动; 后处理模块:让每个镜头有不同的后处理效果; Extnesions可扩展模块:包括碰撞处理等功能。
2.2 Body的类型目前有五类:
Transposer:基本类型; Obital Transposer:可以根据用户输入绕目标旋转; Framing Tansposer:在屏幕空间中计算相机和目标的Offset; Racked Dolly:把相机设置到一个轨道上; HardLockToTarget:把相机和目标的位置和朝向进行绑定,常用于第一人称模式。
2.3 Aim的类型目前有五类:
Composer:基本类型; Group Composer:不是跟踪单一目标,是跟踪群体中的某个位置; POV:类似于第一人称相机的模式,没有具体跟踪到某一个目标,但是根据输入进行*旋转; Hard Look At:锁死某一个目标; Same As Follow:主要是对Follow的目标,保持同样的旋转和朝向;
3.Cinemachine主要包含了哪些组件?(v2.4.0)
CinemachineBrain:控制启用的虚拟相机,一个场景一般只需存在一个,必须添加在主相机(负责渲染)节点上。
CinemachineCollider(扩展属性):负责相机碰撞检测以及视线遮挡等功能。
CinemachineConfiner(扩展属性):负责定义相机的活动范围。
CinemachineFollowZoom(扩展属性):动态调整镜头FOV,以便目标在移动的时候会在镜头中保持同样的大小。
CinemachinePostProcessing(扩展属性):给相机添加一组后处理。
CinemachinePath(轨道):通过配置多个关键点组成轨道。将轨道赋给虚拟相机的Body.Path字段,则相机被固定在轨道上;将轨道赋给CinemachineDollyCart(轨道车),轨道车将匀速在轨道移动。
CinemachineSmoothPath(平滑的轨道):通过配置多个关键点组成轨道,自动生成轨道片段的走线方向(CinemachinePath中被Tangenet影响)以保证平缓。
CinemachineDollyCart(轨道车):轨道车可沿轨道匀速行驶,将轨道车赋给虚拟相机的Follow字段则可实现相机跟随轨道车的移动。
CinemachineTargetGroup(目标组):将多个节点设为目标,将目标组赋给虚拟相机的Look At字段,使相机自动寻找最佳位置、角度以找到所有目标。
CinemachineVirtualCamera(虚拟相机):虚拟相机的基础类。
CinemachineClearShot(虚拟相机):配置多个虚拟相机为CinemachineClearShot的子节点,CinemachineClearShot会根据权重、阻挡等,自动选择最佳的子相机进行拍摄。必须要给CinemachineClearShot配置碰撞体(Cinmachine Collider)。
CinemachineExternalCamera(虚拟相机):配置一个额外相机(Camera),主相机(绑定了CinemachineBrain)将参照额外相机的配置进行改变。
CinemachineFreeLook(虚拟相机):围绕目标水平旋转或竖直移动,实际上由三个Body组件为Obit Transposer的虚拟相机构成。我们可以利用FreeLook很轻易的实现第三人称相机。
CinemachineMixingCamera(虚拟相机):对多个虚拟相机进行混合,可给各虚拟相机设置权重。混合的虚拟相机都必须为CinemachineMixingCamera节点的子节点。
CinemachineStateDrivenCamera(虚拟相机):可以把动画状态和虚拟相机进行绑定,当动画状态切换的时候,虚拟相机自动进行切换。必须将切换的虚拟相机设置为此相机的子节点。
CinemachineBlentListCamera(虚拟相机):设置一组虚拟相机的线性变化队列,每个片段可单独设置长度及渐变时间(包含在片段长度中)。
4.了解更多?
https://connect.unity.com/p/li-yong-cinemachinekuai-su-chuang-jian-you-xi-zhong-de-xiang-ji-xi-tong