【译】最终幻想15的关卡AI控制系统

发表于2016-12-28
评论5 1.95w浏览

 
本文是CEDEC 2016上史克威尔艾尼克斯关于最终幻想XV(简称:FFXV)的5篇技术讲座中的一篇,其中的优化篇美术工作流篇已经翻译完,而本次是关于FFXV的人工智能部分,在去年CEDEC 2015上已经有过《FFXV的AI系统的基础讲解》并做了翻译,今年是在去年基础上,对游戏中使用的Level Meta AI技术做进一步的介绍。本文翻译的中文版pdf也在文章最后的附件中提供下载。
本次讲座的概要,分为4个部分
 
 
对于听众的要求,最好是有一定的AI开发经验的程序员,但游戏策划也是可以的。
 
去年的CEDEC2015上也有对FFXV的角色AI决策系统的介绍,这个的史克威尔艾尼克斯在后面提供了英文版PDF,所以就不提供汉化版下载了。
官方的下载地址:
http://www.jp.square-enix.com/tech/library/pdf/2015cedec_FFXV_AI_English_part1.pdf (414M)
http://www.jp.square-enix.com/tech/library/pdf/2015cedec_FFXV_AI_English_part2.pdf (1.38G)
 
本次演讲者的介绍,分别负责了4个章节



 
为了演讲所编辑的介绍视频,在战斗,会话,玩家操作等各种地方都使用了AI技术
视频01   


  使用Meta AI解决来解决Level和AI之间的问题

MetaAI部分的讲座者是第2BD的程序员上段達弘氏
第一部分的演讲主题是Meta AI,上段氏是从总括了游戏中登场的地图和角色等各种要素的关卡设计(LevelDesign)的关系开始讲起的。
对讲座中使用的一些用语做了说明,Level和Meta AI。


 
Level和AI之间的问题之一,就是【想停止AI,却又不能停止】上。各角色的基本行动,是通过AI Graph Editor,各自自律的识别环境和状况考虑后决定的。但是在有关卡设计的前提下,因为事件又需要对AI发出集合的指令,或者是各种特定的行动。因为关卡的命令是绝对的,AI随意行动的话就会影响到游戏的进行。当然在那个时候,完全的停止AI并采用事件的行动也可以回避问题,但停止AI的话又会在各种地方产生弊端。
 
Level和AI的问题之一


 
每个角色都是自己思考,自律的行动,并使用AIGraph Editor来制作。



 
例如在集合待机的情况下,如果AI是在运作的,那么玩家移动的时候同伴AI会识别并让开道路。单如果停止AI的话,同伴就不会识别到玩家的动作,仅仅成为了阻碍物。


 
AI运动和停止时的效果对比。AI运行时,同伴AI会识别玩家的动作让开道。但AI停止的话,同伴就成了障碍物


 
视频02

解决这种问题所采取的方法,只是简单的【不停止AI】。当然,接下来后面的动作也是问题,像在待机中也会准备多种的AI模式,来根据游戏的情况限定行动,关卡方面会适宜的进行切换。
 
接下来的问题是【AI不做判断,全部由Level来做指示】。AI个人对应的状况是有限度的,而Level要去指示每个AI的全部内容也太勉强了。例如,Level要诱导玩家移动时,作出这种指示后有可能全部AI都有反应。
 
 
蓝色部分是AI,绿色部分是Level


 
直接了当由Level方面来指定带路的角色也是可以的,但也有指定的同伴比其他同伴距离玩家更远等,各种游戏无法进行的情况,要考虑的状况很多,全部交给Level也是不行的。这里就要使用Meta AI,作为设置为俯瞰Level整体的AI,对应游戏的状况,在合适的时机给出合适同伴的指示,是整体有很高控制感的技术。
接到Level需要向导的指定的时候,由Meta AI来接收这个命令。Meta AI会检查各个角色的情况,选择合适的同伴来传达命令,然后被命令的角色采取行动。像这种把握游戏中的状况,作为Level和AI之间桥梁的就是MetaAI的工作了。
 
苦恼的时候就依靠MetaAI了



 
还有在游戏的战斗中,同伴有危险时其他同伴去帮助的,也是MetaAI来处理的,观察战斗状况,向闲置的角色发起命令,让合适的人过来。而相反没有MetaAI的情况,会变成每个AI知道同伴的状况,然后一起跑过去的状况。Meta AI所负担的,可以说是给予了团队的智慧的作用。
当遇到危险时,使用MetaiAI和不使用的效果对比。


 
视频03

