游戏葡萄消息5月12日,在Unite2017开发者大会上,日本Marza动画的内田智弘、高桥、张仲贤分享了如何制作动画实时视频的干货。主要从Timeline的使用方法、后处理效果的完成方法等方面展开。

Marza动画星球原本是世嘉Sammy集团的动画制作部门,2009年从世嘉独立出来成为专注动画制作的公司。

以下为分享原文,游戏葡萄整理发布

内田治宏:你好,大家好,非常高兴,我是内田。首先我个人非常地感谢主办方邀请我们能够来到这里做一段分享。今天我们的演讲有数位嘉宾,大家可以看到。

首先会简单地介绍一下我们这家公司Marza动画,动画世家,动画制作部门,之后独立出来了,专注动画制作的公司。现在我们已经打造了一系列超短片、电视、动画、游戏、电影还包括各种其他类型的包括这里非常知名的初音未来,我们也是做了初音未来2016的秀。

在去年,我们也使用了整个Untiy的渲染,做了一个短片,名字叫做The Gift。我们非常荣幸,其实这个名字就是一个小礼物的意思。我们去年有过这样的作品计划,今年我们也可以看一下Untiy日本也是给到我们一些要求。

我们下一个挑战是什么呢?尤其是在使用实时引擎,在Timeline时间序列里面实时引擎,并且引入新的工具,包括今天上午我们在主旨演讲中也都提到了Timeline更新。新的内容也是2017Ultimate Bowl,这也是今天会做的全程演示。大家可能在今年2017年日本的会场了解到一些简单的信息,看到一些端倪。在这里和大家分享,我们为什么会使用实时渲染来做这部分的动画。

我们可能没有用预渲染,我们希望有VR,有游戏能够缩短游戏制作时间,提高效率。我们未来的制作时间是传统的渲染时间要少很多。之后也会讲一些细节,我们如何来做Ultimate Bowl的2017年的小电影。

利用Timeline构建高质量的实时视频

高桥聡:你好,我是高桥聡,我非常欢迎大家来参加我们这个会议,现在跟大家讲一下我们是怎么来做这个项目的。

首先我们来看一下总览,这个部分我想告诉大家来展示一下Marza整个电脑动画小组怎么用Timeline来构建一个非常高质量的实时视频。这个电影是实时的一个demo,我用的是Timeline这个工具。2017年已经发布了Timeline这个功能。

这边我们是有一些相应的内部内容。我们是在短期内就可以进行完成,我们这个电影在过去,其实所有做的内容在Web上都是可行的。但是在这边我们其实还不是最终的主要内容,这是去年做的这个test,我们去年推出,这可以将我们之前的Gift当中的主要产品进行测试。这个里面我们有三个目标,第一个目标就是构建一个高质量的图像,我们用的是Timeline。这个目标主要是用Timeline的一些功能,这是一个前提,同时能够更好地去来展示我们在整个视觉生产以及短片生产方面的能力。

第二个能够针对构建一些图像方面的可能性。这里有几个方法,第一个方法就是最高质量的短片,第二个就是一些相应的游戏方法。我们就希望能够有一个实际性的一个相关的demo。第三个也就是将前两者进行结合,看看哪个方法会比较好一些。这个也是由Untiy日本来进行试用的。第三个就是尽可能地反馈Untiy的使用社区的内容,将这三个相应的目标能够最终真正地实现之后能够实现我们最终的目标。也就是项目的完成。

下面我给大家来讲一下Timeline具体的功能的实现。首先跟大家解释一下我们的一个整个项目的宗旨。这边有两个主题,第一个主题主要是能够去将Timeline的例子用在我们电影制作方面。第二点就是我们希望能够用cinemachine做电影级别的过程动画。

我们每一个主题都做了什么内容呢?打个比方,这是我们的Timeline的使用,我们这边是有一个在Timeline里面构建一个提前渲染,同时我们也是在过场动画的时候是用cinemachine,这和提前渲染是不一样的,这在短片当中是特别独特的。所以说我们是专门没有任何前提的或者说前面的一些相关的体验和经验的情况下专门为此项目达到一个Timeline的功能实现。

这边说的提前渲染是什么意思呢?我们是由DCC2来提前构建一些相应的场景,包括设置等等。能够把它放在我们的过场动画的编辑期当中,这个过场动画要确保DCC或者其他的动画能够去或者说摄像机能够捕捉到DCC的中心。之后我们用DCC2来做整个相关的测试。但最终,其实我们是希望用cinemachine来打造过场动画。我们首先做提前渲染的功能,就像刚才大家已经看到的短片当中显示的一样。这个是我们的窗口,这个窗口是专门针对这个项目来做的。非常复杂,但是其实看上去很复杂,实际上相对比较简单。

