UnityCinemachine属性详解

内容提取整理自:

【Unity游戏开发入门01】:从组件Component到C#脚本_单机游戏热门视频

CinemachineBrain属性:

  • Live Camera:当前使用的虚拟相机
  • LiveBlend:虚拟相机转换过程在这里显示
  • ShowDebugText
  • ShowCameraFrustum:不选中相机也显示相机视锥范围
  • IgnoreTimeScale:相机行为是否受时间缩放值的影响
  • WorldUpOverride:相机在运镜的过程中会有一个“上方”的概念默认情况下这个“上方”就是世界坐标系下的Y轴方向
    • “上方”作用:在相机发生旋转时,如果相机本地下的Y轴和世界的Y轴夹角大于90°时,相机会旋转调整自身Y轴和世界Y轴的夹角(相机产生就是带来的问题,此属性赋值一个X角度为90的空物体,用此空物体代替世界Y轴可避免视角旋转的问题)
  • UpdateMethod:
    • SmartUpate:Unity自动选择
    • ManualUpdate:自己编写代码控制相机行为的同步时间
  • BlendUpdateMethod:两个相机切换的行为的同步方式
  • DefaultBlend:相机切换模式
    • Cut:瞬间切换无过度;
    • EaseInOut:从一个相机慢慢的加速切出,向另一个相机减速切入;
    • EaseIn:匀速切出,慢慢的减速切入;
    • EaseOut:慢慢的加速切出,匀速切入;
    • HardIn:加速切入;
    • HardOut:快速的加速切出;
    • Linear:全程匀速切换;
    • Custom:自定义切入切出曲线;
  • CustomBlends:自定义资源文件,自定义不同的相机不同的切换模式;
  • Events:相机的事件触发;
    • CameraCutEvent(CinemachineBrain):相机瞬间切换时要触发的事件
    • CameraActivatedEvent(ICinemachineCamera,ICinemachineCamera)非Cut类型的切换模式所触发的事件(在切换开始的第一帧执行)

本质上CinemachineVirtualCamera是相机的“配置文件”

CinemachineBrain切换相机,其实就是通过切换不同的配置文件来控制相机行为

