Unity相机策略千千万,Cinemachine独占一半
以上权当一句玩笑话
不过就博主入职的若干芝麻小公司而言,Cinemachine出现的频率堪称恐怖。
有直接用Cinemachine的,也有魔改后再用的……
那么,为什么Cinemachine有这样的魔力呢?至此,我开始尝试《走进相机》……
注意:只有2017.1之后版本的Unity才可以使用Cinemachine
Cinemachine是什么?
cinemachine相机是虚拟的,内部由数据来控制,所以体量小,性能消耗小
在运行时将场景的camera绑定到某一个cinemachine虚拟相机上
所以镜头的操作是由cinemachine来实现,而真正的相机功能还是由场景原本的camera来完成
而Cinemachine本身提供了很多封装好的方法
使用Cinemachine可以很方便地实现相机跟随人物、镜头融合、轨道相机……在游戏快速开发阶段,这点堪称绝杀。
本篇博客只是粗略了解下cinemachine提供的各类型相机以及使用方法,如有误欢迎评论区指正。
以下开始逐个了解各个相机的参数
一、virtual camera
virtual-camera即普通虚拟相机,是最简单的
可以结合timeline完成镜头融合,切换镜头等操作
1、cinemachine基础设置
solo:虚拟相机存在优先级,点击solo后,Game窗口的镜头会锁定到该虚拟相机上,方便调试
Game Window Guides:描述相机视野的窗口白线
Save During Play:播放时保存
Priority:优先级。优先级高的相机会显示在Game窗口,但优先级无法影响timeline中相机的调度
Follow:获取跟踪物体的transform
LookAt:获取镜头锁定物体的transform
Field Of View:视野范围设置
Near Clip Plane:近裁剪面设置(相当于能观察的最近距离)
Far Clip Plane:远裁剪面设置(相当于能观察的最远距离)
2、cinemachine进阶设置
body
body内的数据,只在Follow栏存在物体才会被真正使用。
Binding Mode:绑定的模型类型
Follow Offset:跟随补偿。相当于cinemachine在跟随物体时的镜头偏移量
X/Y/Z/Yaw Damping:四种阻尼类型。相当于镜头在移动时的缓冲程度
Aim
Aim中的数据,只有Look At栏存在物体时才会被真正使用
Tracked Object Offset:跟踪对象偏移补偿。相当于cinemachine在跟踪物体时的镜头偏移量
Horizontal/Vertical Damping:水平/垂直阻尼
Screen X/Y:屏幕的偏移量
Dead Zone Width/Height:死亡区域的长宽设置。在死亡区域内的时候,镜头不会跟踪物体。当物体离开死亡区域后,镜头才会开始跟踪物体
Soft Zone Width/Height:软化区域的长宽设置
黄色的点为镜头焦点,中心的透明矩形为死亡区域,蓝色区域为软化区域 当镜头焦点在死亡区域时,镜头不会跟踪物体 当镜头焦点出现在软化区域时,镜头会开始跟踪物体 红区为焦点不可到达的地方
Bais X/Y:软化区域的偏移设置
Center On Activate:是否在激活时居中
Noise
镜头噪声。可以制作出屏幕抖动抖等效果
Noise有两种状态,none和Basic Multi Channel Perlin
Noise Profile:可以设置噪声,实现屏幕抖动的效果
TimeLine实现镜头融合
演示:
TimeLine实现镜头融合
二、Dolly Camera with Track
顾名思义,Dolly Camera with Track即为轨道相机
相当于可以给相机规划一个轨道路线,相机会沿着轨道的路线来移动
创建了Dolly Camera with Track后,会创建两个物体
一个是Virtual Camera,还有一个轨道(Dolly Track)