查看原文
其他

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

2017-08-02 Unity官方 Unity官方平台

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

 

Cinemachine设置

 

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


 

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

 

 

1

创建Dolly相机

 

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

 

 

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

 

 

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

 

 

2

放置Dolly Track

 

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

 

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

 

3

添加路径点

 

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

 

 

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

 

 

4

朝向目标

 

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

 

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

 

 

现在效果如下:

 

 

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

 

5

完善路径

 

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

 

 

6

跟踪目标

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

最后效果如下:

 

 

结语

 

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


推荐阅读

Unity制作电影的未来:Timeline搭配OctaneRender

VR中的动画:混用动作捕捉与Unity关键帧

Unity 5着色器系统代码介绍

使用Unity开发坦克AR详解

VR开发与艺术设计工具包


点击“阅读原文”进入Unity官方中文社区

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存