简介
在游戏中,摄像头的效果是非常重要的,将会直接影响到呈现在玩家眼中的画面,好的效果可以直接提高玩家的游戏体验,给予一种身临其境的感觉。例如在一个FPS游戏中,我们往往需要摄像头跟随我们的角色,做一些第一人称第三人称的切换,当角色进入室内时需要调整摄像头位置来防止被墙挡住,在使用倍镜时需要摄像头观察远处的画面等等。以为要实现这些效果我们需要编写很多的控制代码来控制我们的Camera,然而再有了Cinemachine之后,一切都会变得简单起来。
Cinemachine是Unity在2017版本推出的一套处理Camera的组件,利用Cinemachine我们可以不通过敲代码就实现很多摄像机功能。例如上面提到的那些需求,Cinemachine都可以帮我们快速的实现,此外我们还可以利用Cinemachine加上Timeline,做一些过场动画等效果。
官方文档:https://docs.unity3d.com/Packages/com.unity.cinemachine@2.6/manual/index.html
我们可以通过Package Manager来安装Cinemachine(如下左图),安装好后,在我们的Unity工具栏就会多出一项Cinemachine的选项供我们使用(如下右图)。

注:文章中使用的是Cinemachine2.6的版本,需要Unity版本为2018.4.17f1或者更新。
简单使用
安装好Cinemachine后,我们来看看点击Cinemachine菜单下的 Create Virtual Camera 之后会发生什么,可以发现我们场景中多了一个名为 CM vcam1 的GameObject,挂载着 CinemachineVirtualCamera 组件(如下左图,后续称为VirtualCamera)。同时我们的Main Camera身上也多了一个 CinemachineBrain 组件(如下右图),这两个组件就是我们Cinemachine的核心了。

接着我们在场景中新建一个Cube,将这个Cube拖到VirtualCamera的Follow和Look At的设置当中。此时就会发现,我们的Main Camera看向了我们的Cube,并且当我们移动Cube的时候,Camera也会跟着一起移动。

没有写一行代码,就实现了最简单的Camera跟随物体的功能了!
Blend
接着,我们创建第二个VirtualCamera(CM vcam2),此时画面会变为新的VirtualCamera看见的画面。我们调整该VirtualCamera的坐标和旋转,从另个角度看向Cube,例如下图。

然后我们隐藏该VirtualCamera,会重新显示CM vcam1的画面,然后运行Unity。运行后,我们再将CM vcam2设为active状态,此时可以发现,我们的画面会从CM vcam1切换到CM vcam2,例如下图:

这个过程我们称之为Blend,没有代码就实现了镜头切换(混合)的效果。
CinemachineVirtualCamera
CinemachineVirtualCamera是Cinemachine的核心组件之一,前面我们利用了其Follow和Look At就简单的实现了Camera的跟随和看向物体的功能,接下来我们来详细的看看它各个设置的作用。
Base
先来看看如下图这些基础设置的含义

Status
在任何时间,我们的VirtualCamera都处于下面三种状态中的一种:
| Live | 当前控制着Camera(带有CinemachineBrain组件)的VirtualCamera,即处于Live状态。当一个VirtualCamera混合到另一个时,该过程中,两个VirtualCamera都处于Live状态,当混合结束或者其他情况下,同一时刻内只会存在一个Live状态下的VirtualCamera。 |
| Standby | 没有控制着Camera的VirtualCamera,即处于Standby状态。该状态下的VirtualCamera还是会一直跟随和看向设置的目标,并且每帧都会更新。该状态下的VirtualCamera属于激活状态(active与enable等于true),并且其 priority 的值小于或等于Live状态的VirtualCamera。 注:2.6.3新增StandbyUpdate设置,可以设置更新频率(详情见下) |
| Disabled | 当VirtualCamera属于未激活状态(active或enable等于false),即处于Disable状态。该状态下没有任何的性能消耗,即不会控制Camera,不会跟随目标,不会每帧更新等。不 |

Cinemachine是Unity提供的一个强大的摄像机管理系统,无需编程即可实现复杂的摄像机动画和过渡效果。通过创建VirtualCamera,我们可以设置跟随、看向目标,实现第一人称和第三人称切换,甚至创建过场动画。CinemachineBrain作为核心控制器,管理多个VirtualCamera的状态。Cinemachine还提供了噪声、预设和混合模式等功能,极大地提升了游戏视觉体验的制作效率。
最低0.47元/天 解锁文章
5026





