国内画质最好的RPG是怎样运用动捕提升表现力的?
随着技术应用门槛降低和国内玩家审美的提高,国内的游戏也愈发注重内容的展现形式。不少RPG向的游戏为了更真实的动作表现、更生动的角色和剧情等,都会采用动作捕捉技术来强化游戏表现力。
作为号称近几年投入最高、画质最好的国产(单机)RPG,《神舞幻想》剧情中的不少元素与舞蹈、祭祀等主题有关,也因此在开发过程中大量应用了动作捕捉技术。《神舞幻想》是一款画面表现在近年国产游戏中数一数二的产品,人物绘制、建模等都达到了相当高的水准,相应地,动作捕捉的应用也在一定程度上增强了其外在表现力。
那么RPG游戏项目应用动作捕捉技术,应该遵循怎样的制程呢?在昨天的虚幻引擎技术开放日上,《神舞幻想》的开发团队分享了他们在游戏中使用动作捕捉技术的心得,主要从流程上拆解了对技术应用的步骤,讲述了他们如何协调角色和演员,怎样优化美术人员的工作量等等。
以下为《神舞幻想》团队演讲实录。
赵琦:先介绍一下自己,我是神舞幻想的执行制作人赵琦,在美国工作大概十年左右,大部分都是做动画师跟过场动画。2016年暑假加入了神舞团队,成为了动作总监,主要是负责动作的规划和动作的流程建立。另一位主讲是陈政旭,程序总监,从Unreal 3开始已经做了5、6年,Unreal 4整个引擎的流程也是由他来主导。
先来介绍动作捕捉的技术之前先做一下专栏的介绍,专栏大概用了两年10个月,团队从10人一直到80人左右。我们在2014年底立案,2015年2月从10人团队发展到83人。Unreal 4发布没多久(我们)就确定用这个引擎,版本锁定在4.11。
然后介绍一下《神舞幻想》这个游戏,先看一下大概的故事内容——我们以上古九州岛为背景、以山海经做蓝图,讲述的是人和神之间的关系,以舞蹈和祭祀做关联和核心。回忆一下游戏内容包含动作以及画质的品质大概什么样的呈现方式。
刚刚大家看的影片,都是在Unreal 4里面realtime的影片剪接出来的神舞的影片。
关于动作捕捉部分,我想跟大家介绍一下,因为当初立项的时候为了剧情的渲染和舞蹈的表现,一开始就确定要使用动作捕捉的技术,主要是为了强化和渲染剧情的效果。我跟团队主要的任务就是要先从了解动作、舞蹈,到流程确认、技术克服再到量产。这个过程要克服UE、动作结构和架设,必须要学会怎么使用和规划,使得量产下产生(作品)品质和数量都能兼顾。
舞蹈部分的流程是跟演员和舞蹈老师进行沟通,包括音乐给予、方向校正来来回回将近两个月。因为这不仅是舞蹈本身,在拍摄过程中要考虑到故事剧情和人物情绪、进入到引擎的镜头,还有特效画面的表现,所以在前期就要做一些设想。
脸部动作捕捉的技术有两个部分,一个是使用Faceware脸部捕捉,一个是FaceFx。使用两个系统的主要原因是中文化嘴形的问题。Faceware自动语音系统下,现在的确有支援中文的语音系统,还有中文文字档,但是音标系统嘴形多少有不合适的部分。这种情况下使用Faceware来抓取表现和强化中文嘴型的部分,同时减少动画师在后期的调整,这是为了在大量量产的情况下保证一定频次。但问题是,没有办法用Faceware的量执行,用这两个系统针对剧情做分镜使用。看一下效果是什么样,Faceware要克服的主要是嘴形,我们很清楚知道会达到更好的效果,是在二代明确知道会执行的部分,Faceware要执行的就是这个问题。
接下来是动捕流程,分成三大部分。第一部分是前置、第二部分是3D软件、第三部分是在UE4里的执行。
每个部分或者每个结构,都有一些需要克服的困难。前置规划上,要将剧情语音中的思考转化成表演,最终进mocap棚拍摄。现场和演员的沟通、排列、抓取、修改,以及考虑到进位、互动以及动作拆分、技术上的问题等等,是在mocap上有导演,然后我下去做这些修正或者安排,还有走位,确保表情和表现符合剧情,同时能在最快速的情况之下做执行。再接下来就是动作抓取完之后,有动作mocap的人清理,之后放到3D软件中生成好的脸部表情还有镜头,输入Unreal产生特效以及灯光等Unreal部分的制程。那接下来制程的部分,就请程序总监陈政旭做制程优化的讲解。
陈政旭:接下来报告一下在刚刚的一些mocap流程后,程序在后续做什么样的优化和制程。制程分享不包含faceware以及FX在程序中的步骤,从Unreal做了哪些事情。
游戏是一个剧情项目,剧情是重中之重,必须要优化。整个游戏剧情长度不光是PC之间的对话,大约是9.5个小时。是非常长的剧情量。换算为mocap场次有280场,这是极大的工作量。传统的制程制作会来不及,而且是相对比较高的频次和数量,所以要为美术这边做那些工具。
可以试想一下,在没有做额外工作之前,3D软件进到Unreal做哪些事情。mocap进来之后一般要在3D软件引证结果,比如说动作对不对、进行简单排列,有些镜头mocap没有处理3D软件中额外制作,产生完之后会有大量的档案。这个时候传统做法要一个一个汇集到Unreal里,全新动作要产生全新的uasset,再编辑matinee。是否要回修,一直重复这个流程,产生一出戏,这是传统的做法。
经过了这个流程之后我们做了一个假设,如果可以省下在Unreal里编辑matinee的工作量,工作就会很快速。我们想象一个流程,如果在3D软件中产生类似fbx的进入到其中,就会产生新的Matinee。
针对刚刚优化流程里面,就可以想象解决某些问题:首先减少了来回调整,在3D软件中,如果一个动作在引擎中认证发现是错误的要修改,就要重新在3D软件中进行调整,那个时间非常长。而刚刚流程上提到,如果一次自动化生成就可以解决掉来回的问题——因为3D软件就检查完甚至调整完——就可以减少沟通成本,这势必会延伸出沟通上的成本。刚刚提到,在流程的优化下,大部分情况在3D软件确认效果之后进入引擎再编辑一次。
这边提到Exporter做了什么工作。先定义Motinee Exporter的目标:自动化流程,减少人为输入/出失误,也可以达到批次输出,快速更新修正数据,简化同步流程,资料量优化。所有流程中都可以简化,减少人力,再来就是资料量的优化。因为游戏有长达9.5小时的剧情量,如果每个动作全部是从头演到尾,每个人都是10分钟的剧情,动作其实很大。针对每个项目要输出设定,镜头带到角色的时候,另外角色没有拍到资料就要输出。
在3D软件中会自制按纽,把演员和场景融合进去。之后可以按输出,输出的界面大概是长这样子。有几个工作要优先处理好,因为3D软件中跟Unreal坐标有对应的位置,要先做定位系统。然后是镜头输出设定,有的情况下Mocap下就设定好,有些不是。还有输出对象的设定,有太多角色的时候选择谁,哪个镜头哪个镜位需要角色什么情况下做,需要反复的设定。这样带来的好处是以后的批次不需要重新设定。可以针对动作/镜位输出做选择,在工具中自动设定。再就是设定输出档案哪些位置。
整个流程规划下来有预期的结果,可以在引擎中输出数据,在mocap输出数据定义演员定位相关讯息,演员的初始位置还有哪些演员需要移动,这是比较特别的讯息,会动和不会动的角色要进行确定,再记录角色有没有动。输出所有动画资讯,生成自己制作特定的格式,变成一个对应档,输出结束。
再来介绍一下刚刚讲的“3D软件给大家做了哪些工作”,在引擎端输入工具会发生什么事情。
在谈之前我们先确定工具的目标,我们希望尽量一镜到底。这样美术人员在3D软件工具工作完之后,下班前按下一个按纽隔天东西就生成了,这是最好的目标。
输出的画面大概长这个样子,按纽相对简单,只要设定两件事情。首先要产生json的汇入档,定义所有的生成相关所有的讯息,包含所有的fbx的资料,在过程中整个新戏做完只要按下按纽,东西包含全新的角色,或者是说需要data就会一次性自动化输入进引擎里面。
输入整个json档案有几部分工作,首先要解析哪些是json工具,就像大家看到的Director Group,在引擎当中编出很多信息做很多反复工作,比如要放入声音或者是移动的资讯,甚至一些动作的资讯,这些动作原先都是需要透过手动在引擎中产生,现在直接透过整个流程去产生所有必要的资讯,在场景上整出戏就会流程进行还原。
做这个过程中遇到不少大大小小的问题,主要遇到的问题应该就是在引擎中输入fbx,产生camera group,轨迹和算法关系,3D软件中看过结果引擎会有落差,我们重新去看出3D软件中的运算方式,引擎中做出来减少误差和旋转角度的问题。这是在做流程当中遇到的一些比较复杂的问题。
赵琦:讲一下这次动捕的结论,使用动捕资料不是很难,现在大部分所谓的动捕公司可以帮助你抓取这些资料、帮你清好,甚至帮你在手动调整完最后还原给你们。但是真正困难的地方,在于规划。现场导戏的时候能够相对应,不管是表演、对位、走位、演员数量不合、动作拆分等等都要在动捕现场进行考虑。再就是这些制程的确定、到最后量化的产生要怎么让动捕保证一样的品质和一样的质量,是动捕需要考虑的问题。
再来就是团队的部分,这个制程是神舞团队的制程,每个团队应该有自己的制程。我们分享是希望这件事能对大家的工作方式有一些帮助,做公司制程上的优化。
最后就是优化制程的重要性,这对我们来说非常重要,我们不希望用人力堆叠所谓的劳力工作,希望更聪明的方法制作游戏内容,把人力花在真正提升品质和解决问题上面,而不是去反复的做一些重复性的机动工作。
其实我们也是刚跨入动捕使用的门槛而已,还有很多的方向可以尝试。我们也知道方法、也知道方向,只是我们在下一个方案中会去执行的地方,也希望带给玩家更大的惊喜。优化制程研究方向上来讲,目前尝试做Light link,制作3D过程中可以在Unreal4下执行,确保不会有细微的误差。希望未来Unreal添置的Editor Add传输工作会更加便捷。