【SIGGRAPH】【最终幻想XV】的战斗场景实时演示的要点解说

原文:西川善司

http://www.4gamer.net/games/999/G999902/20160730004/

SIGGRAPH并不只是非实时的CG的学术会议。从2010年的SIGGRAPH 2010开始,也有了聚焦实时渲染技术的称作【Real-Time Live!】的活动。

在仅有的5分钟时间里,一边在实际演示的机器上运行程序,一边由演讲者进行解说,这个是Real-Time Live!活动所独有的特点。不光主题是实时渲染,连活动自身也是在实时的进行。

在这次的Real-Time Live!上,很罕见的日本的SQUARE ENIX的【最终幻想XV】的开发团队也参加了,进行了【Real-Time Technologies of FINAL FANTASY XV Battles】(最终幻想XV战斗的实时技术)的演讲。

进行演讲的,是第2商务部的高级程序员長谷川 勇氏和技术推进部的首席AI研发三宅陽一郎氏。

Real-Time Live!对应的战斗场景

负责演讲的長谷川 勇氏(左 SE 第2BD的高级程序员)和三宅陽一郎氏(右,SE技术推进部 首席AI研发)

Agni‘s Philosophy

SQUARE ENIX在SIGGRAPH 2012的Real-Time Live!上,发布了【次世代的最终幻想目标图形的演示】【Agni‘s Philosophy】,并得到了好评。

而这次FFXV开放团队在Real-Time Live!上的登场,也是把4年前提示的概念在实际游戏里运用结果的报告,所以得到了游戏开发者很高的关注。

这里得到了FFXV开发组发布的影像内容,特别是真机上的数字录像的许可,这里对影像展示的概要做解说。首先希望先看下这个影像。因为演示机器输出的影像画质也非常高,光是看着就很有意思。

当然这个影像还是在开放过程中游戏,产品版还可以得到进一步的改善。

【Real-Time Technologies of FINAL FANTASY XV Battles】的演示

Real-Time Live!上演示是真机上演示的直接录像的视频。一部分场景帧率会下降,是因为输出的是开发用的调试画面。另外,一部分表现和现在的最新版比要旧,残留了一部分没有调整到的部分。

而且,虽然本作是在PlayStation 4和Xbox One上发售的,但演示使用的是开发用的Windows PC。演示机的硬件规格,CPU是【Core i7-5820K】,GPU是【GeForce GTX 980 Ti】,内存是PC4-21300 DDR4-SDRAM 8GBx4。

主人公们的服装使用实时布料模拟

FFXV是开放世界类型的RPG,游戏舞台里,有怪物栖息也有魔法存在,是幻想要素很强的世界。但是在形成世界的物理法则上,和我们居住的世界设定得极为相近。关于这点,在以前发表的FFXV的视觉特效解说里也提及了。FFXV的图形主题是【有说服力的照片真实】,再现真实度上,开发团队激起了相当大热情。

视觉特效介绍部分的画面。即便是在魔法和怪物存在的世界,火与水的物理现象与现实世界也没有变化,这种表现是就FFXV视觉所追求的。

那么,Real-Time Live!里公开的场景,是从主人公Noctis和他的伙伴们探索湖边草原的场景开始的。首先请先关注主人公行走和跑动的动画。

行走和跑动的表现上,对应坐标移动来播放固定的步行动画在游戏中并不少见。但FFXV的步行动画看起来非常的自然。

根据开发团队所讲,FFXV的角色表现非常讲究【接地感】。虽然在游戏内部的处理上,就是【配合坐标移动来显示步行动画】,但从实际的运动表现上看,左右脚的交互着地,双脚踩踏着地面前进的感觉,很好的传达过来。

脚踩踏地面向前移动的表现

衣服的运动也要关注。跑步动作时飘动的不光是衣服的顶端,袖口打开的部分也会运动。还有静止时也是,可以注意到运动的余韵还残留在衣服的运动上。

最重要的与身体接触的部分,向飘动着的前端部分很流程的推移着,可以很好的表现【穿着衣服】的影像也很厉害

这些运动,是实时的用运动弹簧和基于骨骼的布料模拟来进行生成的。通过这个方法,Noctis上衣下垂的带子,在大腿向上抬起时被踢起,再现了飘动的动作。服装之间接触的表现也制作了。