我们一般是用两个轨道,第一个是activation动画,第二个是animation,它有各种各样的指标可以完成。时间线上有关键的key可以重复地进行使用,针对这样的项目,其实我们是除了相应的摄像机和一些人物的动画之外,可以说所有的这些机动性的处理都是由这样的一个动画track来控制的。现在来看一下主要的Timeline相关的结构。这边有不同的几个每一个拍摄。首先就是我们发现这时候,构建这样的一个Timeline其实是一个一个的场景或者一个一个拍摄的场景。这样的话没有太多的效率,这样的话相当于我们采用了激活的轨道,之后把它分成不同的短片之后,以其为基础来构建,之后进行开或者关的动作。

下面我们看一下这样一个激活的轨道。其实在activation track上面是控制的对象,当整个时间线是处在这个片段之上的时候,这个活动是处于激活的状态,如果不在相应的状态就是非激活状态。所以其实我们可以发现这样的一个对象可以根据我们最终的目的和对它的要求来决定它是否被激活。这也是我们这样的一个激活的时候,是可以根据需求来关或者来开。

其实我们每一次shot方面,它的asset boundle都是可以做的。整个片段它的长度也是可调的。但是一般来说,如果有这样的一个结构,我们所有的一些资产的复制,比如说一个主要人物可能会有一些提前做好了。可以根据他主要的一个数量来决定最终人物出现的次数。最后Untiy方面也来了一些反馈,发现这样的一个激活的轨道,它给我们带来的一个好处是完全出乎我们意料的。当然这个效应的一个结构可能是不规则的,但是我觉得这相应的一些提前预览或者提前渲染相关的视觉的生产却是非常有用的。而且这样一个结构可以进行相应的短片长度的调整。我觉得这可以是非常好的一个工作。

现在我给大家来提一下cinemachine。我们在短的动画就是由cinemachine来完成。我们用的摄像机就是cinemachine。同时它也是相当于针对每一个不同的组进行了分离。所有的这些功能,我们都是可以使用的。包括是这样的一个自动跟随的功能,我们可以跟随头或者其他的部位。之前其实这样一个相应的摄像机抖动的问题也可以去解决,所以可以控制好它的抖动。

另外,针对这个广泛的用途,比如说在我们的游戏和过场动画之间无缝地连接也可以通过这样的工具去广范围地使用。同时可以学到说cinemachine可以帮助我们处理一些底片级别的使用。下一步生产机会越来越多的话,我们其实会用cinemachine来帮助我们完成全范围的打造。现在我们可以给大家看重新打造了过场动画之后用cinemachine的效果。也可以由动画track来进行。现在在过场动画的时候是由专门的一个另外一个时间线来专门创建的慢动作,它是分离的。

另外一点,电影的人物,可以用来缓存,我们用同样一种方式去用了Timeline,这是整个animation Track缓存的数据,不是做实时的效果,但是在这个里面,发现它可以很好地和Timeline进行很好的控制。

最后总结一下,其实我们这样的一个动画的轨道是非常地简单,但是其实是非常地有力量有能力的。基本上可以针对所有的这些相应的指标产出动画。我当时的想法好像就是几种轨道的种类,但是用了之后发现真的非常地满意。我们再总结一下我们的工作管理,基于各个场景的一个捕捉为基础,这些工作都是由我们激活的轨道来完成。我们都用cinemachine来最终实现电影级别的一些摄像机的一个工作效果。动画这个轨道其实非常简单,但是非常地强劲。而且我们的下一步的目标就是通过这个项目能够去获得一些Timeline使用的经验,同时我们也可以去获得一些过场动画生产的时间线。

下一步非常地期待能够用这样的一些Timeline其他的功能来帮助我们实现更多的一些工作,非常感谢大家。

如何完成最后的效果处理?

张中峥:下面我将跟大家说一下我们这个项目最终执行之后的效果到底如何。其实大家知道,这样的一个生产主要是依据不同的主题。现在有两个主题,第一个主题主要是打造用这样的一个标准能够来去打造一些最终的效果,第二个主题就是能够实现实时的工作。

为了完成这两个主题,我们都用Untiy标准的方法来构建,同时还有新的后处理的功能来完成后效果的处理。我今天主要是将这两大功能跟大家做一个解释。

首先我跟大家解释的就是Marza的方式怎么样完成最后的效果处理,之后跟大家讲一下在这个项目当中所用的方法。

针对我们The Gift的生产,去年我们也看到在Untiy所用的一些渲染的方式的工作流,我们已经开始采用了。当然我们现在在生产其他产品的时候,我们也会使用同样的workflow,同时也会用提前渲染的技巧。但是它是有它的弱点的,要不就是到时候会更好,要不就是会更差。所以基本上是根据非Untiy的外部数据来做,可能会有很大的缓存,所以用颜色灯光的速度可能并不是特别地好和理想。

