巫师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. async/await 异步编程

    前言 最近在学习Web Api框架的时候接触到了async/await,这个特性是.NET 4.5引入的,由于之前对于异步编程不是很了解,所以花费了一些时间学习一下相关的知识,并整理成这篇博客,如果在 ...

  2. DDL, DML不是所有SQL都是可以自动回滚的

    因为DDL没有事务性,所以DDL不能回滚. 要实现自动回滚.(begin,commit,rollback),则SQL语句中只能包括DML. 这样,自动化发布就会受限规范格式. 故而,一刀切的办法是,假 ...

  3. STL 常见操作

    stl的操作不是很熟练, 记录一下 1.vector: 排序: sort(vc.begin(),vc.end()); 去重: sort(vc.begin(),vc.end()); num.erase( ...

  4. 计算字符串相似度算法——Levenshtein

    转自:http://wdhdmx.iteye.com/blog/1343856 0.这个算法实现起来很简单 1.百度百科介绍: Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个 ...

  5. 【JNI】C分支

    public class MainActivity extends Activity { static{ System.loadLibrary("hello"); } @Overr ...

  6. linux中使用top获取进程的资源占用信息

    在linux中使用top获取进程的资源占用信息: Cpu(s):  1.0%us,  0.0%sy,  0.0%ni, 98.3%id,  0.7%wa,  0.0%hi,  0.0%si,  0.0 ...

  7. xcode命令行编译时:codesign命令,抛出“User interaction is not allowed.”异常 的处理

    之前正常运行的hudson iOS编译服务器slave节点,忽然出现编译失败.发现原因有2个: 第一个原因是编译机上用来签名的用户帐号过期,第二个原因是操作系统和xCode升级造成的. 对于第一个,重 ...

  8. SU Demos-02Filtering-03Sudipfilt

    不足之处,欢迎各位博友批评指正. 进入目录,依照惯例先看Readme, 第一个脚本, 下面是运行结果: 第二个脚本: 运行结果如下: 第三个脚本: 运行结果:

  9. ubuntu 重置密码

      背景:在登陆ubuntu之后,按Ctr+Alt+F1进入控制台时,需要登陆,一时忘了密码... 参考:http://www.cnblogs.com/relaxgirl/p/3179507.html ...

  10. flst与fitem命令是这么用的

    k,94,75.69947,44.09817,-40 k,95,50.9349,44.01963,-40 k,96,37.83799,45.04814,-40 k,97,15.1304,48.2934 ...