MMD联动Unity学习笔记 Vol.31 Cinemachine后处理

前言
这期我们接着上期内容,官方的Cinemachine教程实际上已经出了7期,Shallot夏洛特大佬不知为何没有做下去,Up这次就自己去啃了一次生肉。本人水平有限,如果有翻译不对的地方,请各位小伙伴指正。

使用Cinemachine进行后期处理
我们来看看如何使用后期处理扩展到激活的Cinemachine的后期流程虚拟摄像机,我们也将去看看我们如何融合我们每个人的不同后期流程虚拟相机。
后期处理栈包括我们可以添加到我们的一系列行为,相机要彻底改善。我们场景的观感。

在这个场景中,我们在三个不同的Cinemachine虚拟相机之间有一个简单的时间轴序列剪辑,我想要给它们添加一些不同的后处理效果,

我们在我们的主相机上创建一个Post-process Layer(后处理层),

我们再给它设置为自定义层让它作为游戏对象的层,我们将它命名为Post Processing,我们将后处理层组件里的Layer设置为刚才定义的Post Processing,为了优化性能它值得单独设置,我们在专用层中一般还有我们的Volumes代替默认设置,我想要应用一些默认后处理覆盖所有我们的相机,

所以我们在我们的相机上创建一个Post Process Volume,给我们的后处理创建一个新的Profile,然后我们可以应用我们默认的后处理,

如你看到的,我添加了一些默认的颜色渐变,景深和光晕效果。现在我们的三个相机都附带一些后处理,我们第一个镜头看起来不错,但我们或许还可以做一些改变,

我们添加一个Cinemachine Post Processing扩展,

并创建一个新的Profile,

现在默认的后处理在我们的设置的Profile下,作为覆盖附加的效果已经应用得非常好了,我们假设我们想让我们的第二个镜头,在我们的相机到达轨道上一个特定点时,它看起来有少许不同,我们想要混合一种不同的后处理效果,我们可以用Post Processing Volumes来达到这种效果。

我们创建一个Processing Volume(在层级中),


Blend Distance(融合距离)可以使相机在它当前的后处理和应用Volume的后处理之间融合,来作为进入融合区域,保持融合距离为0可以使相机在没有任何融合时立即切换效果。


现在当相机移动到Volume区域,我们的后处理效果将会改变。
我们也可以在时间轴使用片段融合,来在不同的Cinemachine后处理状态之间进行过渡。举个例子,我们的最后的镜头,我们想让镜头开始聚焦在柱子,然后在它移动的过程中,我们将焦点移到背景上。



要做到这些,我们先复制相机并复制后处理(Profile),

我们只需调整景深设置在商店上,

焦点就可以移到背景上,


现在我们如果在两个镜头之间切换,我们可以看到我们想要的相机在开始和结尾状态之间融合。

如果将它们移动到一起,并创建一个融合状态,我们可以看到我们的相机现在在两个不同的状态间融合,模拟一个拉近焦点的效果。

如果我们在相机上只有一个景深后处理可用,这也不太值得,我们追踪一个目标,我们可以告诉Cinemachine,在基于它离相机的距离,我们的轨道目标,动态地拉动焦点。

你可以看到通过使用后处理栈并覆盖带有Volumes的效果,或者Cinemachine后处理效果,我们可以给我们的项目做出一些非常有意思,和动态视觉相机效果。