转自腾讯游戏开发者平台(GAD)

CDPROJEKT RED的主程序、Piotr Tomsinski

在GDC2016的最后一天18号,CDPROJEKT RED的主程Piotr Tomsinski,以【巫师3:狂猎的幕后(BEHIND THE SCENES OF THE WITCHER 3:WILD HUNT)】为题,进行了动作RPG【巫师3:狂猎】的事件对话系统的开发流程的解说。另外,【巫师3:狂猎】也被参加GDC 2016的开发者评选为【年度游戏奖】。

【开头是「巫师3:狂猎」的介绍演示】

 
 
 
 
 
 
 
 

Tomsinski把【巫师3:狂猎】定义为“不是基于一条主线故事进行的开放世界的RPG“,故事是本作的生命。在本作的介绍演示后,Tomsinski对本作的事件对话系统,对根据玩家自身想法来适当的给予选择的机会,以及选项有着动摇玩家感情意义的重要性做了说明。

虽说如此,但让动画师手动的制作35个小时以上的电影级的事件会话,必须要动用大量的动画师才可以。那种最简单拍摄的幕间过场动画(Cut Scene)姑且不算,但对于用手工制作RPG会话要花费的时间,很明显是不现实的。在【巫师3:狂猎】的故事事件里,是把2.5个小时的过场动画用35个小时的会话事件系统来控制,就如Tomsinski所说,过场动画的制作成本非常昂贵。除了重要场景外高消费外,其他的部分自然要采用不同的解决方法。

 

RPG游戏中故事的重要性

 

RPG的事件场景制作非常的痛苦

 

过场动画和对话事件的对比,右下的小画面是过场动画

Tomsinski他们为本作的对话事件系统开发了自己的工具。故事的Sequence的制作由【任务图表(QUEST GRAPH)】和【对话编辑器(DIALOGUE EDITOR)】构成。由于为本作开发了大量的工具,制作看起来就很容易了。

剧本作家创作的剧情,通过基于节点的【QUEST GRAPH】,把故事的序列逻辑按一定单位的节点替换,而分歧用流程线来联系。虽然【QUEST GRAPH】看起来做了阶层化,但大量的管理还是很成问题。尽管如此,把流程视觉化可以更方便理解的显示,是这种可视化脚本工具的优点吧。

 

【QUEST GRAPH】的画面

 

【DIALOGUE EDITOR】的画面

每个节点内部创作的内容,是在基于Timeline的【DIALOGUE EDITOR】中来制作的。每个节点内,有角色,相机,光源,面部表情,天气等的控制变化。除了像通常那样使用系统来制作事件节点外,还有更加详细的制作方法,可以制作出更加流畅的事件节点,这个就是使用【GENERATOR】通过模板生成节点的Timeline。基于Timeline的工作虽然要比制作定制的过场剧情轻松,但一个个的准备所有节点的Timeline还是很麻烦,只能说是稍微轻松了一些。

 
 

「DIALOGUE EDITOR」中Timeline的编辑

 

「GENERATOR」是非常便利的工具

 

各种待机动画

 
 
 
 

注视点的管理在系统之外而且复杂

考虑到要彻底的节省工作,在其他方面也要更加的讲究。角色的待机动画上,准备了站立的,单膝跪地,坐着等姿势,角色攻击时毅然等内部感情的状态,以及注数其他角色时眼睛和头部转向的动画,有着相当多的数据。

为了实现这样的对话事件系统,美术师准备的动画总数有2400个以上,老幼年女也有考虑,但这样也不是足够充分。亚人种的怪物角色的对话也有,进一步的对应所有的类型。

 

动画总数超过了2400个

 

和怪物的对话也必须有……

【巫师3】的解决方案是,在【DIALOGUE EDITOR】上,修改一部分角色的控制器Rig的基本动画数据做修改的功能。例如,基本动画中直接指着眼前的时候,如果对峙的角色并不在证明,要在编辑器通过节点变更手腕的方向和注视点,就可以立刻制作出一个特殊的动作。而且,大部分的物体对象都可以Attach到其他的物体上,Attach状态的物体之间的动画,可以很好的同步。

 
 
 
 

通过控制器Rig来控制

在【DIALOGUE EDITOR】中可以变更的,不仅仅是动画相关的内容,光照和气氛感等视觉的后处理也可以自由的设定。伴随天气和时间的太阳光源也可以控制,可以生成各种最终输出的结果。也可以加入魔法的特效,汇集了会话事件所需要的所有功能。【巫师3】的会话事件制作工具是相当的成功。

 
 
 
 
 
 

后期处理制作的要素

本作的会话事件系统的制作概念,就工具自身而言,并没有什么新颖的内容。只是这样对于提高开发效率而言并没有坏处,不论是谁都可以得出的结论。重要的是,工具虽然不是游戏本体,还是不能轻视,牢固的制作各种功能的工具吧。因为是与游戏最终品质直接关联的部分,决不能轻易的忽略。

 

使用了后处理滤镜的事件

现在为了提高玩家的印象,不光是RPG,射击和格斗游戏也开始重视幕间的过场动画,这样游戏体也变得巨大。减少美术师的制作负荷,和让有高超技能的美术师认真的制作过场动画之间需要权衡。而如何保持这个平衡,推出高完成度游戏,也正是这次议会的主题。