那么这个问题,不用每个AI自己去判断而是整体的控制上,是采用Meta AI来解决的方法来进行开发的了。

 
视频04

本部分的总结。



  对应游戏状况来选择对话的对话量产系统
接下来,是使用了MetaAI的【AI会话量产系统】的介绍。这个是制作的世界中和同伴旅行的游戏,要求实现那种对应的情况可以产生对话的系统,在游戏中的战斗和移动时,同伴在一起时会自然的发生对话。
 

 
剧本是对话的单位,所以这里的AI对话量产系统也被称作剧本系统。这里也要完全使用Meta AI来实现。



 
那么,来看一下AI对话量产系统的具体流程。首先是播放对话的时间,是通过Level,Meta AI,CharacterAI,向AI对话量产系统来发起请求。对应需求的状况来指定剧本组。


 
然后,是播放的脚本的选择。脚本是对应游戏的状况设定了播放的条件,在指定的组中,通过MetaAI来检查满足条件的脚本来选择。再按照脚本来播放语音和字幕。因为Level和同伴AI只会发送对话的请求,再通过MetaAI来选择合适的对话来播放。
例如进到街道里,Level会请求播放【进入街道的剧本组】。然后是Meta AI把握到现在的时间是【夜晚】,【Ignis在附近】的情况,那么就在【进入街道的剧本组】中,选择条件符合的【劝Ignis住宿的剧本】,这样的流程。


 
战斗时也是一样,由角色AI请求对话,然后Meta AI根据战斗情况判断是从容还是严峻,来播放适合的对话。


 
战斗从容和严峻情况下的对话视频

视频05

而且,在播放对话的同时,MetaAI还会指示各AI变更意识。如果是听对话的角色会指示他【请注视说话者】,而说话者会【作为说话者的行动】的情况。然后各AI对应Meta AI的指示,身体和头转向说话者,并改变说话者的动作。而角色的世纪行动也会有意识的表现。FFXV中,实现了一连串流畅的自然对话的场景。


 
对话场景中朝向注视点的说话者(蓝色球的位置)的状况。扭头的角度和身体转动角度是各AI自动的来判断的。



 
配合对话转身和扭头的视频

视频06


除了对话场景之外,还有在洞窟中冷得打哆嗦,下雨时仰望天空这样的意识表现。这些对于玩家操作的角色也是同样适用的。

 
视频07

【AI对话量产系统】的最后介绍的是剧本播放的条件示例。上段氏也提到【策划通过Excel可以简单的指定】。



 
【AI对话量产系统】部分的总结。


 
可以对应各种状况的F2F系统
接下来登场的高橋光佑氏,负责介绍的是把对方面部大幅显示的面对面式对话系统【F2F(Face-to-Face)】。这种F2F对话的特征是对方距离非常近,并且不实用过场动画而是在可游戏的状况下发生的。
 
 
第2BD的高橋光佑氏负责F2F系统的介绍。
 
 
 
F2F的介绍动画

视频08

这种F2F大体上是由,掌握游戏全体状况的Meta AI,可以灵活对应角色的不同条件和动作的角色AI,以及掌握动态环境的导航系统三个部分构成,作为可以流畅的加入事件的AI而被充分使用的。



 
然后F2F的问题,要求同样的对话数据,可以对应地图上,车里,住宿等不同的地方的发生的通用性。这个问题的解决是采用MetaAI来辅助角色AI的方法。



 
F2F系统可以让同样的对话对应不同的情况(地上和车里)。

视频09


上段氏的说明,MetaAI是可以把握包含角色在地图上和车里的全部的状况。通过MetaAI的支持,Level可以在适合的时机请求F2F,然后在向角色AI指定命令来执行,这样就实现了通用性。



 
角色对应状况行动的通用性的问题,使用了MetaAI来解决。接下来的问题是【开始动作】。这个也是为了F2F能流畅开始所产生的问题。在地面区域上,因为操作的玩家的转动导致开始地点不定,而且可能发生各种情况。F2F发生时角色如何向所确定的位置移动,走哪条路,不实际运行是不能确定的。



 
可以解决这种问题的,就是检索起始地点到目标的可以移动的路径的导航系统。通过这个系统来辅助角色AI解决问题。这样通过Meta AI,角色AI,以及导航系统的组合,作出了可以流畅的对应事件的F2F系统。



 
F2F动态对应环境的演示视频

