巫师3 狂猎(The Witcher 3: Wild Hunt )的游戏事件工作流
 
 
CD PROJEKT RED的主程序、Piotr Tomsinski
 
    在GDC2016的最后一天18号,CD PROJEKT 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,射击和格斗游戏也开始重视幕间的过场动画,这样游戏体也变得巨大。减少美术师的制作负荷,和让有高超技能的美术师认真的制作过场动画之间需要权衡。而如何保持这个平衡,推出高完成度游戏,也正是这次议会的主题。。
 
 
 
 

GDC2016 【巫师3 狂猎】的游戏事件工作流的更多相关文章

  1. 【转】巫师3:狂猎(The Witcher 3: Wild Hunt )的游戏事件工作流

    转自腾讯游戏开发者平台(GAD) CDPROJEKT RED的主程序.Piotr Tomsinski 在GDC2016的最后一天18号,CDPROJEKT RED的主程Piotr Tomsinski, ...

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

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

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

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

  4. 【转】MUD教程--巫师入门教程2

    简单的人物原则上只要有 set_name<名字> . combat_exp <经验>就行了,当然我们总得稍微多添一点了.inherit NPC;void create(){ s ...

  5. 从新建文件夹开始构建ShadowPlay Engine游戏引擎(4)

    本篇序言 这次博客更新距离上次的时间间隔变短了好多,因为最近硬是抽出了一大部分时间来进行引擎的开发.而且运气很好的是在写链表这种很"敏感"的的数据结构的时候并没有出现那种灾难性的后 ...

  6. GDC2016 [全境封锁],11个种类5个派系的敌人设计思路

    [汤姆克兰西:全境封锁],11个种类5个派系的敌人设计思路 实现[汤姆克兰西]射击RPG的AI开发   日文链接:http://game.watch.impress.co.jp/docs/news/2 ...

  7. 发布HTML5 RTS游戏-古代战争

    古代战争 游戏介绍 "古代战争"是一个2.5D即时战略游戏,使用了帝国时代2的素材,并参考了它的游戏设计和玩法. 游戏基于YEngine2D引擎开发,具备生产.建造.资源采集.战斗 ...

  8. 第1部分: 游戏引擎介绍, 渲染和构造3D世界

    原文作者:Jake Simpson译者: 向海Email:GameWorldChina@myway.com ---------------------------------------------- ...

  9. 事件对象event和计时器

    事件对象:event 属性: srcElement事件源对象 keyCode 键盘按键Ascii码 window方法: 定时器: 1)setTimeout();//n毫秒后执行一次 2)setInte ...

随机推荐

  1. 微博feed系统的推(push)模式和拉(pull)模式和时间分区拉模式架构探讨

    sns系统,微博系统都应用到了feed(每条微博或者sns里的新鲜事等我们称作feed)系统,不管是twitter.com或者国内的新浪微博,人人网等,在各种技术社区,技术大会上都在分享自己的feed ...

  2. Diskpart命令安装系统小结

    <diskpart命令安装系统小结> 今天给同学安装系统,win8改win7.同学是预装了win8的联想y480,分区表采用的是GPT格式,捣鼓了半天才知道.GPT格式是新式的分区格式,相 ...

  3. hdu 1150 Machine Schedule 最少点覆盖转化为最大匹配

    Machine Schedule Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...

  4. 【HTML5】Canvas和SVG的区别

    * SVG SVG 是一种使用 XML 描述 2D 图形的语言. SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的.您可以为某个元素附加 JavaScript 事件处理器. 在 ...

  5. Linux常用命令_(安装包管理)

    rpm命令: RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm -ivh rpm包安装rpm包rpm -Uvh rp ...

  6. js:语言精髓笔记3----语句

    JS语句分类:(注意语句都是有返回值的) 声明语句: 变量声明语句: 标签声明语句: 函数声明语句: 表达式语句:(表达式加分号) 变量赋值语句:具有声明一个变量的隐式效果: 函数调用语句; 属性赋值 ...

  7. PDA手持终端实现零售行业商场和超市仓储管理和销售开单自动化和系统化

    近几年,连锁药店得到了迅速扩张,由于药品种类过于繁杂.客户分散票据过多,急剧扩张之后的连锁药店企业在信息流处理上遇到了各种各样的问题 到现在已经有3000多家连锁药房,需要采购的正规药品就有数万个品种 ...

  8. DP URAL 1244 Gentlemen

    题目传送门 /* 题意:已知丢失若干卡片后剩余的总体积,并知道原来所有卡片的各自的体积,问丢失的卡片的id DP递推:首先从丢失的卡片的总体积考虑,dp[i] 代表体积为i的方案数,从dp[0] = ...

  9. POJ2823 Sliding Window(单调队列)

    题目要输出一个序列各个长度k的连续子序列的最大值最小值. 多次RMQ的算法也是能过的,不过单调队列O(n). 这题,队列存元素值以及元素下标,队尾出队维护单调性然后入队,队首出队保持新元素下标与队首元 ...

  10. JSON转换为数组 但读取JSON的顺序目前没法保证

    var json = {a : 1, b : 2, c: 3}; var jsonArr = []; for (i in json){ var wrap = []; wrap[0] = i; wrap ...