【转】巫师3:狂猎(The Witcher 3: Wild Hunt )的游戏事件工作流的更多相关文章

  1. 【SIGGRAPH 2015】【巫师3 狂猎 The Witcher 3: Wild Hunt 】顶级的开放世界游戏的实现技术。

    [SIGGRAPH 2015][巫师3 狂猎 The Witcher 3: Wild Hunt ]顶级的开放世界游戏的实现技术 作者:西川善司 日文链接  http://www.4gamer.net/ ...

  2. GDC2016 【巫师3 狂猎】的游戏事件工作流

    巫师3 狂猎(The Witcher 3: Wild Hunt )的游戏事件工作流   http://game.watch.impress.co.jp/docs/news/20160320_74916 ...

  3. Android RecycleView 自定义Item的使用

    自定义布局的RecycleView需要自己实现Adapter,ViewHolder和布局: 自定义Adapter继承RecycleView.Adapter,重写getItemCount(),onBin ...

  4. 3D跑酷游戏《月影忍者之疾风狂逃》

    <月影忍者之疾风狂逃>是一款3D跑酷游戏,也是我实习的时候参与的一个项目,在那个公司我学到了很多东西,谢谢他们.大家可以去玩玩这个游戏啊,还是不错的哦.

  5. 2000G电脑大型单机游戏合集

    激活码 游戏名称(ctrl+F查找) 下载链接005875 艾迪芬奇的记忆 游戏下载链接http://pan.baidu.com/s/1t2PYRAj546_1AcOB-khJZg554158 暗影: ...

  6. 剖析虚幻渲染体系(14)- 延展篇:现代渲染引擎演变史Part 1(萌芽期)

    目录 14.1 本篇概述 14.1.1 游戏引擎简介 14.1.2 游戏引擎模块 14.1.3 游戏引擎列表 14.1.3.1 Unreal Engine 14.1.3.2 Unity 14.1.3. ...

  7. 《InsideUE4》-6-GamePlay架构(五)Controller

    <InsideUE4>-6-GamePlay架构(五)Controller Tags: InsideUE4 GamePlay 那一天 Pawn又回想起了 被Controller所支配的恐惧 ...

  8. R Language

    向量定义:x1 = c(1,2,3); x2 = c(1:100) 类型显示:mode(x1) 向量长度:length(x2) 向量元素显示:x1[c(1,2,3)] 多维向量:multi-dimen ...

  9. GAE+bottle+jinja2+beaker快速开发demo - Python,GAE - language - ITeye论坛

    GAE+bottle+jinja2+beaker快速开发demo - Python,GAE - language - ITeye论坛     :GAE+bottle+jinja2+beaker快速开发 ...

随机推荐

  1. HDU 1284 钱币兑换问题(普通型 数量无限的母函数)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1284 钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    ...

  2. 【Node.js学习笔记】使用Gulp项目自动化构建工具

    刚接触node.js,对前端的一些东西还不是很清楚,据说Gulp这东西很强大,先来看看从网上抄的一段关于自动化构建的描述: 在为数众多的中小型软件作坊中,不存在自动化构建和发布工具.构建.交付准备环境 ...

  3. bootstrap-table页码ALL显示为NAN

    在github上查阅找到的解决办法: https://github.com/wenzhixin/bootstrap-table/issues/435 页面部分: data-page-list=&quo ...

  4. jquery固定位置浮动

    示例: <!DOCTYPE html> <html> <head> <title>test page</title> <script ...

  5. REST解惑

    本文是「架构风格:你真的懂REST吗?」的补充! REST全称是Representational State Transfer,目前普遍接受的中文翻译为「表述性状态转移」! 即使翻译过来了,你依然有一 ...

  6. Reading Notes : 180213 计算机的硬件构成与处理流程

    读书<计算机组成原理>,<鸟哥的Linux私房菜基础篇> 基本上接触过计算机的人,都多少知道计算机的具体构成,但是真正能讲明白的却说了很多,本节将讲解一下计算机的基本硬件构成和 ...

  7. 记录一次没有收集直方图优化器选择全表扫描导致CPU耗尽

    场景:数据库升级第二天,操作系统CPU使用率接近100%. 查看ash报告: 再看TOP SQL 具体SQL: select count(1) as chipinCount, sum(bets) as ...

  8. 《MySQL必知必会》--使用cmd登陆数据库

    数据库:保存有组织的数据的容器(通常是一个文件或一组文件). 表:某种特定类型数据的结构化清单. 模式:关于数据库和表的布局及特性的信息. 列:表中的一个字段.所有表都是由一个或多个列组成的. 数据类 ...

  9. python打印九九乘法表

    每种编程语言都可能会遇到编写“九九乘法表”的问题,用Python来处理也是很简单的,具体代码如下(基于Python3)): i = 1 while i <= 9: j = 1 while j & ...

  10. [转]MySQL常用字符串函数

    本文转载自:http://www.cnblogs.com/geaozhang/ 是最常用的的一种函数,在一个具体应用中通常会综合几个甚至几类函数来实现相应的应用: 1.LOWER(column|str ...