视频10


F2F系统的总结。



 
高效的管理AI行动的AI模式
接下来的话题是对AI模式的详细解说。AI模式是指关卡设计师准备的对AI进行大致范围指示而设定的行动单位。设定AI的移模式有通常状态的【Normal】,角色待机的【Wait】,向指定场所移动的【Go to】,给玩家做向导的【lead】,经过特定场所移动的【Route】,以及不考虑其他事情紧跟着玩家的【Follow】。在游戏中按照关卡设计师的需求来切换模式,通过给予一定成都的指示,来作出感觉更好的AI处理。



 
而且这种AI模式不光是要求关卡设计师可以灵活的切换AI的行动,还能让AI设计师高效的制作和编辑各角色的AI行动。在FFXV的广阔世界中运动的全部角色都是由AI驱动的。因为有这样的AI数量,就需要有高效来制作的系统。



 
演讲中播放的视频是今年3月免费发布的白金试玩版的影像。在试玩版中也是使用了全部的AI模式。里面Lead模式是,作为引导者当角色和玩家距离太远时,回返到接近玩家的距离等待,而Route模式,是通过设计师设置露点,可以让AI很好的走过,即便有高低差也名能毫无问题的移动。

视频11


为了实现要求而采用的方法有两个,对于关卡设计师要求的灵活和简单的切换AI行动上,是用公共的框架来对应的。而高效制作和编辑AI行动方面,采用的是把AI的处理共享的资产化的方法,以及把整体构造的一部分做变更的【覆盖 Override】。使用了共通化方法的AI模式,不同的角色也可以执行同样的动作,进而通过把一部分行动覆盖,制作出了有个性的表现。
 

 
【FFXV】中AI是状态机和行为树的混合构成。然后用Tray分别管理集合,用分层结构来保存。



 
通过AI模式框架的公共化,不仅仅是魔导兵和同伴角色,卡班库尔(体验版那只小动物)这种人形以外的角色,也可以准备同样的Tray在level上做相同的操作。




 
不同AI模式的角色使用用一个Tray

视频12


在AI模式里,把Tray作资产化的资源来积极的共享,不光是其他的AI模式,个别处理之外也可以随机的使用,来达到省力化的作用。




  
在谋求公共化和省力化的同时,也有为了制作出角色独立的运动和个性的覆盖功能和AI模式的部分编辑功能。通过使用这些技术,可以实现例如带领角色的时候玩家离开了,魔導兵会冷漠的等待,而同伴角色会回头挥手。




 
下面的视频演示的是通过编辑AI模式的一部分功能来表现角色个性

视频13


AI模式的总结


被AI控制的玩家角色 
在演讲开始时上段氏讲到了【所有的角色都是AI来控制的】。在FFXV中,玩家角色也毫无例外的受到了AI的控制。对于玩家角色和AI关系,是由和之前与高橋氏一样负责AI Graph Editor开发的下川和也氏登台解说的。
 

史克威尔艾尼克斯 第2BD的程序员 下川 和也氏
由人的意志来操控的玩家角色,为何要放置在AI的控制下的呢?这个是为了提高游戏的高代入感,需要考虑与AI角色生存的世界可以协调,那么就要求玩家角色也和AI角色一样的,可以在Level和Meta AI的控制下那样的灵活的系统。



 
下川氏接着介绍到【玩家操作和AI控制同时利用时,容易想到的一个问题就是控制器之间的冲突】。也有那种玩家操作和AI控制不匹配,无法让人满意的动作。一般的方法是根据场景来做控制的切换,那么如何让这两种控制可以流程切换就成为了问题。最后游戏团队采用了玩家操作的时候AI也并行运作的方法来解决问题。
 

  
具体来说,就是在实际的玩家角色运动时,玩家的控制系统和AI的玩家操作双防都不是独占的,而是互相的谦让和习作的来发送命令,这样让控制不会产生冲突。然后是通过Level和Meta AI的调整,让玩家角色来运动。
 
玩家操作和AI并行运作的概念图



 
通过这个方法,其他的AI角色所有的意识表现(特别是同伴)也可以反映给玩家角色,进一步的让玩家角色与游戏世界变得协调。



 
玩家AI的实例视频1 待机中天气变化的动作和移动中的会话,这种玩家操作无法实现,只有AI才能实现的意识表现。这样玩家角色同样也作为游戏世界中的角色而存在

