搜索Unity

光源、摄像机、操作!利用Cinemachine设置摄像机

Last updated: November 2018

Cinemachine从Unity 2017周期开始已经成为Unity中的实际摄像机系统。在表面之下,它有一个具有许多选项和可能性的精制系统。请阅读Unity技术讲师Ciro Continisio提供的关于Cinemachine的更多高级用例和技巧。

多个Cinemachine Brain

在分屏多玩家场景中,或者当您希望制作画中画效果(例如监控摄像机)时,您有时会需要多个摄像机。即使是这样,看起来似乎也是Cinemachine在控制所有摄像机。通过Brain组件,您可以在场景中添加多个Brain,每一个负责操作一组虚拟摄像机。

在此解决方案中,您只需使用一个指向角色面部的辅助摄像机并渲染到RenderTexture,就可以在UI中看到有视频馈送。要让视频馈送更加丰满,您可以使用Cinemachine将角色面部保持在帧中。

cinemachine-RenderTexture-MultipleBrains

此处的设置非常简单:创建两个Unity摄像机,并各附加一个Cinemachine Brain。随后即可根据需要创建许多虚拟摄像机。

Multiple-Cinemachine-Brains

为了确保一个Brain只能看到其中部分虚拟摄像机,您只需执行三个操作:

  1. 确保让想要影响特定摄像机的虚拟摄像机位于单独图层中(例如,“角色”)。
  2. 设置该摄像机的剔除遮罩以渲染该图层。
  3. 设置其他摄像机的剔除遮罩以排除该图层。

请注意,即使该过程使用摄像机的剔除遮罩,也不意味着您需要更改渲染。即便可以操作31个图层,您也只需要创建一个要用于放置虚拟摄像机的特定图层。

以下视频概括了完整过程:

不同的“World Up”轴

Cinemachine在运作时假设环境中存在一个“World Up”轴,默认为沿Y轴向上。通过将此轴作为基准,它知道不执行哪个摄像机移动,例如垂直向上或垂直向下看目标(真正的摄像机不会执行这样的操作!)

对于2D摄像机(标记为正交模式),Cinemachine的行为有所不同,并且会约束摄像机在地面的移动。所谓地面,就是指剩下两个轴(本例中为X轴和Z轴)组成的平面。

但有时必须强制改变“World Up”轴和相应的平面。例如,您可能正在制作使用2D物理的游戏,所以您必须在XY平面上创作游戏玩法。但是,您可能要让摄像机从一定的角度来观看此平面,因此,摄像机平面有一定的倾斜,如下图所示:

world-up-override-cinemachine

为此,您只需在Cinemachine Brain中为“World Up Override”属性分配一个变换。您可以创建一个空GameObject,将其用作操控器,您还可以通过旋转此对象进行试验,找到适合您的Cinemachine的“World Up”轴的方向。

明智使用后处理

Cinemachine与后期处理栈v1和v2均可结合使用,但后者配合最佳,因为它有基于体积的系统,所以与Cinemachine相配合可以玩一些巧妙的花样。

将这两者结合使用时,建议把效果分成两个类别:

  1. 对每一个镜头都会产生影响的一般效果。
  2. 只会影响某个特定镜头的效果(或者在Cinemachine术语中,称为虚拟摄像机)。

一般来说,环境光遮罩、颜色分级、颗粒和其他风格效果通常归入第一组,因为您要确保整个游戏或影片的风格一致。景深、镜头失真、色差和模拟摄像机物理属性的其他效果最好作为虚拟摄像机属性。不过,这并不是硬性规定!

例如,在下面的示例中,您会发现使用了一个很小的局部Post-Processing Volume来产生通过旧式安全摄像机进行监控的画面。

post-processing-intro

为了实现目的,您只需要对标记为“Is Global”的虚拟摄像机使用Post Process Volume,并添加一个碰撞体。通常,一个很小的球星碰撞体(可能半径只有0.05)就可以确保摄像机在游戏中不会误入此体积。

下面是对同一个对象应用虚拟摄像机、Post Process Volume和碰撞体:

smart-use-post-processing

接下来,您可以添加自己想要的所有效果,甚至还可以选中相应的复选框,重写主配置文件中的某些属性。请注意,如果您不选中复选框,则会使用该属性的基准值(通常来自全局体积)。如果选中,则仅为此体积改写该值。

创建推拉变焦效果

最后还有一个电影小技巧。您见过所谓的“推拉变焦”效果吗?它最初由Alfred Hitchcock于1958年在电影《迷魂记》(Vertigo)中引入,从那以后,大量电影中都使用过这种效果。

在屏幕上时,角色与背景之间的空间似乎在不断扩大或缩小。这是一个非常酷的技巧,而且使用Cinemachine很容易重新创建。

请查看下面的示例,该场景将在游戏过程中触发。

Cinemachine-Dolly-Zoom

要制作这种效果,您可以从两个具有相同设置的虚拟摄像机开始。然后,您需要将其中一个拉回并减小其视野值。当您通过Timeline或使用Priority在这两个摄像机视图之间进行混合时,就可以产生“推拉变焦”效果。

请注意,此效果仅对透视摄像机有效,而不能用于正交摄像机!

更多资源

您喜欢本文吗?请告诉我们!

喜欢。继续发送 还行。有待改进