转自腾讯游戏开发者平台(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. mac os 隐藏文件夹的小技巧

    无论是谁,电脑里总有些不想让人看到的内容,或是私密日记,或是某播下载的奇怪东西,对于这些东西当然是不想被人看到的.怎么办呢? 有人说了几种方法: 1. 改名字: 2. 把文件夹做成加密DMG: 3. ...

  2. Linux下的压缩解压缩命令

    *.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— *.gz ...

  3. WebApiClient.AOT.dll 调用api地址 -> 调用方法

    优点:简化api调用过程,WebApiClient.AOT.dll中的IHttpApi接口 缺点:只适用于内部服务之间的调用(没有验证过程) 1.继承IHttpAPi接口 public interfa ...

  4. 如何利用Linux去油管下载带字幕的优质英文资料提升英文听力和词汇量

    非常方便地从油管下载你需要的任何英文视频资料,并且带字幕,方便你学习某个特定领域的词汇: [step1,Centos6系统安装youtbe-dl下载带英文字幕的视频] 1.首先需要安装youtube- ...

  5. Java 8 – Map排序

    前提 Map是Java中最常用的集合类之一,这里整理了关于HashMap的排序 (关于List的排序,请查看Collections.sort()的doc或源码). 将无序的HashMap借助Strea ...

  6. npm安装包时 --save 和 --save-dev 的区别

    以npm 安装 vue为例 1.npm install vue: 会把vue包安装到node_modules目录中: 不会修改package.json文件: 之后运行npm install命令时,不会 ...

  7. PHP使用阿里大鱼发送短信验证

    目前,基本上所有的网站注册都要求手机绑定,并通过下发短信验证码方式验证手机的真实性,提高了用户的真实性.但是一般企业单独申请短信行业通道都比较困难,因此选择一家信誉好,稳定性.及时性强的第三方短信通道 ...

  8. django-models 数据库取值

    django.shortcuts import render,HttpResponse from app01.models import * # Create your views here. def ...

  9. 几个简单if程序的细节比较与加法程序设计

    关于简单的if判断语句的不同写法: 输出0-9十个整数: 第一个程序: #include<stdio.h> #include<stdlib.h> int main() { ; ...

  10. 如何配置 SpaceVim

    本文将系统地介绍如何配置 SpaceVim,配置 SpaceVim 主要包括以下几个内容: 设置 SpaceVim 选项 启动/禁用模块 添加自定义插件 添加自定义按键映射以及插件配置 设置Space ...