视频14


玩家AI的实例视频2 移动中的速度变化

视频15


 
玩家AI的实例视频3 玩家操作向RouteAI模式的切换

视频16


 
通过Level和Meta AI控制的事件中,玩家角色可以利用AI系统,来扩大表演的幅度。
下川氏也负责了同伴角色的战斗部分,也提到了在为FFXV的战斗添彩的就是和同伴的连携攻击中是如何使用AI系统的。虽然像是在战斗中指示同伴使用能力的系统,但是这里是玩家操作和AI并用,使用了各种的AI系统。



 
下面的视频中的具体示例,是Ignis的伙伴命令的介绍。首先Ignis标记了多个敌人,然后由玩家(Noctis)向这些被标记的敌人发动连续攻击,最后在通过QTE做追击的战斗流程。在这个战斗流程中,从Ignis到Noctis进行攻击是由AI控制(AI Graph),而最后通过按键输入来播放追击动作,则是Sequence Graph进行的。

视频17


还是前面的例子,从AI界面来看用户操作和AI控制的组合

视频18   


玩家AI部分讲座的总结



 
制作生存在游戏世界中的怪物AI
演讲最后登场的是负责了全部敌人角色的並木幸介氏,回顾了本次FFXV中怪物的制作方式,以及三个主要的变化。

史克威尔艾尼克斯 第2BD的程序员 並木幸介氏
 
其中的一个变化就是【AI和动画的细致化】。不光是敌人的动作所需要的数量大幅的增多,要追求真实度,动作的同时化,并行化以及细致化也进一步的提升。



 
例如,在怪物移动时以前就是【在场地里旋转后再移动】的方法,这种生硬的动画,是无法达到FFXV的品质的。所以,要实现行动同时也进行旋转并且没有不协调感的动作的并行化,制作更加生物感的动作。



 
 

 
最新的怪物中,头朝向玩家并横向的跑过来等动作,追求生物的真实感。在整理程序的同时动画师也是一个一个的调整来提高真实度。



 
2016年8月时怪物的视频

视频19


为了实现真实的敌人旋转,在动画的参数中加入了旋转触发器。这样就可以在敌人的动作时间内,指定出旋转也没关系的区域。例如四足动物的脚都在地上时旋转,就会有明显的滑步现象。但是当脚离地或是做很大动作时,就可以没有不协调感的旋转了。而这种可以自然旋转的时间,是通过旋转触发器(Trigger)来精确指定的。




 
攻击旋转的演示动画

视频20


关卡制作上的第二大变化就是【数据增加到了工作流的极限】。通过细致化的庞大数据,像真实生物一样的品质提升了。但是品质提升的同时,处理的数据也极端的增多。在怪物的部分,因为极限变得有些棘手,所以尝试了自动化的处理。



 
视频21


下面的视频是自动化尝试中的一个,攻击动作的解析系统。通过攻击动作和碰撞(打击判断),解析系统会自动的计算攻击到达的距离和角度,然后AI利用这个结果,把之前需要手工调整的部分半自动化的实现。



 
攻击动作的解析视频

视频22  


然后第三个变化就是【AI和动画的距离拉近了】。並木氏指出,在2000年代,AI和动画技术是完全分离的,而到了最近AI的细致化后,负责AI的人员也必须要接触动画了,反过来负责动画的人员也必须要掌握AI部分。



 
随着AI和动画关联的紧密,动画和AI也可以说变成了一体化的系统,要实现更高品质的效果时,也产生了工作无法分割的问题。在FFXV中因为也必须要处理这些棘手的数据。以后进一步要求品质的情况下,不光是单纯的工作量负担增大的问题,还会出现靠人力无法应对的情况。



 
並木氏也提出了一些解决这种问题的办法,就像攻击动作解析系统那样的自动化技术。这样因为可以更好的连结AI和动画的边界,在维持分工的工作流的同时,进一步的细致化,用比较现实的成本来提升品质。



 
怪物部分的总结



 
讲座也到此结束了,讲座的汉化版附件在下方下载。



微云下载链接 https://share.weiyun.com/eddff8f5a3220b1b996a9b9213ea9264 

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

0个评论