除此之外,主人公突然开始运动时,队友不是立刻就跟着跑动,而是先移动头部用视线追踪,然后再转移到跑动动作上也是关注点。

虽然这次的Demo里,没有各个角色AI之间动画的相互协作,但接近岩石手会自动的放在上面,行进方向的草木,也会自动的用手推开。角色自身和游戏世界自发的交互表现上印象深刻。

支撑FFXV自然景观的技术

主人公一行沿着水边前进,脚踩着水面时,以那为起点展现出波纹的表现也被绘制了。而且在成品版里,还会激起水花。

水边的景观。反射了周围的情景。

水面不光是周围情景,连主人们的角色运动也被反射了。

远处的反射,使用的是Cube环境贴图制作,而近景的反射,使用的是局部Ray Tracing的屏幕坐标系后处理特效【屏幕空间反射】(Screen Space Reflection,SSR)来实现。近景的反射上,有瞬间一部分角色轮廓被漏掉的情况,这个会在成品版里通过另外设定局部的Cube环境贴图来进行改善。

进入水里的Noctis,不光是自己的影子,睡眠也镜像的反射了角色。

在演示里,相机朝向天空变得逆光。这里要关注的是天空和云的绘制。

FFXV的天空,并不是【美术师绘制的纹理图像】。而是根据【太阳在天空的位置】,以及在大气中阳光的观测点(相机),一边模拟散乱空气中传递,一边实时的生成天气的颜色。

FFXV的游戏引擎【Luminous Studio】里,输入时间的话,就会对应自动的生成天气。在FFXV里,日出和日落时接近地平线附近变红,正午时是深蓝的天空,也是天空模拟得到的结果。

天气是天空模拟自动生成的。晚霞时的红光,正午时的清空,也是通过计算来表现的。

即便是无意中看到的云彩,也是需要介绍的。

动画的空中漂浮的云,也不是美术师描绘的画像,而是程序化生成的。

FFXV的云,是通过7层的噪声函数变化,用算法来生成的。通过这个方法,实现了volumetric(有体积)那样的云的分布。

另外,云也会对应时间的流逝,改变种子参数,随时改变姿态。这种变化,也不是预先生成的动画,而是实时生成的。

但是,volumetric那样的数据并不能直接作为CG来绘制,而是要从实际视点位置向定义云密度分布的结构体里投射射线(Ray),对应每根射线取得的云的密度值,决定云的颜色来渲染。

而且还会考虑天空颜色和地表反射的光,以及太阳和月亮的直接光来进行光照。因此,接近太阳和月亮的云,会被照亮,云的上层反映天空的青色,云的下层多少反映地面的颜色。

还有就是,因为云是多层形成的,可以看到下层的云密度高的部分变暗。FFXV里也是这样进行计算,云会生成自阴影。而且,云的轮廓也反映到生成阴影的阴影贴图(shadow map)里,地表上也有淡淡的云影。

接下来的演示影像里,启动了调试模式,时间变快显示出了天空中太阳的运动。太阳运动的话,游戏世界的影子也会向太阳位置的反方向运动,天变黑的时候,背影也变长了。

而且,天空从晴天状态向雨天状态切换的话,游戏世界下雨而全身湿透了。

FFXV采用了实时的天候系统,雨天时会产生水洼,角色也会变得湿润。

变成雨天的话,坑洼的地方积水产生水洼,主人公们的衣服,也会增加黑色成为湿润的状态。虽然影像里不明显,但不光雨滴溅在地面上会产生小的波纹,也会和角色碰撞反弹。

突然下雨时,有角色介意衣服被打湿,有角色仰望天空,让人很欣慰。

对下雨角色们的反应情况

战斗场景视觉值得一看的地方

继续看影像。天气返回晴天,现在调试画面里出现了多个怪物(Garula),转移到了战斗场景里。

像是巨大水牛的怪物【Garula】出现

到这里就是实时动作的FFXV的战斗系统演示。特别是要注意看下主人公施放火焰魔法以后的描绘。

魔法产生的火焰,不光是给予了敌人伤害,也会在游戏世界的草地上燃烧蔓延,随着草地上火势的增加,怪物身体也被火势蔓延到,可以看到耐久力变低的怪物被烧黑后死亡。