CinemachineVirtualCamera属性

  • Status
    • Live:当前虚拟相机激活使用中;
    • Standby:虚拟相机并未被使用,但虚拟相机自身还在运行中,下面的跟随瞄准等计算不一定会停止,它的计算频率(刷新频率)由下边的StandbyUpdate决定;
    • Disabled:禁用状态,不占用系统资源
  • GameWindowGuides:窗口布局引导;
  • SaveDuringPlay:勾选后在运行状态下的修改会被保存;
  • Priority:优先级(越大越优先);
  • Follow:跟随目标(具体设置在下边的Body中);
  • LookAt:虚拟相机看向目标(具体设置在下边的Aim中);
  • StandbyUpdate:当虚拟相机处于待机状态时,这些Follow和LookAt之类的计算要以是吗频率刷新
    • Never:不刷新;
    • Always:与激活的一样;
    • RoundRobin:是一种轮替的更新策略,每一帧选择一个standby相机进行更新;
  • Lens:镜头设置
    • FOV:视野角度;
    • NearClipPlane:近裁剪平面(与相机距离小于这个值不会被渲染);
    • FarClipPlane:远裁剪平面;
    • Dutch:斜角镜头角度;
    • Advanced
      • Orthographic(正交相机):视窗的大小;
      • Perspective(透视相机)
      • 物理相机:焦距、传感器等配置真实属性;
    • 注:A(None)→B(正交),主相机变成了正交。再从B→A相机还是保持正交
  • Transition:虚拟相机切换时的属性设置;
    • BlendHint:相机切换的行为具有怎样的物理(空间)特征;
      • None:对角度和位置做线性插值;
      • SphericalPostion:球形切换(以目标为原点,从起点到终点做一个球形路径的切换过程);
      • CylindricalPosition:圆柱形切换(以目标为原点,从起点到终点在水平面上做圆形切换,在垂直方向上做线性切换,相机划过的路径处于一个圆柱体表面上);
      • ScreenSpaceAimWhenTargetsDiffer:当两个虚拟相机的lookat目标不一样时,在屏幕空间之间做切换,这种切换在位置上使用世界坐标系,表现出的的是普通的线性切换,在角度上则会根据两个相机所构成的屏幕空间的夹角间做切换;
    • InheritPosition:当前虚拟相机被激活时,不是让相机移动到虚拟相机的位置,而是虚拟相机移动到相机的位置
  • Body
    • Transposer:虚拟相机将在某个固定的偏移(距离)上跟随目标移动(这里的偏移就是下边的FollowOffset)
    • BindingMode:决定FollowOffset的参照坐标系
      • LockToTargetOnAssgin:虚拟相机会锁定自身和目标的距离(锁定发生在虚拟相机和Follow目标建立关系时,也就是指定Follow时)。此时虚拟相机会出现在目标本地坐标系下的FollowOffset位置处,比如(0,0,-10)相机则会出现在目标自身为原点,目标的z轴后移10m的位置;
        • 编辑器模式下此刻发生在Follow有对象的时候;
        • 运行状态下此刻发生在虚拟相机激活或Follow赋值的那一刻;
        • 注:只是改变相机位置不会改变相机角度,也就是说目标移动时相机保持固定距离跟随移动,目标旋转时相机不会跟着旋转;
      • WorldSpace:和LockToTargetOnAssgin类似,但是变成了世界坐标系。比如(0,0,-10)相机则会出现在目标自身为原点,沿着世界坐标下的z轴后移10m的位置;
      • LockToTargetWithWorldUp:
        • 飞机的三个轴:
          • 垂直的Y轴(Yaw Axis)偏航轴;
          • 横向轴(Pitch Axis)俯仰轴;
          • 纵向轴(Roll Axis)横滚周;
          • 注:这也就是XYZDamping下方会出现的相应的Yaw,Pitch,RoolDamping的由来;
        • 当目标转动x、y,z轴时,相机自身不会旋转(相机视口方向只会朝着一个方向),只会绕自身的偏航轴以目标为中心做环绕位移运动;
      • LookToTargetNoRoll:相机只能绕着自身的偏航轴和俯仰轴以目标为中心进行环绕移动(相机角度依然不会变化)。
      • LookToTarget:可以绕三个轴进行移动旋转
      • SimpleFollowWithWorldUp:相机不会绕目标的任何轴做位移旋转且尽量不在横向(X轴方向)移动;
    • FollowOffset:
    • XDamping:
    • YDamping:
    • ZDamping:
    • 注:Follow和Body所有属性不会影响到虚拟相机的Rotation上边说的旋转是单纯的绕目标做位置上的旋转,并不是虚拟相机的Rotation旋转;
  • Aim
    • DoNoting:什么都不做(想到与LookAt那里没有赋值一样)
    • Composer(虚拟相机的默认选项):标准的瞄准模式
      • TrackedObjectOffs:打开GameWindowGuides可以看到黄色瞄准点,此选项就是配置瞄准点的偏移值;
      • LookaheadTime:根据目标当前移动速度推测处一个偏移量(和上边的TrackedObjectOffs差不多)。cinemachine会计算当前目标的速度,并预测出一段时间后目标的位置然后添加一个偏移量;
      • LookaheadSmoothing:可以让上边的预测算法更加平滑,当目标运动变化较大时可以调整这里的数值以消除镜头的抖动,如果数值过大会导致预测的延迟;
      • LookaheadIgnoreY:不会预测目标垂直方向的运动;
      • Horizontal(Vertlcal)Damping:水平垂直阻尼,数值越大,相机转动越慢;
      • ScreenX(Y):dead zone的中心位置;
      • DeadZoneWidth(Height):宽高;
        • DeadZone(透明区域,看不到的话调整宽高数值)作用是减小相机的敏感程度,只要黄点在DeadZone范围内,相机就不做任何转动;
      • SoftZoneWidth(Height):当黄点在SoftZone区域内时(淡蓝色方位)相机会通过转动让黄点回到DeadZone中
      • BiasZ(Y):SoftZone的偏移量
      • CenterOnActivate
        • 勾选:当前虚拟相机被启用时,他就会把目标放在屏幕正中央;
        • 不勾选:目标会放在淡蓝色的边缘处;
    • SameAsFollowTarget:单纯的复制目标的Rotation参数作为虚拟相机自己的参数;
    • DoNoting:什么都
    • Damping:阻尼系数,数值越大,相机跟随的速度就越慢;
  • Noise
  • Extensions
  • AddExtension

你可能感兴趣的:(Unity,unity,游戏引擎)