MMD联动Unity学习笔记 Vol.28 Cinemachine入门

前言
了解Timeline之后,Cinemachine必然也得跟上。我们还是跟着Shallot夏洛特大佬的视频学习


Cinemachine入门
这期介绍如何入门Cinemachine。我们具体会介绍使用它持有一个相机,锁定移动的对象拍摄,如何动态跟随对象拍摄。后续的会介绍更多的高级功能,比如在给定的路径跟随,在各种不同的相机类型中切换等等。

Cinemachine是一个强大的电影工具集,它可以让我们动态控制相机,让你可以对自己的项目进行最佳的诠释。要入门必须做的第一件事就是到Unity商城去下载并导入它。(现在Unity的Package Manager已经集成了Cinemachine,我们在Package Manager里面就可以直接搜索下载)
在下面这个事例里,我们使用一个Timeline序列来控制一个角色移动。(有关Timeline的内容请在Up之前的专栏中搜索或者直接在专栏文集列表中查看第25至第27期内容)

现在我们有一个静止的相机,角色移动距离很长,会走出屏幕之外。我们想让他尽可能的保持在画面之中,我们就需要让相机在角色走动的时候也跟着移动。我们可以使用Cinemachine来办到。

首先我们要给主相机加上"Cinemachine Brain"组件。

这个组件是Cinemachine的枢纽,通过它可以创建多个Virtual Camera(虚拟相机),用来控制主相机。

下一步我们将主相机拖入Timeline,选择Cinemachine轨道。

接着鼠标右键点击它,选择添加Cinemachine摄像片段。

在Inspector(监视器)中面可以在这里设置Virtual Camera。

在这里,我们想要创建一个新的,所以点击这里新建一个Virtual Camera,然后层级窗口就会有一个新cm cam1被创建出来了。


如果我们在Look At赋予一个对象,相机就会一直面向对象进行拍摄。

好,我们把角色模型拖进去试试。

现在相机就会一直拍着角色,所以角色始终保持在屏幕里面。

我们可以微调相机上的属性来获得各种效果,也可以直接在Game窗口拖动导航线来调整。


在这个非活动区域,Cinemachine是不会追踪对象的。如果想要相机持续追踪对象,应该减少非活动区的范围,反之就增加非活动区的范围。

蓝色区域(柔软区)表示目标,可以在屏幕中活动的空间。蓝色区域越大,相机的行动越自然。缩小蓝色区域,相机移动会更精确,但是会更死板。在这个工程里,我想要让角色靠近屏幕边缘,相机才开始追踪。所以我把蓝色区和非活动区都设置的很大。在这里建议您多多实践,以取得最好的相机效果。

假设我们需要另外一个镜头,用来跟随角色移动的,那就在Virtual Camera轨道上再新建一个片段,以及新建一个Virtual Camera。

给新建的相机设置一下位置,

把角色的Transform拖入属性接口。


Cinemachine便会与角色保持一个距离,跟着它一起移动。如果我们预览一下,就可以看到这两个镜头的切换了。

使用融合片段,可以让这两个片段进行完美的融合切换。我们可以自由地对他们进行穿插裁切,增加融合的范围。可以发现只需要简单的几步,就可以用Cinemachine完成很好的效果。

最后,感谢Shallot夏洛特大佬的分享。