Unity 2017 | 利用Cinemachine实现自动推拉相机

Unity提供的Cinemachine工具可用于轻松管理相机,其中包含大量设置相机镜头的功能,能够在Unity游戏或应用中像拍电影那样管理游戏相机。Cinemachine方便易用,是在Unity中制作影视内容的完美工具。Auto Dolly就是Cinemachine其中一个功能,用于模拟真实相机的推拉,“自动”实现最佳镜头感。今天这篇文章就为大家分享如何利用Auto Dolly功能来实现自动推拉相机。

Cinemachine设置

请访问Unity Asset Store资源商店下载Cinemachine工具,该工具需要使用Unity 2017.1.0及以上版本。

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

本例采用的示例场景是一个角色在假装打冰球,相机处于锁定状态已覆盖整个场景,现在这个场景看起来不够生动。下面就利用Cinemachine的Auto Dolly功能进行改善。

《Unity 2017 | 利用Cinemachine实现自动推拉相机》


创建Dolly相机

将Cinemachine导入Unity工程后,菜单栏会出现Cinemachine项,其中可以设置多个不同类型的相机。点击Create Dolly Camera with Track新建Dolly相机。

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

点击该按钮后会在场景中加入一些内容并更改相机设置。

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

Main Camera上的图标表示此相机已带有Cinemachine Brain脚本。在检视窗口中查看脚本:

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

放置Dolly Track

在相机视图显示内容之前,需要重新放置Dolly Track。将相机移动到合适的视点,重新摆放Dolly Track。

小提示:使用Ctrl+Shift+F快捷键可以将选中对象移动到当前场景视图内相机的位置与朝向。

添加路径点

下面为Dolly添加路径点,本例中路径点位于屏幕最左侧,您可以根据实际需求添加,无需按照特定顺序摆放。点击检视窗口Cinemachine Path脚本上的 “Add a waypoint to the path”按钮添加路径点。

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

每个路径点都与Dolly Track的坐标有些许偏移。本例的第一个路径点将Z坐标设为0,让其与Dolly Track的起点对其。

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

朝向目标

首先来看看CM vcam1对象,它是场景中的虚拟相机。Cinemachine使用该对象来决定相机位置与行为。场景中可以拥有多个虚拟相机,并在各相机之间平滑地切换,这也是Cinemachine的一大亮点。

本例仅使用一个虚拟相机,它可以按照Dolly路径移动。首先将虚拟相机设为固定相机,本例中希望角色永远是焦点,所以将虚拟相机的Look At字段设为角色模型:

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

现在效果如下:

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

如上图所示,现在的相机镜头更加有趣 ,它跟踪角色并保证角色位于视野中央。Cinemachine会让角色一直位于中间的矩形框内。调整虚拟相机上的属性,可以看到矩形框也会随之调整。

完善路径

要想让Dolly正常工作,还需添加另一个路径点,新增路径点后更改其X坐标值,重新设置Dolly Track的位置,让两端与冰湖中心距离一致。

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

跟踪目标

现在运行还看不到效果,因为相机还未设置跟踪行为。选中虚拟相机后将Follow字段同样设为角色。

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

并启用虚拟相机上的Auto Dolly属性。

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

现在运行可以看到相机跟随Dolly路径移动,并随时跟踪玩家。效果如下:

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

场景视图中可以看到相机在随着路径移动:

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

现在角色镜头已经不错了,如果还想追踪冰球要怎么做呢?可以利用Cinemachine TargetGroup组件来实现。新建游戏对象并添加Cinemachine TargetGroup组件:

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

该组件可以指定多个目标对象,本例中有角色与冰球两个目标。还可以为角色添加权重,让其处于相机视野的机会更多。

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

将带有TargetGroup组件的对象替换之前虚拟相机上的Look At与Follow字段,即可更换相机朝向与跟随的目标。

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

最后效果如下:

《Unity 2017 | 利用Cinemachine实现自动推拉相机》

结语

本文示例仅为大家分享了Cinemachine功能的冰山一角,但已足以展示Cinemachine强大的相机特效,无需编写代码即可轻松操控相机。如果大家正在使用Unity 2017,不妨试试Cinemachine。我们还会为大家分享更多Unity 2017相关的教程在Unity官方中文社区(unity3d.cn),请保持关注。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注