【Unity】Cinemachine---常用功能再整理
有机紫菜
编辑于 2023年11月07日 08:02

Cinemachine相机

功能繁多的Cinemachine.而实际上可以简化理解.只要记住使用的时候用到的东西就可以了。

其核心主要包括三大部分,

1,相机的混合与切换,---(相机切换的时候怎么过度)

2,相机位置(Body)与朝向(Aim)---(Cinemachine相机的核心概念)

3.绑定算法--(相机怎么跟拍物体)


具体来讲

1.相机的混合,也就是多个相机之间的过度与硬切,通过设置blend时间,与不同的切换方式(硬切,fade in/out,曲线)来实现,比较好理解。

2.相机的Body(位置)与朝向/旋转(Aim)---也就是控制相机的跟随方式,与朝向/旋转的方式.---不同类型的相机(Virtual,Freelook等...)有不同的功能,都是位置与旋转的不同实现.

3.相机绑定的具体算法,也就是具体的位置跟随方式,与旋转方式的算法.有很多,后面一一讲解哪些常用,用在什么时候.


相机的混合与过度效果

常见的过度效果

过度效果比较简单,硬切,线性,自定义曲线和各种曲线.


相机混合的轨道路线---重要.

1.None--直接过度.

2.Spherical Position--圆形环绕

以对象为中心的圆形,像照相机移动一样的混合方法。

3.Cylindrical Position--圆柱形环绕---(很适合做特写镜头的切换轨道)

将Blend Hint设为Cylindrical Position的话,就会变成以对象为中心移动圆柱状的混合方法。

过度效果搭配不同的变换路线,构成不同的效果.


Binding Modes---绑定算法

总览

最常用的追踪物体的算法,应该是Transposer,与Do Nothing了,

Transposer有很多不同的方法,下面会讲到,但最常用的是把Aim设成Composer状态下使用---也就是一边跟踪物体一边注视物体.

Do Nothing是,相机不动,可以完全自己用代码写追踪逻辑,所以也比较常用.

Orbital Transposer--以对象为中心的圆圈摄影机移动,---玩家可以控制相机绕着中心转,---常用作观察绕着圈观察一个物体---

比如商店物品旋转着看,或者人物自动行走着,控制相机旋转着看周围.

Body的算法种类


Body--算法之Transposer的常用功能

Transposer主要用于追踪对象,

为了简化说明,将Aim设置为Composer状态,即注视对象的状态。

  • Simple Follow With World Up---一句话形容--人类摄影师追逐被拍摄对象的动作

  • Lock To Target--角色总是从特定方向--特写锁定,比如锁定一个跑动中人物脸部.无论这个人是转圈还是啥,都锁定一个观察位

  • Lock To Target no roll---和上面一样,只是角色Z轴的旋转将会被忽略.一般是用在飞机上,人物很少Z轴旋转.

  • Lock To Target With World Up---和上面基本一样.不过既不仰角俯角变动,也不Z轴旋转.也就是不进行pitch和roll操作.

  • Lock To Target On Assign--和上面基本一样,也是不随相机Y轴旋转.

  • World Space---一直跟着物体运动方向进行追踪

  • ---以上这些可以参考官方文档中的动图,会更好理解.


Aim的算法种类

Aim--的区域

Dead Zone,让目标保持在此区域。--透明

Soft Zone,进入Soft会让相机回到Dead。--蓝色

No Pass Zone--目标不会到达的区域--红色

而众多功能的相机,如何选择哪个作为开发所需要的?---可以查下表.

  • 1.Virtual Camera--适应于所有情况,并且支持自己编写相机控制脚本,与一些预制的相机算法-也适合做第三人称.第一人称,俯视角,等---最常用

  • 2.Freelook camera自由观察摄影机,和虚拟相机类似的第三人称特化相机,围绕一个目标---产生三个环的相机,--可以做第三人称相机来用,但是有一些限制.---具体下面讲.---虽然是第三人称特化,但是做第三人称的时候不一定要用这个,因为有些具体的限制在.有时候不如用Virtual +自己重写一部分代码.更适合

  • 3.State-Driven Camera--状态驱动,一般做特写时候,需要绑定Animator,以角色的不同状态绑定不同的相机,--进行动画特写,角色技能特写.时候很有用.

  • 4.Mixing Camera---使用权重,来混合子相机的位置等.(最多8台摄影机,可在TimeLine中混合)

  • 5.Clear Shot---可以分析场景中障碍物,在子相机中选择,获得最佳质量目标镜头,适合于即时战斗的特殊情况.

  • 6.Dolly与Track---轨道相机,很好理解,适合过场。

  • 7.BlendList Camera---在子相机之间进行,一系列混合和剪辑操作.----激活的时候,执行一个指令列表.第一台相机,然后接下来的相机,适合拍摄动画剪辑.和时间轴本身的功能类似.

参考文章:https://light11.hatenadiary.com/entry/2019/07/24/221418