内容提取整理自:
【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
|