Cinemachine在2D横版游戏中的使用方法简介
Cinemachine的下载及导入
-
下载
现在的版本不再需要从assets store中下载了,直接从package manager中就能找到Cinemachine这个插件。初次找到,请点击Download下载!
-
创建Cinemachine对象
我们选择创建虚拟摄像机Virtual Camera后,便会出现一个名为CM vcam1
的虚拟摄像机。
Cinemachine基础
设置
- 取消主摄像机上的Cinemachine Brain的组件。
- 添加第二个摄像机。
- 在第二个摄像机上添加Cinemachine Brain组件。(添加了这个组件后这个摄像机就没法通过拖拽它移动了,只有移动CM vcam1才能移动摄像机,也就是说,他们已经绑定了)
- 点击CM vcam1,将player拖入右侧的follow栏中,便能实现摄像机跟随玩家啦。
简单用法的一些重要的属性(没讲到的暂时就保持默认设置,如果有补充,欢迎评论区留言)
- Follow : 跟随那个目标
- Look at : 看向哪个目标(3D游戏中经常使用,由于是2D游戏,不需要控制旋转,所以默认None就行了)
- Vertical VOF(Lens中):该值越大则摄像机距离2D平面越远,game视图中看到的地图,玩家等越小。该值越小则摄像机越近,但太近会看到非常模糊的一个个像素。
- Body中,此时Body为transposer。
- X/Y/Z damping () : X/Y/Z方向阻尼。该值越小,则摄像机跟随越快。该值越大,摄像机跟随越慢。
- Yaw damping:与摄像机的旋转跟随相关,但由于这是2D游戏,没有旋转,保持不变即可。
问题来了
但是一般横板2D游戏中并不是摄像机完全跟随玩家,而是玩家到达一定位置后,摄像机才会跟随。并且如果我不停的左右左右,便会出现屏幕一直在晃动的鬼畜情况。
Cinemachine高级
将Body选择为Framing Transposer,即按帧计算的移动方式。此时再选中CM vcam1则会发现,摄像机的中心变成了一个黄点。而在黄点上有一横一竖两条蓝线,也就是下面所说的死线。以及红区和蓝区两部分(改变死线还会出现白区)
白区蓝区红区
- 白区:跟随对象在白区内,摄像机不跟随。
- 蓝区: 跟随对象移动至蓝区中,摄像机就会跟随。
- 红区: 跟随对象高速移动时,会由于摄像机没有及时跟随上目标而丢失目标不在跟随。此时红区的作用就是,当跟随目标触及红线时,摄像机会立即跟随目标而不是缓慢跟随。
高级用法的一些属性(Body中)
- Lookahead Time: 通过计算物体的速度和加速度估计跟随对象该值的时间后,会运动到什么地方,将这个地方设置为黄点的位置。这样摄像机就拥有了一定的预判性。当跟随对象向左移动时,则摄像机视图看左多一点;当跟随对象向右移动时,则摄像机视图看右多一点。
- Lookahead Smoothing:预测的平滑速度。该值为0时,黄点会直接锁定到预测位置。该值增大,黄点会以缓慢移动的形式移动至预测位置。
- Lookahead Ignore Y:但是第一个功能的预测在Y轴上会导致镜头上下晃动,勾选这个选项后,则忽略Y轴的预测。
- X/Y/Z damping : 与Transposer中的功能一样。
- Screen X/Y : 摄像机的位置。默认为0.5,即中心位置。Screen X变大则向右移动,Screen Y变大则向上移动。
- Dead Zone Width : 调整竖着的蓝线,向左右两边分开,调整白区宽度。该值增大则白区宽度增加。
- Dead Zone Height :调整横着的蓝线,向上下两边分开,调整白区高度。该值增大则白区高度增加
- Soft Zone Width :调整竖着的红线,向左右两边分开,调整蓝区和红区宽度。该值增大则则蓝区宽度增加,红区宽度减少。(不要迅速减小,当红线退至蓝线继续减小时,会推动蓝线移动。当该值为0时,则直接锁定跟随对象,于是摄像机一直快速跟随玩家。)
- Soft Zone Height :调整竖着的红线,向上下两边分开,调整蓝区和红区高度。该值增大则则蓝区高度增加,红区高度减少。(不要迅速减小,当红线退至蓝线继续减小时,会推动蓝线移动。当该值为0时,则直接锁定跟随对象,于是摄像机一直快速跟随玩家。)