另外,这次演示里虽然没有,但火也会蔓延到小屋哪里,最后屋子被破坏。

施放火焰魔法,草原被燃烧,怪物身体也被火蔓延到

这里,SE的员工再次操作调试画面,地表变成绿色,在画面中心打开了黑洞。这里帧率大幅大幅降低,因为这个调试画面是非常沉重的。

这里显示的是【导航网格】来表示游戏世界是否可以移动的信息。

绘制游戏世界的地形数据,是多边形来构成的,把这个绘制用的多边形数据,另外用来作为角色移动时参考的地形数据,在游戏方面作为他用的情况也很常见。这里把参考的地形数据中连接的三角形合并构筑成的多边形网格就是导航网格了。这里调试画面里看到的绿色领域,显示的是可以移动的地形。

另外黑洞的区域,就是火焰燃烧的部分,表示在导航网格上写入【不可移动】。FFXV里,这个数据的变化AI的控制也会带来变化。

绿色的区域是可以移动的,黑色区域是不可以移动的

邻接变黑的不可以移动区域的主人公和怪物,会根据AI积极的远离哪里。总之,Demo这个部分可以看到AI会主动的对应环境变化来采取行动。

接下来,主人公发动冰魔法火就灭了,着火时无法移动的区域,也再次变得可以移动。因为冰魔法有让敌人的运动变迟缓的效果,可以看到怪物的动作也迟钝了。

Noctis发动冰魔法,附近结冰了

演示里,虽然再次放火变成了燃烧的原野,但这次调试画面里把天气变成雨天。在影像里很难看出,但草原上燃烧的火焰被雨水浇灭了。

魔法的火与冰,天气的雨的情况,FFXV的游戏世界里,各种素材也和现实世界那样,拥有着强弱关系。

雨中发动火焰魔法,威力降低了

动画最后,主人公使用召唤魔法招出了巨人【泰坦】。从远处出现的泰坦,摇晃着山一样的巨大身躯跑过来,向地面的怪物用愤怒直拳招呼上。

这里是享受动态战斗表演的部分,另外也有其他值得一看的内容。

召唤魔法呼出的突破云际的巨人泰坦。拳头砸在地面上,地面隆起战场上的怪物全灭了。

这里远方出现的泰坦,可以很好的在主人公们的游戏世界出现也是要点。

FFXV的召唤魔法,并不是简单的播放CG视频,泰坦是和主人公们出现在同一个游戏世界,相机也是从出现场所向战斗区域流畅的移动。不会有泰坦读取和相机切换的影像卡顿。

最重要的是,比主人公更加巨大的泰坦是在同样的比例尺下,在同一个游戏世界里存在这点上。

另外,认真看视频的话,泰坦在向主人公哪里跑动过程中,有脚插入到岩石里的情况。这个是因为是开发中版本的问题,最终版会很好的跨过岩石。

实时演示让对游戏的期待更高

这次Real-Time live!展示的是FFXV的游戏图形要素,当然这只是一部分而已,要是说【把近代游戏图形技术全部加入】的话,还有很多值得一看的图形和各种技术。

SIGGRAPH 2016上,虽然进行全部6个FFXV相关技术会议,但这些都是非常有兴趣的内容,接下来也会跟踪报答的。

喜欢动作游戏而没怎么玩过最终幻想系列的笔者,也开始期待2016年9月30日的游戏发售。

时间: 2024-10-15 04:31:20

【SIGGRAPH】【最终幻想XV】的战斗场景实时演示的要点解说的相关文章

《最终幻想XV》中角色AI的意识决策系统解析

http://gad.qq.com/article/detail/7155321

【最终幻想15 国王之剑】制作介绍1:不再是游戏动画,而是“电影”制作

日文链接:http://cgworld.jp/interview/201606-kgffxv-01intro.html [最终幻想]系列在全世界有着累计销售1亿1500万份的成绩.用与最新的游戏[最终幻想15(FFXV)]同样的世界,事件,角色来描绘的长篇剧场动画[最终幻想15 国王之剑]公开了.包括史克威尔艾尼克斯的第2商务部在内,约50个国内外的强力工作室协作的前作未有的挑战.来看看这些的幕后信息吧. [最终幻想15 国王之剑]的预告视频 STRATEGY:不是游戏动画,而是“电影”制作 [

