【 SIGGRAPH 】【最终幻想XV】的战斗场景实时演示的要点解说
原文:西川善司
http://www.4gamer.net/games/999/G999902/20160730004/
SIGGRAPH并不只是非实时的CG的学术会议。从2010年的 SIGGRAPH 2010开始,也有了聚焦实时渲染技术的称作【 Real-Time Live! 】的活动。
在仅有的5分钟时间里,一边在实际演示的机器上运行程序,一边由演讲者进行解说,这个是R eal-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日的游戏发售。

转载于:https://www.cnblogs.com/TracePlus/p/5724449.html

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

  1. 实时录制视频,实时去除人_录制实时演示,第2部分:软件设置

    实时录制视频,实时去除人 如果您是进行现场会议的团队的一员,则有可能要录制发言人的演讲并在网上发布. 幸运的是,这要归功于开源软件和现成的硬件,这在今天是容易且相对便宜的. 有关录制实时演示文稿的本系 ...

  2. 语音识别方案 - 联想语音团队多场景实时语音文字转换方案

    [本文转载自联想乐语音论坛] 语音技术一直是人工智能的重要领域之一,其应用也日益广泛.语音技术本身也包括许多细分领域,如远场语音识别.副语言语音属性.说话人日志.声纹识别防欺骗攻击和零资源TTS等. ...

  3. lcn场景模拟演示_演示家庭影院的十大电影场景

    lcn场景模拟演示 You've laid the last foot of wire, tested all the inputs, and ran your sound checks. Now i ...

  4. 基于RGB-D的场景实时三维重建综述

    主要参考这篇综述:[State of the Art on 3D Reconstruction with RGB-D Cameras] 这篇报告阐述了基于RGB-D的场景三维重建在算法概念和不同应用场 ...

  5. php+mysql+echarts 温度实时演示

    php+mysql+echarts 温度实时演示 记录一次小项目 简介 代码部分 数据库部分 运行成功后 结语 记录一次小项目 第一次使用CSDN编辑器,排版不太合理,请大家见谅. 简介 最近跟着同学 ...

  6. 用于道路场景实时准确语义分割的深度双分辨率网络

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 小白导读 论文是学术研究的精华和未来发展的明灯.小白决心每天为大家 ...

  7. 【realtime】红帽 RedHat Linux实时内核配置要点全面分析

    CentOS Linux实时性配置要点 rtoax 2021年2月 1. 概要 1.1. 实时性补丁 补丁地址:CentOS 7 - RealTime for x86_64: RealTime: ke ...

  8. 基于嵌入式的室内静态场景实时重建系统

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 引导语:本文为"3D视觉创新应用(三维重建)竞赛"作品集系列之一,该作品由来自杭州 ...

  9. 用UE4创造开放世界:Kite 实时演示

    这是2015年虚幻4的一篇演讲.他们在5个月内完成了一个单机的开放世界Demo,全部素材使用摄影测量法制作,渲染方面使用了一些新技术,表现效果非常真实.表示部分技术会逐步移植到虚幻引擎中. Kite宣 ...

最新文章

  1. 17-chmod命令
  2. python 的类装饰器
  3. wince驱动异常调试方法(作者:wogoyixikexie@gliet)
  4. 机器学习基石HOW部分(2)
  5. 教你玩转CSS 居中
  6. 【转】DICOM医学图像处理:开源库mDCM与DCMTK的比較分析(一),JPEG无损压缩DCM图像
  7. discusz 判断当前页是门户还是论坛
  8. stl vector 函数_vector :: clear()函数,以及C ++ STL中的示例
  9. opencv android模版匹配,Opencv for android 模板匹配
  10. python logger_Python:logging 的巧妙设计!
  11. __weak 修饰符
  12. 模型保存的方法-----仅保存权重
  13. JavaScript:堆栈溢出内存泄漏
  14. LINUX SAN 500G重新分区、格式化,后成功恢复数据90%
  15. 214. Shortest Palindrome
  16. 三维空间点到原点距离python_如何计算三维空间中两点之间的距离?
  17. JAVASE整理知识点
  18. 连接防火墙/路由器的几种方式
  19. 计算机系统基础书记,【盘点】开学第一周:学风浓 教风严 校风正
  20. 激活Windows系统的方式

热门文章

  1. 计算机没有游戏扫雷,系统没有扫雷游戏怎么办?
  2. 无线自组织网的通信协议栈
  3. 嵌入式Linux(一):东山派壹号 ubuntu开发环境配置
  4. bShare分享-分享到微信、微博、QQ
  5. java使用ByteBuffer.allocateDirect分配的堆外内存大小查看方法
  6. T31Day2需求分析与设计
  7. 准备蓝桥杯--dyx--字母图形
  8. qemu虚拟机模拟固件环境搭建
  9. nohup 命令的开启和关闭
  10. linux删除任务进程命令bkill,​linux 进程和计划任务管理