所以,我们当时怎么做呢?就是我们在Untiy里面,完成了大多数的工作。而且并不会创建太多的缓存。比如说之前用做建模,但是剩余的流程都是在Untiy里面全部被完成。我们用这样的一个workflow,我之前已经跟大家提过,我们之前用了Timeline之后,以及一些时间以及关键赈的提醒。用这种方式,我们也可以在Untiy里面完成这个工作,而且打造这样一个数据结构,能够实时回顾。

同时我们可以看一下,我们没办法侦测实时的细节,所以我们构建了整个相应图象的序列,用我们的frame capture来构建,之后可以一帧一帧来回放,用这种方式可以一步一步全面地去打造每一个过场动画的切换。现在我给大家来看一下我们整个相应的效果的具体细节,来给大家展示一下分解一下。在这个展示当中,其实我们用的是一系列的指标。比如我们在前部有一个英雄,这里是四溅的火花,另外相应的地上的灯,其实每一个都可以在我们做gameview的时候实现回放,你也可以确保来自于这些颗粒的灯光的效果是可以的。

除了Timeline和关键一帧之外,现在可以做出立马的反馈,之后我们现在来调整一下。现在我们用frame capture来做一个检测。在每一个刻度上面能够在一秒之内快速地创造第二个脚本。我们也是在详细的细节上面对于这些图像进行了核对和检查,包括这些颗粒,它到底是不是在这个grounding接地的时间上是不是精确,这是一个完整的图像。在每一个里面,都会用前面所生成的效果。包括前面还有提到的一些最后的烟花也是能够完整的颗粒的力度,非常地清晰的,非常完整地得到了一个表达。包括Timeline里面会实时看一下这些颗粒,这些粒子在动画里面的效果。

我们使用的有的是自己的关键帧,有的创造了自己的脚本,并不使用标准的控制来做关键帧的改变。大家都知道整个渲染后这些效果,它是由各种不同要素里面的个体来做后期的效果。对于整体的紧身,我们可以调整摄象头,在这里也可以强调在整个shade区域可能会发出光亮的高亮度的,会使用环境的散射在黑暗的区域,可能会使用所谓的环境光遮蔽。此外,这个功能也能够在最大程度上在颜色的变化上面能够尽可能地做到一个清晰的展示。在这里我们做了一些对比,也就是最后的最终的图像和没有后处理,没有这样的一个效果的对比。

在左手边是没有这样一个专门的后期效果,也就是一个比较普通的平平的数据,另外一个是升级过的,使用Untiy的后期效果。我们在这里,在整个图像呈像上面也能够增加颜色的丰富度和厚度,这也是我们非常重要的功能,这是一个非常好用的功能。在这部分做了我们的总结。我们希望能够通过使用这些特有的标准功能并且能够实现实时的回放来创建更多的数据。

对于不同类型的表达,可能只使用标准功能,我们也能够实现多种不同的表达,而且我们也能够非常容易地能够由于Timeline的功能来调节时间。最后考虑到非常好的,非常好用的后期效果的处理,甚至我们所打造出来的人物它的图像超越了我们的预期。

在这里应该后面也是由我来讲有关crowd的内容,它是做贴图的。同样,crowd也是我们所有的,当我们最早引入crowd的数据,它很庞大。我们也是希望能够把帧速来进行调整。我们也是帧频、帧率,通过转换,转换成数字上可能大小更能够接受的。由这些大量的点,我们现在把它分成了十组,减少每一组的字节,提高相应的亮度。

另外对每一个对象进行了渲染,打造了3D的效果。包括常规的,也包括非常璀璨的效果。在这里,动画的纹理的柔和,过程的纹理对于表面属性的基本描述等等来做一个表面着色的技术。在这里我们还代替了这个模式,这个数据在这里我们把它做一些删减、简化。尽可能地由DCC应用当中,尽可能地使用,如何能够把动画做一个在线。那么,你只有实现一部分能力的最大化,能够最终减少到70%。

作为一些不同的结果和总结,我们在未来,可能我们希望能够打造的是高品质的图像。我们的第二个目标当然也是在每一帧上面,或者在不同的过程当中,它的不同的场景也能够让我们更好地了解不同内容之间如何实现更好地匹配。而且我们也知道,我们现在能够尽可能地把预渲染的方法包括游戏化的方法进行更好地组合,把整个游戏引擎得到更好地利用。这个项目里面也是我们过去所做的规模最大的社区,我们也非常地荣幸通过这样的合作来实现这样的一些结果。

对于Marza游戏引擎相关的项目,首先的目标是希望能够实现动画的效果,我们也会专门进行来做。而且大家看到,我们在一定程度上,由于游戏引擎比普通引擎更好,当然现在有一些限制需要我们克服。可能现在有的时候还没有完全做到所谓的完全地实时,但是包括我们会使用一个新的frames,包括文件格式上前面提到的。特别是有关游戏引擎当中如何能够做好更好地分段式的渲染,比如说不是做完全的即时渲染,而且如何能够实现大规模地商业化,并且能够实现非图像方面的成果,这也是需要我们努力的,非常感谢大家的聆听!

相关推荐