合金装备V:幻痛 制作特辑
资料原文出自日版CGWORLD2015年10月号
在【合金装备4(Metal Gear Solid IV)】7年后,序章作品【合金装备5 :原爆点 (Metal Gear Solid V: Ground Zeroes)】1年半后,合金装备(MGS)系列的最新作【合金装备5 幻痛(METAL GEAR SOLID V: THE PHANTOM PAIN)】发售了。游戏上做最新的挑战,一直走在这个时代的游戏图形最前端的开发团队,在本作中是以什么为目标,为了这个目标加入了何种技术,本特集中对此做详细的介绍。
本特辑目录:
概述 OVERVIEW
以“新世代和合金装备”为目标的游戏
核心技术 KEY TECHNOLOGY
① 基于物理渲染和线性工作流程
② 3D 图像捕捉
制作 MAKING
① 背景和光照 (BACKGROUND & LIGHTING)
② 机械和武器(MECHA & WEAPON)
③ 角色(CHARACTER)
④ 运动(MOTION)
⑤ 特效和模拟(EFFECT & SIMULATION)
⑥ 演示(DEMO)
以“新世代的合金装备”为目标的游戏
本作作为MSG系列正式使用内置的游戏引擎FOX ENGINE开发而引发话题。
在具体的技术解说前,先接触一下本作的开发概念和作为技术基础的FOX ENGINE的概要。
被提出的概念与实现这些的FOX ENGINE
作为合金装备系列最新作的【合金装备5:幻痛】,本作有着新世代合金装备的美誉,广阔的开发世界为核心的非常高自由度的高级战略成为有趣的内容。本作的特征还有,被作为开发组负责的任务【开放世界】,【时间&天候变化】,【照片真实】,【多平台对应】,一个个的难度都非常高。为了实现这些任务,新世代的游戏引擎 FOX ENGINE被开发了。
“通过以前方法的保留,技术的基础提升,来实现更高度的游戏事业,因为这样考虑而开始FOX ENGINE的开发”。通过引进欧美的开发风格来提高开发效率,更短的迭代来增加游戏的乐趣。成为了合金装备5的开发概念,以及引擎的设计思想的根基。
关于之前举例的任务是如何达成的,在本特辑详细介绍前,我想先稍微接触一些。首先是【开放世界】,没有尽头的广阔地域的制作,是通过FOX ENGINE实现的Level Editor来制作地形,配置资源实现高效化,为了无缝地图的读取,实现了自己的内存管理系统。
【时间&天候变化】必须要有真实时间的光照,导入了基于物理渲染(PBR)和线性工作流,实现了在各种光照环境下也可以毫无破绽的画面绘制。还有PBR的导入方面,减少资源(Asset)制作的Try&Error的意义也很大。然后【照片真实】的资源,在实现极为真实的角色造型方面,3D扫描技术有很大的贡献,为了模型和人物全方位同时摄影,在公司内部搭设了器材环境。
还有,本作强调了【多平台的对应】,PS4/PS3/Xbox One/Xbox 360/PC 的5个平台同时发售。开发上是基于旧世代的机器来推进,今世代机硬件规格有余力的话就追加更丰富的表现。玩法(GamePlay)方面是以PS3和PS4不能有差别为前提的。
FOX ENGINE的开发概念
FOX ENGINE是以“把合金装备5最想要的内容用最优的方式来实现”为基础的,选择最适合的技术来实现。而功能通过是以模块为单位来取舍选择的同时,对应5个平台做发布的。还有,并不是集成开发环境的引擎,成为了DCC工具和中间键也要并用的资源制作流程。“并不是什么都要用引擎来做,而是开发上最好的方式来做”的两种流程为方针,例如构筑在Maya和Softimage上设定格子的材质预览环境,以及可以一键在引擎Runtime上预览。
其中,因为和游戏平衡直接相关的配置数据不能根据硬件变化,最后如何加入到旧世代机种版很费劲,要以1KB的极限等级来调整。
本作是开放世界的规模很大的游戏可能会觉得是把世界切成很多块来做的,但绝对不是这样,而是把资源极端的最优化,构筑出有惊人细节的世界。正因为是自制的引擎,可以说是在负责的最大限度尽力调整出可能表现的高品质。“谋求以往游戏都没有的最优化”从CG艺术指导哪里听到的出极为众的最优化的信息。这里虽然遗憾并不能全部介绍,不过的确是一条与众不同的道路。 “用PS4制作的开放世界,而且可以1080p/60fp来运行,真的是非常的自豪。另外PS3和Xbox 360方面也积累了很多的最优化,也作出了可以满足的表现效果”。各个读者,希望可以满意本篇特辑的同时,去玩一下合金装备5这款游戏,直接的接触下细致描绘的世界。
开放世界
时间&天气变化
多平台
照片真实
动态的处理负荷管理
游戏时遇到很危机情况时(发现敌人展开枪击战的时候),游戏的处理也是很严重的。这个情况为了维持FPS保证游戏体验,实现了在游戏中把处理负荷高的内容按预先指定的优先度来动态的降低绘制品质的结构。这个功能在运行实时,可以显示各种性能信息和进行调试。图A是GPU性能显示功能打开的状态。把数帧的结果的实际数值一起用图表实时的来显示。 图B是扩大调试显示部分。基于这个信息,美术师就可以不超过帧率和内存预算来进行调整了。
这里是FOX ENGINE的技术介绍视频
基于物理渲染和线性工作流
为了把有时间变化的开发世界有说服力的描写,本作必须采用基于物理渲染(PBR), 这里就是关于FOX ENGINE的PBR系统的概要。
KEY TECH 1
PBR & LINEAR WORKFLOW
成为本作视觉核心的物理正确的渲染
基于物理的渲染(Physically Based Rendering :PBR),成为了本世代游戏引擎标准的概念。PBR中是物理和数学的整合性为核心,例如,物体表面的入射光与通过反射的放射光的放射光的能量总和是相等的计算。借此游戏方面的优点也很明显。被太阳的强光照射的物体也好,被人工的弱光照射的物体也好,在相同颜色空间内都可以自然的绘制,实现了有说服力的开放世界的视觉。把通过PBR得到的光照结果,通过适当的虚拟曝光值控制在显示器上显示的基本结构。
本作的游戏引擎FOX ENGINE也全面的采用了这个想法,从美术资源的制作到游戏内视觉的构筑,全部要素都是基于物理正确光照和物理参数来制作的。为了让通过这个环境物体对象可以被正确绘制,物理正确的设定材质,以及线性空间的光照处理为前提的Texture,总之线性空间的Texture也是必须的。在制作这些的时候,本作的开发组进行了各种经验技术的构筑。
PBR系统的构筑
通过身边环境的渲染开始PBR研究
因为游戏引擎是以实时渲染为前提的,构筑PBR系统的几个部分也需要大胆的近似处理。这里游戏引擎必须要集中自己的方法。本作的开发团队参考大体上每天都可以看到的公司会议室,首先通过把这个场景在FOX ENGINE上完整再现来进行PBR系统的构筑。实际的照片(图A)和引擎上的绘制结果(图B)的比较,可以看出得到了很高的精度。
以PBR为基础进行开发上是技术美术方面成为基础,把调整后的典型质感的材质汇总成预设库(图A)。拥有各种反射参数的材质,是通过在暗室里把实际的样品打光来观察(图B),再进行制作。各个材质也包含根据不同的照光角度的质感变化做的调整(图C)。图D是摄影素材,图E是FOX ENGINE的绘制结果。
线性Texture的制作
废弃了光照影响的“生(Raw)”的素材
PBR的前提是在线性空间进行光照,要得到正确的光照结果,必须要废弃了光照影响的Texture(图A)。为了制作,本作的开发团队设置了专门的摄影房间(图B), 进行各种素材的摄影。摄影时使用了专门的灰度卡(图C),调整Tone Curve在与相同曝光下的摄影素材相符合,来做成线性素材。凹凸的影响产生阴影的部分是通过手工作业来去除光的影像(图E)。
用粗糙度制作质感表现
依赖视线方向的Roughness(粗糙)参数
成为表现有说服力的丰富多彩材质时的重要参数的,是表现物质表面微小凹凸的Roughness参数(图A)。Roughness是给予直接反射光(Sepcular)的扩散强度影响的参数,一边移动光源一边参考摄影的样品来决定的。依赖视线方向的微小凹凸的影响的变化,外观的反射的敏锐变化的现象也作为引擎的Shader功能实现了。
渲染系统的基础
保证品质和速度的延迟渲染(Deferred Rendering)
延迟渲染是把场景中的每个材质参数分别输出到各个Buffer(GBuffer)后,通过后处理的方式进行实际的光照处理(延迟光照),在高速处理大量光源的复杂光照的同时,也必须把使用的参数节省到最低限度。图中是实际引擎使用的一部分参数的显示。图A 渲染结果,图B Albedo,图C Specular,图D Normal,图E Fresnel
3D Photo Scan
为了利用基于物理的渲染,3D资源用什么程度的真实来制作。这个问题的解答就是3D扫描。在各种方法中,本作品是集中在其中的一种方法里,并彻底的深入研究。
KEY TECH 2
3D PHOTO SCAN
试行错误最后得到的最佳的素材制作方法
本作的开发团队,为了确定使用FOX ENGINE的本作的美术工作流,在项目的初期阶段开始就讨论了3D扫描技术的导入。当时也实验了激光扫描(Laser Scanner ),因为扫描人物时拍摄物会运动以及数据精度低的缘故而放弃了,其他方法也在摸索中,最后到了基于照片的3D扫描技术。
通过照片生成3D模型的工具在前作合金装备4(METAL GEAR SOLID 4)的制作中也有一部分使用的经验,那时的校正非常麻烦问题也很多,后面就没再考虑使用。但是,使用了 Agisoft PhotoScan的新软件,这些问题都能解决了,感觉“想要的结果可以高速的输出”。推进来全面的导入了,从静止物体到人物,通过摄影方法增加可以3D扫描对象的同时,提升了这个的摄影精度。这样可以把更广泛的对象用高精度来扫描,同时也可以得到高精度的线性Texture,成功的构筑了同时保证品质和效果的工作流。
使用Agisoft PhotoScan的3D模型制作
宽泛对象精密的3D模型化的解决方案
本作的3D资源制作中,全面使用了基于照片的3D扫描解决方案Agisoft PhotoScan。PhotoScan是基于通过把对象用各个角度摄影的多张图像(图A),大体上全自动的生成高精度的点云,并输出为3D模型(图B)。特别是石头等静止物体的有非常高的效果。并使用Mudbox做了一些细微的调整(图D)。
使用转盘进行小物品的摄影和模型化
在使用PhotoScan进行大量的静止物品摄影时,固定相机和转盘组合,采用了旋转对象物体来摄影的方法。例如,游戏里登场的炸弹的3D模型也是使用手工制作的复制品(图B)来扫描的。这种方式对于金属物品这种有着复杂反射的物质并不适用,不过对形状上的正确3D模型化有很大帮助(图B)。海螺一类的物体也可以正确扫描(图C),并取得线性Texture(图D)。
彻底使用PhotoScan的方法
可以没有时间延迟的进行全方位摄影的摄影室
因为人物在摄影中会有微秒的移动,传统的一台相机连输摄影的方法中精度上会产生抖动。关于这个,开发团队改造了会议室,构筑了专门的摄影室(图A)。立体的配置了37台单反相机(图B),通过特别订购的有线快门钢丝顶针分配器(图C)可以进行严格的同时摄影。这时为了能让对拍摄物的光照尽可能的平整(Flat),在房间全部用白色墙壁,8台闪光灯面向墙壁来配置,通过反射的闪光得到全方向均匀的照明。因为全部相机的快门打开时间是严密的配合闪光灯的发光,制作了特别订购的闪光灯延迟装置来使用(图D)。
人物的全方位摄影
通过前述的方法,在摄影室里可以进行人物的面部以及整体的扫描(图A)。因为这个方法里是拍摄物体的光照影响被尽力排除的状态,而且可以取得排除无意识的运动产生的抖动的照片,可以输出非常高精度的3D模型。因为摄影室完成后之前摄影的一部分素材也重新拍摄了,到达了整体品质的提升。
使用PhotoScan输出3D数据
相机的摄影结果是通过5台笔记本传输给NAS(网络存储器)。在PhotoScan上进行点云,多边形模型,Albedo Texture的生成(图A)。这个时候的Albedo Texture在眼睛,鼻子,耳朵的加入部分也稍微包含了一些阴影。这个是有目的的把AO无法表现的细微的Occlusion部分保留下来。还有面部动画的参考也进行了各种表情的摄影(图B)。这种3D扫描,不光是模特,公司内的很多员工也动员了采集丰富的变化数据(图C)。
合金装备5的3D捕捉技术的视频
背景&光照
MAKING 1
BACKGROUND & LIGHTING
玩家可以投入的没有不协调感的世界构筑
本作的一大魅力,可以说是开放世界中的自由潜入。把广阔地图在有限的资源中用高品质没有暂停的展开,可以想象这里工作的庞大,其中凝聚了无数的方法。“把地图分割为128米的正方块,以玩家为中心的5X5块为Active的领域。但这光这个表现剧中的舞台来说宽阔程度完全不够,全都都认真来绘制会产生过度的Draw Call。 不过因为是以“潜入”为游戏的特色,不需要看清百米外的远方”技术指导这么说道。
因此,把模型的信息量分为了3个等级,构筑了对应距离切换等级来绘制的结构。而且,对于游戏时集中的资源(事件发生的建筑物等),也准备了加载到其他内存的结构,这些因为是有一定的距离所以要调整加载时间。“为了可以得到最好的游戏设计,在关卡设计和背景设计进行紧密的推敲来进行开发”负责的员工说到。那么来详细的看看这些技术。
广阔的地形模型的制作
使用World Machine的关卡设计
、
地形模型的制作上使用了World Machine(图A)。在FOX ENGINE上由游戏设计师加上粗略的凹凸,并输出为Height Map(图B)。把这个图在World Machine里读取,程序化的生成自然形状(图C)。把加入细节的结果(图E),转移到Mudbox(图F),把不符合玩法的部分通过雕刻进行细微调整并提高精度,再次作为Height Map输出(图G),读入到FOX ENGINE。
使用World Texture来降低处理负荷
本作中,把全部场景分割为64张【World Texture】来作为Texture来使用。图A的箭头符号的位置是玩家站立的情况,周围320m的黄色的激活区域使用通常的Tiling Texture,外面的部分,全部是作为World Texture分割的Texture按最近距离的顺序进行加载。“因为激活区域以外的领域是用World Texture使用简单的Shader来绘制,这样在消除(Tiling的)重复感的同时也降低了处理的负荷”负责的员工说到。图B是阿富汗场景分割的状况。1张Texture的尺寸在PS4/Xbox One中是2048像素的正方形。还有World Texture是在 World Machine中制作Mask图像之外,还追加了通过手工制作Tiling材质的领域信息(图C)。
无缝读取地形的Block系统
地形模型上,为了感觉不到加载,把可以游戏的Block进行分割读取。Block的构成方面,以玩家的位置为起点,内侧开始称作Small Block(红色),LOD0 Block(黄色),LOD1 Block (绿色)。蓝色的Large Block是故事上重要的场所被任意大小来读取的领域。最小单位的Small Block是128mx 128m,读取最精细的模型。读取轻量1个等级模型的是LOD0 Block ,是Small Block的2x2,4块加起来大小的尺寸。然后再轻量一个等级是LOD1 Block,是LOD 0 Block 4张的大小。采用了分别把玩家为中心的5x5的25个block读取,再对应距离从轻量到精细的把模型数据不断的传递进去的系统。图B是远景用的LOD模型配置的状况,图C是LOD 0 Block1部分的模型的粒子,在地图上配置的背景资源是在每个Block进行合并(Merge),合并数据的制作和LOD的变化,是构筑作为本世代机和旧世代机的平台数据,自动生成的结构来对应的。
正确的再现取材风景
为了制作真实的背景,背景组是对作为模型的区域(非洲和约旦)做了实地的外景拍摄。除了地形之外,还拍摄了作为确认植物生长状况参考使用(图A)和Texture使用(图B)的照片。然后,通过在暗室里进行线性Texture的摄影,使用它制作资源,在输出到前面介绍的会议室环境里进行确认后(图C),按照参考照片的印象进行风景的再现。图D是参考的照片,图E是在FOX ENGINE上再现的结果。“关于Specular方面,采用的是简单的normalized blinn phong模型,稍微改良了normalize来使用。 ”作为PBR的优点,只要正确的设定来组成,美术不需要反复调试也可以获得需要的品质这点值得推荐。另外,果然美术师无论如何想在Texture里绘制阴影和光泽,因为还有绘制的动作,当初成为很可笑外观的情况也很多,这个部分意识和认识的更新是很辛苦的(负责员工)。
资源制作的流程
制作的背景资源约7000个。首先准备简单模型,在FOX ENGINE上考虑游戏性来构筑概念地图(图A)。用这个来考虑每个资源的必要性以及验证材质数量和绘制负荷。确定规格后进行实际的制作,彻底的把简易模型替换为完成模型,游戏没什么问题的话,轮廓也不会有什么变化。外部协助公司发外包时,是让他们确认贴有粗糙Texture的材质数和Texture的大小的状态,图B的具体的详细发包说明书也会贴上,而且使用目的也会明确传达,来减低浪费。“因为这样信息(资源的设计)的精度提高了,关于两种游戏的规格交换的浪费的也降低了”(CG艺术指导)。图C是概念模型,图D是替换成外部协助公司制作模型的完成状态。还有在关卡中配置背景资源时,因为复数的资源变化(variation)会造成内存压力,如何用少量的变化高效的作出要求的风景重复的进行了试行错误。
Normal Map的Bake工具
Normal Map的Bake方面,参数的理解方面应该不会使用xNormal,而且会不熟悉的输出了不同的设定,或是容易出现人为的失误。因此,准备了定制的Maya TransferMaps功能【foxBakeTool】。图A中绿色的部分显示的是Bake的范围,哪个部分要bake也可以分别用ON/OFF来控制。还有,一开始可以选择是Geometry Normals和Surface Normals哪个进行Bake(图B)。即便玩家不熟悉设定也可以做出最佳设定的Bake,作为平坦平面法线值是【127 127 255】还是【128 128 255】在Maya上无法确定的行为,制作了被固定为【127 127 255】的结构。
物体对象图章工具
在地图上配置植物等,开始是考虑用程序化结构来对应,但是,因为草和演示的配置信息与游戏体验和内存使用状况直接关联,切换成了通过手工来配置的方法。这时,因为一个个的来手动配置草非常低效,制作了用图章来配置物体对象的工具,把草的平衡性好的配置笔刷化,也准备可以按照地形Tiling的形状来生成的结构来支持工作者。图A是图章使用前,图B是图章使用后,还有,图CD是按照Tiling形状来配置的状况。草的数量上,一个Small Block1上是4000~6000根,全部地图的配置是两名员工用了2个大概两个月的时间。
背景制作的各种工具
资源数据库
本作中,全部的资源数据都作为数据库登陆,做统一管理。资源信息的查找,阅览,都可以从资源数据库用拖拽(Drag&Drop)方式在FOX ENGINE上直接配置(图A)。配置信息和发生特效,碰撞,Texture的绘制相关的设定(图B),LOD设定等开发用的信息也可以管理。这些在 FOX ENGINE的参照可以直接反映在游戏里。背景组之外的全部小组都在使用,可以按用户单位,小组单位用易懂结构来保存。另外,工作进度是用其他系统来管理的。UI对应日语,英语,法语。
检查工具
为了维持在包含外部协助公司的大规模的资源制作中的品质,开发和使用了让检查流程高效化的工具。【Normal Map Analyzer】是,对Normal Map正规化,Texture的使用效率,法线的倾向比例做检查,可以高效的检查出错误的Normal Map,提高了整体的品质。图B是被判断出没有正规化的Normal Map(左边),把向量数据用黑白来表示(右边)。全部的向量都正确的话,右边的图是全黑色的。还有,关于Roughness Map也准备了同样的检查工【Roughness Map Analyzer】(图C),通过设定shader,把不在Roughness (粗糙度)值的范围内部分像素化,通过低于范围的用蓝色,高于范围的用红色来显示的配置(正确的是黑色),把是否满足规格做视觉化。
游戏日志(Play Log)的浏览
是把游戏内容的的日志收集视觉化的工具。FOX ENGINE的关卡编辑器把游戏的数据存储,在哪里被敌人发现了,在哪里骑了马等等在游戏空间内显示,可以俯瞰的来阅览。背景模型制作中工作量变的庞大,通过这个功能的使用,把握用户通过的路径,谋求重点位置的品质提升。
时间天候变化的对应
天空的模拟
因为本作对应了24小时的时间变化和天气变化,天空的表现变得非常重要。对于天空,一般是通过近似米氏散射(Mie scattering)和 瑞利散射( Rayleigh scattering)的计算来进行渲染的(图A)。然后,因为和后述的时间变化也要关联,地球的自传,公转,太阳的位置等也要加入。为了模拟太阳光射入大气散乱的状况,要在天空附加颜色的同时,让光自身进行衰减。为此,白天的太阳光也变得稍微有些黄色,“试行错误的最后,基本上忠实于现实世界的被完成了,为了强调傍晚的效果,稍微对红色做了些调整,美术方面也可以进行微秒的调整”负责光照的员工说到。关于夜晚也是比实际更亮的来进行设定(图B),这是除了忠实的光照会对游戏体验产生障碍之外,考虑到与特效的兼顾调整也很难的缘故。“与其说在这里造假,不如认为是与在电影摄影中,在黑暗的地方点亮光源,是源于同一种想法的技术手法”。关于天候的变化,一边用阴天(图C)和雨(图D)一同模拟的结果,一边调整云和太阳光的强度等参数来作出差别化。晴天时的夜晚可以看到星空,这里也被认真的再现了。【在本世代机中,是把6等星(肉眼可以看到最暗的星)以上的,约5000个星星按照星图的准确位置进行了描绘】。
环境参数的控制
由于时间的变化,为了处理昼夜之间非常大范围的光量变化,把1天分为14个时区,保存每个时区的所有参数,在通过线性补充的方式按玩家现在的时间值来导入。因为早上和傍晚的变化比较大,分割成了更高的频率(图A)。关于时区和天气的参数有200多个,这个包含环境设定在内是用电子表格来管理的,包含Bloom和Motion Blur等后处理的ON/OFF和标签(Tag)等最终约1400行(图B)。图C是电子表格的列表。可以区分不同的天气,分别对它们的数值进行设定。另外,室内用indoor,森林里用forest等,可以根据标签的值的设置来进行管理和切换(图D)。
光的控制
局部光照(Local Light)
街灯一类的人工光源以及火焰等使用的light Object(图A),是把流明(lumen)作为光源的强度,色温(temperature,单位开尔文 Kelvin)作为光源的颜色等,这样的数值来进行细节的控制(图B)。而且,对于同色温指定很难制作的颜色,也可以用RGB颜色值直接的编辑器。为了降低旧世代机种上的负荷,使用Texture来对应复杂的配光表现,也有用简化参数的方法(图CD)。为了更高品质的图形表现需要放置大量的光源,直接导致了画面负荷的上升。把光源绘制了屏幕多少面积在FOX ENGINE上进行确认(图EF),让光照小组基于这个,对特定的使绘制负荷变高的光的影响范围的重复次数和阴影,Specular的有无等进行调整,分配了当当多的时间和劳力,来追求处理负荷与品质的平衡。
使用Light Probe制作间接光照表现
环境(ambient)部分的追加,是通过在地图上配置了收集这个地点间接光的2次球谐波函数的Light Probe,再现模拟的光反射(bounce)部分。图A是直接光与间接光合成的状态,图B是只有直接光,图C是只有间接光的显示状态。在建筑物和道路上配置自己特有的Probe(图D)。开放世界的地图上大部分是自动的进行配置,大一些的村庄等主要的地域是手动配置,Probe之间的重叠情况是通过预览来调整负荷(图E)一个地点上,晴天和阴天,以及指定时间的收录,Bake要30分钟左右。“当初Bake一个街道要5个小时,进行改进后大约1小时的程度,上千个区域Block全部重新Bake的话,大概要用3天以上的时间”(负责员工)。另外,区域光的反射是作为其他成分进行记录,例如,射击导致外面的电灯被破坏的情况一类的变化表现。
支持丰富画面制作的渲染技术
曝光控制的结构
在本作中,屋外,室内等,不同光量的场所要用正确的亮度来渲染,实现了自动曝光的修正功能和控制结构。控制只在光照成分中进行,白色物体是白色,黑的物体看到黑色那样,谋求曝光的稳定。但是,单纯的自动控制曝光的话,每个场景都是同样的亮度,特别是夜间的场景变成好像晴天白天那样的亮度结果(图A)。这里是光照组使用被实现的自动曝光的修正功能来设定修正值,表现出了夜间的寂静的黑暗感(图B)。室内也是图B中调整出比图A更自然的亮度。具体实现上,是把白天,室内,黑夜的特定亮度的强度(EV值),作为3个修正点(图C)来控制环境参数值(图D),再用自动曝光的修正结果进行渲染。这个修正值,可以通过环境参数自由变更。不仅仅是画面的外观问题,也有索敌等会左右游戏体验的要素,感觉是把系列集大成的本作才有的讲究。
本时代机才有的后处理
大量的后处理(Post Filter)也是支撑本作丰富图形的重要要素。图A是Bloom OFF,图B是Bloom On的画面,Bloom把画面内的高亮度部分做膨胀,处理在对强度和模糊状况做调整外,同时进行屏幕空间的Lens Flare的处理。这个Lens Flare要和VFX演出的Lens Flare一起,作为其他效果来使用,给予画面高密度化。图C是Lens Flare模糊很小的状态,图D是模糊很大的状态(C是模拟的再现来确认颜色偏差)。图E是Bloom部分的Buffer。另外,屏幕空间的局部反射(Screen Space Local Reflection)方面(图F),除了反射强度,光线追踪的距离外,通过Roughness限制的设定,一定粗糙度以上无效化来减低处理负荷。为了比以前的景深(DOF)更高度的表现(图G),通过用相机拍照的那种(相机光圈形状的)Bokeh表现,实现了照片真实的影像表现。这些后处理也是由光照小组来进行控制。受到【合金装备5 原爆点】的Steam版本成果的影响,按照小岛秀夫监督的“无论如何也要在PS4上实现”的意向,进行各种调试实现了。在美术师方面,准备了一边在表演和绘制负荷间取得平衡,一边进行取舍选择的结构。
以更高的品质为目标
演示光照(Demo Lighting)
作为重要地点被插入的演示场景,在分镜中增加了演出用的光源,进行像电影的表演那样讲究的制作加入。为此,开发了以帧为单位的进行光源和后处理特效等编辑的Demo Tool(图A)。可以一边阅览演示场景,一边管理和编辑全部关联的参数,为了游戏到演示的无缝的关联而反复进行细心调整。因为制作丰富的画面处理负荷也会变得过大,在最大限度的发挥性能的同时,也要从最优先的影像演出的效果来考虑,在分镜和帧的单位上,把绘制功能做成Fade In/Out 一类动画,用ON/OFF操作。图BC是对应从相机的自动曝光中得到的EV值,自动的控制光源强度和颜色例子。图D是SSAO(Screen Space Ambient Occlusion)的处理只在特定的帧中有效的画面。需要时,也可以在旧世代机种上对这个绘制功能做不选择有效的调整。
PC版的超高(Extra High)模式
本作不光是家用机版,也提供了PC版,PC版的【Extra High】模式可以体验游戏最高品质的图形。但是,影像表现上,旧世代机种版(图A),今世代机种版(图B),PC版(图C)的数据并没有进行大幅度的变更,而是通过后处理的追加等来强化的。具体的,首先要说的是受影响的光源个数增减上。PC版本中,远处的光源也有效,使得阴影,Specular等图形的密度感提升,替换了阴影贴图的分辨率,追加更平滑的处理。SSAO方面,PC版本(图E)也用比家用机版(图D)更高的精度来绘制,因为也考虑到Normal Map作出了更加立体感的表现。还有,关于云的绘制,相比家用机版(图F),PC版(图G)追加了简单的用Raymarch的方法的云的绘制层。通过这个方法,根据视察效果更有深度感的天空也可以表现了。
机械&武器
本作是以在广阔区域中实现丰富玩法为特种的。可以尝试各种攻略方法的自由游戏空间的实现上,开发世界特有的机械设定是必须的
MAKING 2
MECHA& WEAPON
大部分的原创设计 也没有依靠PhotoScan
为了确保在实现的走不到尽头的广阔游戏区域中有恰当的游戏性,作为本作的主人公的移动方法,也有很多的搭乘物,或者是搭乘的兵器加入了。开发团队在制作这些时,是从头开始绘制原创的机械设计的。即便是作为搭乘物的模型真实存在,太大物体的情况用PhotoScan来3D扫描也是很难的。另外,也有要配合本作独特的世界观的要求,所以关于机械类从头到尾都是只通过手工来进行建模的。
因为武器类的制作处理也是机械制作组特有的任务,让武器设计优秀的员工直接制作粗糙的3D模型,开发团队在基于这个做详细的包装。并在哪里进行加入制作3D模型的流程。关于大型搭乘兵器中机械特有的运转部件很多,要有对应动画数据的大尺寸化的措施,果然因为资源限制需要使用的方法也很多。
这样制作的开放世界才有的3D资源,在本作成为与过去系列作品完全不同的新的游戏性的扩大上有很大的贡献。
象征世界观的搭乘兵器
【D-Walker】的制作过程
本作的游戏场景是由一个个关联的广阔区域构成在,作为其中的移动和战斗手段,准备了丰富的机械种类。其中最有代表性的搭载型兵器就是【D-Walker】了,这个是多关节的2足步行机械,主人公也敌人都可以使用。这个的制作当然PhotoScan一类的3D扫描技术是不能使用的,采用了通过手工从头开始制作3D模型的方法。在它的设定图中(图A),每个部分的细节和可动部分的动作印象也可以把握,创作出了即为详细的设计。还有,关节等武器定制的变种化也是预料到的构造。图B是D-Walker的CG完成画面,图C是真机画面。
其他的机械和动画的方法
其他的很多机械也是原创设计
关于车辆和无人机等真实存在的物体对象,也是机械制作组从原创设计开始制作的。图A是游戏中登场的越野车【APE T-41LV】的设定图,图B的在线模式中登场的无人机【UA-DRONE】的设定图中,加入了尺寸,容易想象运动的详细设定。图C是【APE T-41LV】的CG完成画,图D是【UA-DRONE】的CG完成画。
为了动画数据简略化的【辅助骨骼】
机械制作组在动画数据的节约策略上使用了【辅助骨骼】技术。辅助骨骼是在原来骨骼构造上另外被设定的节点,运动它来带动多个关联的骨骼。在 FOX ENGINE中这个是在运行时使用。构成【D-Walker】 的脚部关节的包含多个汽缸的运动,是用图A的两个黄色显示的辅助骨骼来动作的。还有高压电击枪(图B stun gun)里加入了16根骨骼,实际加上动作的是在举行内显示的两根辅助骨骼。通过这个方法可以大幅消减动画数据。
高自由度的定制武器的实现
从武器概念模型到正式制作
本作的全部武器也是原创设计的,不过一张设定图也没有。这些的设计,是由精通武器的功能和构造的员工直接制作3D的草图模型,基于在组内加入检讨的结果,按顺序的进行游戏内模型B~E的制作加入。因为节省了从设定图到3D模型制作的工作量,工作时间也大幅的缩短了。虽然也是需要依赖员工的能力,但正是这种大胆的效率化实现了本作丰富多彩的武器部件的制作。
可以无数种组合的武器定制
因为本作的高自由度是重要主题之一,要保证作为玩家的主要装备的各种火器的彻底的定制性(图A)。每个武器是由最大11个部件来构成,以这个细节作为基础的有机匣(Receiver),枪管(Barrel ),弹夹(Magazine),枪托(Stock),枪口(Muzzle),枪口部件(Muzzle accessory),光学瞄准镜(Optical sight),闪光激光瞄准器(Flash laser sight),底部枪管扩展(Under Barrel 榴弹反射器等)(图B)。这样自由度高,更换枪管就可以改变武器种类(图C)。对其他部位也可以进行换装,用一个基础武器也可以变成完全不同的乐趣(图D)。部件的总数有300多,这些的组合也是自由的。图E是实际的定制武器的例子。
成为基础的定制系统
提升外观的定制性的【Material ID】和【FOVA】系统
使得定制性更加提高的,是FOX ENGINE特有的渲染功能【Material ID】。这个是在渲染时在专用Buffer里写入标识材质种类的ID(图A)。光照时对应符合的部位使用定制Shader,可以灵活的作出不同的质感表现(图B)。而且,也可以改变材质的Roughness值(图C),作出厚垫到金属的丰富质感表现(图D)。这种质感的数据是通过叫做【FOVA】(Form Variation)的自制变化管理系统来汇总,提高了武器的颜色变化功能的灵活性和妥善性(图E)。
搭乘兵器的定制系统也有实现
本作的象征的搭乘兵器【D-Walker】也是,保证了和携带火器一样广泛的定制型。不光是武器的换装(图A),手臂自身的交换,以及头部的更换也是可以的。颜色变化的定制上,可以设定单色,迷彩图案,金银的金属颜色(图B)。这个变色的结构也是通过FOVA系统来构筑的。
角色
追求照片真实的本作,为了可以跨越人物描写的"恐怖谷理论"凝聚了各种方法。这不光是高超的技术力,还有令人惊叹的点子也被使用。
MAKING 3
CHARACTER
通过新工具和扩展已有工具来制作高品质角色模型
本作是【把写真的表现作为追求】作为视觉上的很大主题来进行开发的。把他作为基础的尝试有前述的3D照片扫描的人物的使用上,素材真实的高精细越高,作为游戏里模型使用时又没有相应的方法的话,就会落入到常说的“恐怖谷理论”的恐怖。还有,本作中不光是游戏场景,超长的演示场景也是非常重要的部分,角色大量说出的台词,也包含特殊事件。这样大量的要求,成为了从角色的Setup到渲染上,导入本作自制的制作手法和工作方法的强烈动机。
其中,作为主要工具使用的,是对综合了Softimage的Facial Setup Animation Tools的Face Robot进行独自的扩展,以及服装设计的专门工具Marvelous Designer的彻底使用,同时开发了可以更高精度渲染的人物专用shader,这些全都是角色相关的自研方法。因为这些,本作的角色表现,通过技术力和好点子的使用高品质的完成了。
有说服力的人物描写
高品质的角色表现
本作中的游戏场景和演示场景,都是使用通过PholoScan取得的照片真实的角色3D模型,在制作中,实现了像画像一样的3D模型的写实性的绘制和动画。
独自扩展Face Robot的面部动画(Facial)工作流
开发团队在以Face Robot为核心的同时,也准备一定程度自动化Setup的工具。因为游戏模型的Facial的骨骼数量较少,所以通过尽可能从Face Robot的输出中取得高精度的数据,努力提升模板模型的精度(图A)。Setup时是基于模板,经过把面部Landmarks的fitting(图B)--> solver的调整(图C)的完成状态(图D),通过独自扩展各个阶段可以进行保存和重试。图E是内部制作的对Rig进行Setup的【Ocelot】。最终在游戏里(图F)实时的播放。
基于模拟的服装制作
专门的服装设计工具【Marvelous Designer】
制作足够真实的服装上,成为了角色制作组很大的课题。也有把服装本身做3D扫描的方案,但并不实际存在的服装的制作太难而放弃了。直接数字制作的工具,在服装界也被使用的【Marveloiis Designer】被选中了。本工具是把纸样的数据,匹配到人物模型上基于服装模拟来进行制作的(图A)。不光是布料的衣服,皮手套等等各种素材也可以再现,对本作的衣服和小道具的制作给予了很大的支持。
把模拟的结果Bend Map化
Marvelous Designer里制作的服装数据,可以调整任意的布料褶皱方式,配合素体模型的运动的真实的皱褶方式也是可以的(图AB)。为了可以在游戏内模型使用这些模拟的结果,在Marvelous Designer上把各个姿势的结果输出到Normal Map上,再作为配合游戏模型的骨骼动作的自动适用的Tension Map来使用。通过这个方法通常的状态(图C),弯曲状态(图D)的皱褶都可以真实的再现。
布料模拟在演示场景的使用
Marvelous Designer,是以高精度的布料模拟为核心的。本作的几个演示场景中,也使用了这个技术再现了真实的衣服运动。制作顺序是,由游戏模型来制作碰撞模型(图A),着装后的模拟(图B)。把得到的动画对Softimage的Cage模型做复写(图C),变换为骨骼动画来运动游戏模型(图D),这样的流程。
人物专用的特殊Shader功能
Skin Shader
本作是面向本世代机种和PC的,实现了用后处理来模拟次表面散射的Screen Space SSS(Subsurface Scattering)Shader,可以表现透明感的肌。无效的状态时,皱纹等细小的阴影会很紧的出现,看起来是稍硬的质感。这个效果是对Diffuse光的渲染结果,对Material ID设定为Skin的领域进行处理来实现的(图C),和无效时(图D)对比可以看出只有面部肌肤部上产生影响。
Dirty Shader
通过准备的专用Mask Texture与顶点颜色的组合,画上各种污垢的功能也被实现了。Mask Texture的R通道是血污(图A),G通道是煤土污(图B),B通道是水濡(图C),变更顶点颜色在适用这些Mask,作出了可以实现绘制各种污垢的结构。例如水濡的情况,布料部分的Albedo是暗色,这样来突出Specular的效果。
Hair Shader
为了再现毛发特有的灵敏的Specular,头发部分实现了专门定制的各向异性反射功能。这个是在头发的Texture UV的垂直方向调整Specular使用情况的做法。图A从左到右来增加适用毒的状况展示。另外,通过半透明贴图(Translucent Map)来增减Diffuse的影响范围实现了简单的SSS功能,使用背光(back light)来表现头发部分的透明(图B)。
实际上无限的敌兵变化
通过区域x兵种x部件的组合生成外观
关于本作敌兵的3D模型,在“遇到过一次就不会再遇到第二次的等级”的要求下。实现了单纯计算有10万种样式(Pattern),实际上也有1000~2000种样式作为外观的变化。以其中的苏维埃士兵(图A)举例的话,各种士兵有步枪兵,机枪兵,榴弹兵,通信兵这样的基础兵种,再分别与服装的组合来作出大量的外观样式。这个样式也会根据区域变化,例如建筑物周围的敌兵(图B)是做成基于都市迷彩等等与基本变化不同的设定
设定资料的构成
在实现敌兵的【控制的变种化】上,把必要要素系统的进行分割的设定资料被制作了。图A是初期的资料,就这样按荒野,溪谷,山岳的各个区域的倾向来确定服装的基本设定。在基于这个做成2D设定图那样的服装替换方案(图B),也要包含对总的样式数量和必要素材的数量,内存大小等的估算来进行系统设计。模型的变化由头部,上半身,手,下半身,装饰品,小道具来构成(图C),再基于设定资料在进行3D模型的制作。
用Mesh Tree组成1个模型
3D模型化的全部换装样式,要组成一个游戏模型(图A)。具体的是,把各个部分中使用的全部样式的Mesh数据,作为敌兵模型的Mesh Tree进行登陆(图B,图C)。合适的选择部件组合的是用前述的【FOVA】,本作中各种各样的半自动生成系统被使用了。
运动
在开放世界中的自由潜入的实现上,游戏主人公Snake为首的角色动作也担当了非常重要的作用。来看看在【合金装备4】的基础上大幅增加了动作数量并力图效率化的这个工程。
Making 4
Motion
通过连接运动的增强来实现流畅的动作
为了实现本作中玩家自然的动作,提出了以增加运动数量为目标。前作游戏中玩家运动有1700种,本作最后差不多有2900种。使这么大的数量可行的是通过效率化来提升工作速度。
MGS4的基本运动是从急速到走到停止的3种运动。本作的移动是对应步行,慢跑,跑,冲刺的速度制作了4种样式,被准备来分别对应从急速到移动停止的连接运动。另外因为角色是被设计为正面,45度,90度以及45度倍数的方向前行的,作出了从移动开始迈步的10个运动, 开始跑的12个运动,以及开始冲刺的12个运动
而且,效率化的方法上,使用了通过倾向值(Trend)来做运动的混合或叠加,用有限的运动做出了高品质的动作。另外,还有实时的修正运动在游戏里播放的功能,以及程序化Rig等功能的附加,也和性能提升紧密相关。那么来看看每个的详细信息。
运动的基本设定
主人公Snake的运动扩展
【合金装备4】中的基本运动是一直持着武器的这样移动,在本作中,武器的变化也大幅度增加了,基本移动变成了空手的。主人公Snake方面,有站立,下蹲,匍匐,仰起的姿势变化,同一姿势端着武器移动也成为可能。图A~图C,是站立,下蹲,匍匐姿势的比较。图D是登上1.5米的台子时,通过进入角度来展示运动的差别的画像。除了正面,也准备了90度进入运动,表现出了自然的动作。为了表现出Snake的角色性格,不能太花哨或太普通的,合理的动作的同时,不能做的太过于时尚,可以说是最重要的一点。“不光是Snake的确定姿势,运动的尺度张驰和姿势也要稍微修正,注意最终看起来可以感觉很好”负责员工回顾到。
运动捕捉 Motion Capture
游戏运动的捕捉
在进入运动制作前,开发团队内部先是试做的(Pre-production)进行临时运动的运动捕捉。把临时动作在真机上做确认,无论动作是如何轻微的印象也不会被抹消掉。于是,本作也有监督的意向,为了让角色可以作出外国人特有的动作,一部分基本移动是使用外国人做运动演员。还有,敌兵的步行运动也是实际的穿着重装备的状态来采集的,楼梯和斜面等大道具也准备了与实际游戏中登场的尺寸相匹配的物件来做采集,以控制后面工程的修正工作。“楼梯的上下走动,不同步幅的修正相当的费功夫,因为用更接近的情况来采集,就可以高效的工作了。”
演示部分运动的捕捉
图A是为了制作大型机械的演示场景,把实际的背景的3DCG数据投影在采集区域,在很容易理解场景状况和移动规则的状态中让演员进行表演。图B是有狗登场的场景,对真实的狗捕捉。把标记设备附着在索具上,也尝试让在较温和的狗的衣服上附加这些,最终是使用假牙的粘合剂直接把标记设备附着在狗的皮肤上来进行采集的。“想采集一个动作,却怎么都不做出想要的动作,总之非常麻烦”。相当多的部分需要手工修正。图C的扑向围栏的狗,实际是用诱饵诱惑奖励来采集的。而且,可以把采集的捕捉数据传输到这个场景的模型在真机上进行确认,在乘车(图D)和骑马(图E)的场景中使用了(图FG)。还有就是因为无法进行马的运动捕捉,负责的动画师去骑马训练学校观察马的动作,用手工方式制作了运动。
动画(Animation)实现的工作流
动画做成的流程
简单解说下Softimage制作的动画数据实现在真机上的流程的。图A是捕捉数据读入到Softimage,选择Clip,使用Clip To Rig来生成Rig。还有,公司采集捕捉数据是要先做标记处理和Retarget的。使用图B的【FoxFramesView】的动画功能,对运动进行修正。FoxFramesView中搭载了姿势匹配(Pose Match),运动匹配(Motion Match),镜像功能(Mirror)等动画制作必须的功能。再从FoxFramesView进行动画的输出(图C),在FOX ENGINE的MotionEventEditor中加入事件(图D)。在各工程中进行检查和精炼,完成最终的动画。
运动图(Motion Graphic)
本作中,为了可以直观的设计动画的转换,在FOX ENGINE上开发了叫做【MotionGraphEditor】的工具。把空闲(idle)和循环(loop)通过线来连接,一连串的运动转换就完成了。图A是站立移动时的设定画面全图。图B是显示这时状态的状态节点(State Node)。右半部分是右脚向前的状态,左半部分是左足向前的状态。米色(Beige)的节点是基本节点,青色的节点是为了可以平滑关联的必要运动用的节点,根据不同节点颜色作用也不同。在图A的状态节点的右边是现实状态节点内容的混合树(Blend Tree),用紫色节点来表示运动,绿色节点表示混合处理。图C是举枪状态的运动转换。可以看到和站立移动相比混合变得复杂。
处理大量数据的各种效率化方法
运动的Retarget
所谓的Retarget,是把做完的动画适用到体格不同的角色上的功能。使用捕捉数据的话,实际捕捉的演员和角色的差别,要用多高的精度来Retarget呢。当初Retarget的精度低,了解了数据处理倾向后,手动的工作减少了,速度得到提升。画面中是把敌兵的运动适用到骨骼不同的少年兵上的状况。而且把Retarget的设定在Softimage上再现了,主要为了制作和Retarget的动作关联的动作而使用。
GamePlay View
为了本作中在游戏中实现的动画可以在Softimage上做修正,把场景马上做转换和预览的功能被加入了(图A)。首先是选择输出运动的角色(1), 然后选择要反映到的运动文件(2),点击预览后(3)就可以向游戏实时的输出了(图B)。因为场景增加的调整可以确认,工作效率大幅提升了。
程序化Rig
人型角色的Rig基本上沿用【合金装备4】的没有变化,人型以外的制作是使用【Procedural Rig Generator】来做成Rig的。这个是使用基础的IK绘制骨骼来Rig化,这种简单的工具,因为节点是在基本的规定的范围内生成,规格的统一也容易。图A是支持方向盘的车轮的Rig,图B是狗后足的Rig状况。“用程序化的话,因为在没有太大变更的情况也是支持Retarget,修正非常轻松”。
特效和模拟
本作中武器使用的火焰和爆炸,以喷血效果为首,雨的濡湿和水滴的表现等,特效的展现也涉及到很多方面。一个个,都凝聚了非常细致的手法。
Making 5
EFFECT& SIMULATION
为了给合金装备的世界添彩的各种创意方法
在【合金装备5:幻痛】中,枪击战引发的火焰和爆炸,喷血来展现华丽的场景也有,广阔的地图中重点的对海和水边做了漂亮的绘制,另外一方面电影那样的演示场景中对应不同场面的特殊后处理效果提高了临场感受。这种丰富表现和演出是由特效组担当的,注意着“一边基于现实世界的真实表现,一边加入电影的华丽演出”的来制作。其中对应24小时变化是最为辛苦的地方。
还有,处理负荷也成为非常头疼的问题。游戏开发中,半透明绘制和后处理绘制都是绘制负荷高的一类。特别是半透明的绘制出乎意料的高,所有平台都是导入到缩小的Buffer里,在把半透明用LDR(Low Dynamic Range )来处理。这样看起来60fps的难度很高。“提高外观的品质的话负荷增加,降低负荷的话就不得不在消减外观的困境中奋战”(负责员工)。按照时间来做调整的本作的特效,完成了非常值得一看的表现,为了实现这样的品质,确实是各种方法和技术所驱使的。
特效制作的主要工具
特效编辑器
本作总使用的特效编辑器成为了基于节点的GUI。编辑器内多个橘黄色的节点是发射器(Emitter),把这些集中在右侧的大的节点中构成一个特效。还有,绿色的节点叫做过滤(Filter)节点,用来指导连接的Emitter在哪个世代的硬件上使用,可以改变旧世代机和新世代机的特效的表现。可以在旧世代机减少粒子数量,今世代机上变为丰富的表现。编辑器变为基于节点上,据说【追加功能很轻松】,【通过节点的组合发现了没有想到的使用方法,表现的幅度很大】。
使用多个工具的Texture制作
图A是本作中的火焰的表现,图BC是实际使用的火焰的Texture。图B是颜色通道,图C是Alpha通道。在Maya的Fluid里制作,再做成循环动画。本作的火焰,爆炸,烟雾,也有使用FumeFX,使用交叉渐变(CrossFade)模拟的像素内的密度和速度信息的方法,保证基于模拟的自然动作作出可以循环的动画。图D是水面的表现,图EF是这个场景以外,表现液体和血的Texture,图E是Alpha用的Map,图F是Normal用的Map。用thinkingParticles制作基本的动作,用FROST使用Mesh化的物体对象的屏幕空间的法线信息来制作。水花类的特效中全都有使用,通过shader内的反射率,透明度,Specular的调整也可以作为血和泥来使用。
关于水的各种表现
水的遮蔽
降雨的情况下周围的物体对象的质感会变成濡湿的状态,就这样屋内也全都濡湿了。这种遮蔽雨的技术也被设计出来了。图A是美术师配置的遮蔽信息的板型多边形,设定了和建筑物的形状对应的MaskTexture(图C 图D)。画面左上角显示的,是基于Snake周围配置的板型多边形实时生成的高低差信息。基于这个在屏幕空间进行遮蔽处理。图B是显示Roughness信息的画面,白色领域是被遮蔽的,这个区域的地板和Snake的半个身子没有被濡湿。还有,在相机前的降雨也是,对进入领域的雨做透明化处理来对应屋内没有降雨的情况。图EF是沙尘遮蔽的应用例子,可以看到图F中眼前的沙尘消失了。另外废话几句,因为完全透明的特效也有绘制负荷,本作中加入了把顶点颜色的Alpha值为0的粒子做缩放(Scale)为0的处理。
海面的波浪和泡沫
图A中,海面的形状是用快速傅里叶变化来求得,把倾向和高度Texture化在Shader里使用。几何体的变形只在近距离有,远处是稍微简单的Shader。利用了物理正确的光照模型,为了提升外观用美术师制作的Texture来加入颜色变化。海面波浪的白泡(foam)也被真实的描绘,这个是使用图B中的Texture来表现。泡沫的密度有3个阶段,保存在1张Texture的RGB通道中。水上的建筑物【Mother Base】的脚部是无视干涉,日落时太阳的反射也是,可以肆意的加大。
河底的摇晃波纹
图A的河底的摇晃表现,是使用延迟渲染结果的画像。使用和延迟渲染同样的光照模型进行24小时的对应,为了减轻绘制负荷光源是只有环境光和平行光被反映。反射使用了Cubemap,把白天晴朗的Cubemap,根据时间和天气进行颜色修正后来使用。角色在水面上走时显示的波纹,在别的通道中上把渲染在屏幕空间上的BumpMap(图B)转化为法线信息,再和基础的法线通道做混合。
特效数据的差分变化
画像中过场动画中用的水花特效,对应场景的状况分为3个等级的反射率来使用。这3个特效是使用1个数据制作的,把反射率不同的变化设定用差分信息来包含。这样即便是做出3个特效,也可以很小的控制内存使用量。
同时作出画面的说服力和负荷减轻的细致方法
对应曝光值的亮度变化
游戏中的昼夜变化,室内外和日照,背阴的状况,画面内的曝光值经常会变化,【Constant Shader】在不受光照影响时自发光的特效的时候,像图A那样明亮的场景特效发暗,相反的黑色场景中曝光过度的案例很伤脑筋。为了解决这个问题,加入了动态的把对应场景曝光值变化的Constant Shader自身的亮度提升处理。图B是加入了曝光变化的对应,不论昼夜火焰都是相同的亮度被显示的。像“这个曝光时是这个亮度值”这样来决定上下的限制就可以调整亮度的范围,从光照小组哪里请教光照的范围来设定基准。作为副产物,相反通过在黑暗场景中设定明亮,在夜间可以让特效发光,得到了这样的效果。
粒子的简单物理
背景和粒子的碰撞判断上因为在画面外的碰撞也要处理,不能使用Zbuffer的基于GPU的方法,采用了基于CPU的方法。为了最低限度的控制计算负荷,机能上被相当的压榨。因为粒子自身作为点来判断的,木片一类表现有刺入到地面的可能性,如果不想这样的话在地面平整的前提条件下调整旋转速度来表现。在功能上设置碰撞检测的次数,最后把粒子停止放置在地面上,然后再消失的来设定。再多说几句,合金装备5的世界中全局风向被设置为1个,粒子可以设定受到多少程度风的影响。还有对应天气改变风的强度,例如沙暴的风速是10m的程度。时间不会改变风的强度。
粒子LOD
本作中的粒子也有LOD功能的对应,可以对应到摄像机的距离来减少粒子的数量。但是,因为造成绘制负荷高的是摄像机跟前的,摄像机近处也要进行消减一定数量的用法,可以说是逆转的想法。同样的因为枪的跳弹特效要在远处显示很难确认(图A),用距离相机越远越放大的方式来处理(图B)。考虑了倍率瞄准镜和双筒望远镜的变焦状况,采用了不仅仅是距离还有屏幕空间的面积比的处理方式。还有,在处理负荷高的场景中设定粒子产生数的百分比,对应状况自动减少数量的功能也有。
其他的特效表现
轮胎痕迹(Skid Mark)
地面上残留的车辆的轮胎痕迹(Skid Mark),是沿着轮胎的通过地面实时的生成多边形,在Normal Map上绘制加上凹凸来进行表现。图A是实际的游戏画面,图B是调试显示生成的多边形的样子。
附加在摄像机上的水滴
下雨时附着在画面上的水底,是屏幕空间上生成Grid,通过各点上带有的多少分量的水滴的信息来进行渲染。一些程度变得比较重的水滴会流动(向下面的Grid移动),通过表面张力的模拟,一边在吸收Grid上的其他水滴,同时也改变流动的表现。
高速(High Speed)表现
游戏中的高速摄像机(缓慢)的表演的探查,是通过后处理来增加周围减光,色差,景深Bokeh。还有演出时的雨的表现变成颗粒状。因为气氛的色彩变化,效果有很高的印象。
Lens Flare
Lens Flare有利用画面内的亮度差,自动产生的屏幕空间的类型,和演出时生成的类型两个种类。图A是屏幕空间类型的例子,把画面内高亮度的部分在摄像机中心反转改变光的颜色(图B)。再把这个画面合成来表现。这时,要和同样是后处理的Bloom同时适用把GPU负荷控制在最小。屏幕空间Lens Flare之外是演出中有意图的产生的Flare,看Emitter在画面的2D坐标系的哪个位置绘制来进行生成的控制。
演示(DEMO)
说到合金装备系列的魅力上,好像看电影一样的演示部分也是不可缺少的。本作中让玩家更加深入故事以“无缝(Seamless)”为关键词,各种演出被实施了。
MAKING 6
DEMO
感觉不到切换的“临场感”的演出
本作的演示部分的制作上,玩家不真正感觉哪个空间的风光就无法演出临场感么,从哪里入口,游戏和演示的无缝关联,在这些要点上努力。因此演示不做基本的分镜分割,而是要在一个分镜里演出,游戏到演示,演示到游戏的相机转化也是成为无缝的调整,成为了玩家不会感觉到切换的构造。
在开发时,演示组以前是以3ds Max为主要工具,但考虑到与使用Softimage的运动和角色组的交换数据,本作变更为Softimage。进而,因为庞大的工作被省略化了,和AutoDesk一共开发了基于Softimage的演示开发工具。"和AutoDesk方面可以很好的交流,内部构造也请他们调整了。演示部分做成了全部5个半小时的体积。这些制作的实现要归功于这个工具"负责的员工回顾到。
可视化预览(Pre Visualization)
本作中,大体上全部的演示都是可视化预览来制作的。使用公司内制作的简易运动数据,在对运动捕捉实施时的数据量计算和演出的验证,现场中印象的共享都有被使用。然后把做成的预览数据与游戏组合,游戏体验的验证和调整也是在早期阶段进行。这些也在角色,机械,程序等各个部门中共享,吸收武器的使用,光照等各种专业的意见后反复的对游戏的平衡和演示的数据量做讨论。图AB是预览,图CD是相同场景的完成画面。
与AutoDesk共同开发的演示制作工具
演示制作工具【SoftimageDemoTool】是由专用编辑器【Sequence】和分成3个的预览窗口构成。Sequence是Dope Sheet, Animation Mixer,FCurve Editor等功能的复合体,对场景内的摄像机和模型进行集中式管理,可以高效的进行动画的加过和实施定制工作(图A)。作为工作工程,首先是角色模型和动画数据读入到Sequence加工。然后设定摄像机,调整播放速度在FOX ENGINE上输出,再调整光照和特效这样的流程。图B是分配的动画数据用Animation Mixer调整的状况。还有,演示工具中也搭载了可以给多个摄像机制作各自的分镜,在Time line上通过分镜编辑来确认关联的状态的功能。
强化临场感的视觉演出
游戏与演示之间的无缝转换
本作的游戏和演示是无缝关联的,图A是游戏中的摄像机,图B是进入演示时的摄像机,图C是从游戏摄像机向演示摄像机位置转移的示意图。从玩家自由操作的游戏相机,通过程序计算出演示摄像机的坐标,无缝的转移。另外关于运动方面,从游戏中的运动对演示开始时的动作做混合,对演示开始时的坐标无缝的补充。同样的,时间经过(图DE)和天气变化(图F),服装和受伤等的状态(图GH),也会直接继承演示开始前的状态。演示终了时也会适用相同的处理,无缝的返回到游戏中。
后处理滤镜(Post Filter)
本作的中以Lens Flare为首的各种后处理被大量使用。不光是配置在场景里的横向拉伸的Lens Flare,在光源方向上加入光,相反的对一个一个场景加入画面过暗等问题的细节处理来作出临场感。图A是光照修正处理前的状态,图B是追加光源滤镜和Lens Flare。画面下方使用了让画面变暗的滤镜。图C是疼痛的滤镜适用前,图D是适用后。是用来表演出角色受击而制作的“疼痛LensFlare”被适用。
目标关联相机(Target Constrain Camera)
Target Constrain Camera,是指定游戏相机的注视点的Target,强制的吸着相机的功能。玩家和Target的位置关系依赖,可以把演示场景的相机构图自动算出并转移。因为玩家在一些场景会注视特定的点,可以说是无缝演出中不可缺少的功能。图A是Constrain Camera发动前的状况。这时游戏相机的注视点是红点。图B,是发现了作为Target的敌人,发动Constrain Camera的状态,红球是吸着在白色盒子的中心,可以看到摄像机以Target为中心捕捉的。
- INNO 补丁制作技术, 打开 INNO 补丁制作方法的第一页
INNO 补丁制作技术, 打开 INNO 补丁制作方法的第一页 作者:xin 日期:2005-09-23 字体大小: 小 中 大 VPatch 在 INNO 中的应用. VPatch 属于专为NS ...
- U+V2深度隐藏PE制作技术初探
所谓U+,习惯上是指用UltraISO软件把ISO文件写入U盘来制作启动盘的一种技术.第一代U+兼容性不太好,不推荐使用.目前,兼容性比较好的是第二代U+启动技术(USB-HDD+ V2/USB-ZI ...
- 618技术特辑(三)直播带货王,“OMG买它”的背后,为什么是一连串技术挑战?
[本期推荐]为什么一到大促,我们的钱包总是被掏空?是大家自制力不够,还是电商平台太会读懂人心,从技术维度,抽丝剥茧一探究竟. 摘要:动辄几十上百万人同时在线的直播间,让所有人能同时公平的去抢购,并且还 ...
- PS故障风海报制作技术分享
1.首先找一张看起来很酷的图(也可以选择自己喜欢的图片): 2. 复制图层,点击添加图层样式,选择混合选项,在高级混合里面的通道选项,有R.G.B三个通道选项,默认是全部勾选的状态,选择其中一个勾掉( ...
- 切图psd to html页面制作技术学习与总结
切图流程和注意事项 切图的正确流程做法是: 1 写框架.拿到psd后,先不要做别的,直接在文本编辑器中将网页的框架写出来,不要假设这块将来css要去怎么渲染,完全自然化的标签,不加任何的css. 2 ...
- 如何查看自己steam库里游戏是哪个区的
1 开启Steam开发者模式,切换到控制台,以便调出游戏区域数据 1.1 首先找到Steam的快捷方式,在目标一行中最后输入 -dev (前面带空格),然后重新运行. 1.2 如下图上方标签切换到控制 ...
- 【SIGGRAPH 2015】【巫师3 狂猎 The Witcher 3: Wild Hunt 】顶级的开放世界游戏的实现技术。
[SIGGRAPH 2015][巫师3 狂猎 The Witcher 3: Wild Hunt ]顶级的开放世界游戏的实现技术 作者:西川善司 日文链接 http://www.4gamer.net/ ...
- 3D立体显示技术原理与游戏应用历程简介 【转】
本文来自 中关村ZOL 「3D 立体显示」可说是近来娱乐产业相当热门的话题,不但有好莱坞推出<阿凡达>等卖座 3D 立体电影,全球各大家电厂商也积极布局准备推出一系列支持 3D 立体显示的 ...
- Docker 镜像的制作和使用
镜像 Layer(层) 镜像里的内容是按「层」来组织的,「层」可以复用,一个完整的镜像也可以看做是一个「层」.多个「层」叠加在一起就形成了一个新的镜像,这个镜像也可以作为别的镜像的基础「层」进行更加复 ...
随机推荐
- jdk
mkdir java mv jdk1.7.0_71/ java/ [root@centos02 src]# java -version java version "1.7.0_71" ...
- mybatis 如何查找表里的某一个字段,然后返回它们的结果集list ?
<select id="findArgByParams" resultType="string" parameterType="map" ...
- C#的面向对象特性之封装
在C#语言中,共有五种访问修饰符:public.private.protected.internal.protected internal. public 公有访问.不受任何限制.private 私有 ...
- 设计模式学习起点 UML类图笔记
UML类图笔记 大学开设的软件设计课程一般都会学习UML类图,大部分关于设计模式的描述都是使用的UML类图,可以说类图的表示是学习设计模式的起点.UML定义类之间的关系主要有六种:泛化关系.实现关系. ...
- Java Hour 15 以写小说的心态
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 突然想到我最近一直在追的小说,作者每天都会更新两章,而且质量挺高.所以从这篇开 ...
- Digital Image Processing 学习笔记3
第三章 灰度变换与空间滤波 3.1 背景知识 3.1.1 灰度变换和空间滤波基础 本章节所讨论的图像处理技术都是在空间域进行的.可以表示为下式: $$g(x, y) = T[f(x,y)]$$ 其中$ ...
- loj 1025(记忆化搜索)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25902 #include<iostream> #inc ...
- mysql指定某行或者某列的排序
方法: 通过desc: 都无法实现: 方法一: select sp.productid,sp.productname,ss.sku from sp_product sp inner join sku_ ...
- mysql一次插入多条数据
mysql一次插入多条数据: INSERT INTO hk_test(username, passwd) VALUES ('qmf2', 'qmf2'),('qmf3', 'qmf3'),('qmf4 ...
- 在VMware Workstation上安装Kali Linux
在VMware Workstation上安装Kali Linux VMware Workstation是一款功能强大的桌面虚拟计算机软件.该软件允许用户在单一的桌面上同时运行不同的操作系统,并且可以进 ...