您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 元素千图斩 于 2019-1-6 00:00 编辑
价格:1元素币 (或1余额)
打赏
销售总额:0元素币 购买人数:0 11.1 简介
“行为树(Behavior trees)”和“状态机(State machines)”最初是两项独立的技术,他们各有千秋。 行为树(Behavior trees)意在制作一个角色行为序列,而有限状态机(FSM)意在制定一个稳定的行为循环(Miyake 2015a, Miyake 2015b)。 对于图11.1所示的FF15,我们开发了一个新的决策系统,它使用“夜光引擎(LUMINOUS STUDIO,SQUARE ENIX的游戏引擎)”,将行为树和状态机融为一体。
图11.1
该系统既具有行为树的灵活性,又具备状态机的控制力,并为后续开发提供了可扩展性(图11.2)。这个被我们称之为AI Graph的新决策系统,对节点形式做了扩展,以便实现“有限状态机(FSM)”和“行为树”之间的节点共享,提供了用于组织代码复用和行为黑板(Behavior blackboard)的名叫“托盘(Trays)”的先进技术;以及大量用来集成角色具体底层行为的功能(Miyake 2016a)。
图11.2 关卡策划可以使用AI Graph的可视化节点图工具为每个角色制作一个多层决策系统。
例如:第一步,关卡策划通过设置并连接若干个状态机节点来创建一个具有多个状态的顶层状态机。然后关卡策划可以为该顶层状态机中的一个或多个顶层状态新建子状态机,抑或是让关卡策划们在任何顶层状态内创建新的行为树。此外,关卡策划可以在每个后续子状态中创建新的状态机或者行为树。通过这种方式,关卡策划可以通过简单编辑工具上的节点来创造状态机和行为树的层次结构。
AI Graph的每一层还有一个黑板系统,设计师可以通过该系统记录游戏中使用的变量。通过连接不同节点的黑板,不同的层可以共享和使用这些变量。
AI Graph系统具有实时调试系统,可以与游戏“运行时”连接并与之通信。活动节点在执行时会在决策图工具中被高亮显示。这使我们更容易在开发过程发现决策图中的问题。AI Graph通过其数据驱动的方法,在开发过程中保持了角色AI设计的可扩展性,变化性和多样性。在本文中,我们会解释AI Graph的结构,运作原理,以及在FF15中的应用。
FF15是一款RPG游戏,玩家与三个伙伴一起游览一个大型开放式世界,并与他们并肩对战怪物和敌人(图11.1)。所有的角色都能够智能地决定自己的行为。对于玩家而言,AI用于为玩家角色提供行为支持。 11.2 AI Graph结构和操作原理
AI Graph是一个基于节点的图形系统,可以用基于GUI的节点图形工具制作层次结构。该工具在游戏“运行时”或者“离线时”都能工作。在AI Graph里,开发者可以在每层创建状态机或者行为树(图11.3)。如果想要创建下一层,只需要选择一个节点然后在其中创建状态机或行为树即可。AI Graph用这种方式构建了一个分层嵌套结构。随着需求的变化,分层嵌套结构允许开发人员根据需要来创建不同的层。AI程序中所有的数据都由AI Graph生成。
层次结构按照以下方式执行。当状态机或者行为树的节点中包含另一层的时候,它会在下一层立即执行。在过程中节点会一直被执行,直到它无法继续深入。然后在完成低层后返回高层。
图11.3
当状态机的转换发生在上层时,必须先结束所有正在执行的低层的状态。在完成所有下层处理之后,才会开始转换(有关中断的处理,请参阅第11.5.3节)。
11.3 AI Graph工具
AI Graph工具是用于制作角色AI的“夜光引擎”的一部分。 工具分为三个不同区域(图11.4)。
图11.4
屏幕中心的窗口:通过连接节点来构建状态机和行为树图的窗口。
左侧垂直长窗口:显示已制作并可以复用的变量和节点。
右侧纵向长窗口:显示用于自定义节点的属性,称为属性窗口。
点与节点之间可以通过弧来连接。在状态机中,节点表示状态,弧表示状态的转换。在行为树中,节点表示行为树的行为或者操作符,并且用弧表示行为树结构。
托盘(Trays)用于封闭状态机或者行为树。这使得开发者可以托盘来移动整个状态机或行为树,并且还可以通过托盘层的层次结构来查看分层的体系结构。
(仅供美观,图文无关)
|