一个实用的实时毛发渲染及着色方法

一个实用的实时毛发渲染及着色方法 Thorsten scheuermann ATI Resarch,Inc. 翻译:潘曦 (译文里的(pancy:XXX)为译者注) 介绍: 我们提出了一个使用多边形模型的实时毛发渲染算法,并且将其应用于今年SIGGRAPH动画节上的一个实时动画<ruby:The Double Cross>上面.该毛发渲染算法是基于Kajiya-Kay 毛发渲染模型的算法,但是在其之上添加了一个实时的接近现实高光的镜面反射效果(pancy:原始算法可能没有考虑到头发的高光只计算

实时数据显示

实时数据显示--SignalR实例演示 近段时间,有实现一个看板的功能,就是用户更新信息时,即是对数据库的数据进行插入,更新,或是删除时,在墙上的屏幕的数据不需要人为去刷新,用户就能看到更新后的数据. 实现此功能,Insus.NET使用SignalR的技术来实现.下面的实例中,虽然不是实际的数据,但是实现过程是一样的,现在分享给大家学习学习...... 在项目中安装SignalR: 上图中,把绿色对钩的组件均选择安装. 安装完成,你看到一个readme.txt文件: 此你应该知道它在说什么.看了

架构设计:系统间通信(27)——其他消息中间件及场景应用(上)

1.概述 目前业界有很多消息中间件可供大家选择,主要分为两类:需要付费的商业软件和开源共享的非商业软件.对于商业软件您和您的团队可以选择IBM WebSphere集成的MQ功能,也可以选择Oracle WebLogic集成的MQ功能.本文首先介绍除Apache ActiveMQ以外的两款开源共享的消息中间件产品,然后列举三个实际的业务常见,为读者介绍如何在这些实际业务中使用消息中间件解决问题. 2.RabbitMQ及特性 RabbitMQ基于Erlang语言开发和运行.它与Apache Acti

Web Api其中的PUT功能演示

Insus.NET这几天均在学习Web API知识,并练习.怎样获取数据,提交数据或是保存数据.你可以温习一下<Post model至Web Api创建或是保存数据>http://www.cnblogs.com/insus/p/4343833.html 和<添加JSON Data到已经存在的JSON文件中>http://www.cnblogs.com/insus/p/4344547.html ,这均是把json序列化数据保存至文件中. 即然有对数据获取,提交保存,那当然有更新数据的

使用Python操作Redis应用场景

1. 安装pyredis 首先安装pip 1 2 3 4 5 6 7 8 <SHELL># apt-get install python-pip ...... <SHELL># pip install --proxy=http://172.1.2.6:8080 redis Downloading redis-2.9.1.tar.gz (62kB): 62kB downloaded Running setup.py (path:/tmp/pip_build_root/redis/se

绍兴银行携手数澜,以实时数据服务能力助业务加速

近日,继宁波银行之后,国内又一家商业银行--绍兴银行,与数澜科技签署合作协议,将共同打造「实时数据平台」,基于大数据平台的流计算引擎,高效支持银行海量数据计算,从业务和性能要求上满足绍兴银行未来发展. 绍兴银行(原名:绍兴市商业银行)成立于 1997 年 12 月 31 日,是一家具有一级法人资格的地方性股份制商业银行.截止 2018 年末,股本金超 23 亿元,资产规模 1075 亿元,职工 2000 多人,内设 18 个管理部门,下辖 77 家分支行. 随着绍兴银行线上业务应用场景不断丰富,

现场代码演示软件&quot;Snippetty&quot;

Mac平台上有一款功能强大的现场代码演示软件"Snippetty".Snippetty Mac版在实时演示期间,只要您需要下一个演示代码块,就可以单击其托盘图标.你永远不会被卡住,你的演示总是像排练一样工作.有需要的朋友,点击进入这里,下载体验全部Snippetty Mac版功能! 部分功能 1.片段为MARKDOWN花时间准备您的演示作为降价脚本可以通过多种方式帮助您.首先,你有一份关于你将要做什么的书面记录,一旦你交付了演示 - 你做了什么.你有一些东西需要排练,如果你将来需要运行