资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1.导论Virtools dev的AI软件包为电视游戏或虚拟现实带来了更高的仿真度。AI软件包提供一组扩展的行为模块,这些行为模块可以管理特定角色或物体。使用AI软件包提供的行为模块,用户可以定义角色或物体为AI物体(一般称为AIbot),这些物体可以对周围环境做出评测,并且作出行为上的选择,创建群体行为和独立角色,使那些角色可以寻找物体、守卫巡逻区或与其他角色格斗等等。AI行为模块首先赋予角色视听感觉能力以便侦测他们的环境,然后使用更高级的行为模块(例如follow、run away、hide等)管理角色对环境做出的反应。在virtools中提供四类AI行为模块,他们是:Initialization(初始化行为模块组):在执行AI之前对场景进行测试、初始化AI引擎和场景中的AI物体、自动生成或输入AI引擎所需要的环境数据。Data Edition(数据编辑行为模块组):用户编辑环境信息的行为模块。AI Logic(逻辑行为模块组):测试条件,然后在复杂的环境中开启恰当的AI action。Action(动作行为模块组):这些行为模块是AI软件包的核心部分,这些行为模块可以使AIBots拥有相当智能的行为(例如射击、藏匿或跟随等等)AI行为模块和virtools标准的行为模块在使用方法上是相同的,通过参数调整诸如秘密行动、听觉能力和组队行为的标准。2. 流程AI过程包括三个主要任务:定义场景、了解环境以、决策和行为。用户首先要对场景和要使用的角色进行初始化定义,ai软件包提供专门的行为模块可以进行该类工作。了解环境需要使用Graph Data。Graph Data需要用户使用特定的行为模块创建,并且保存到硬盘中。决策和行为需要使用AI的Action类行为模块配合Logic类行为模块。Logic类行为模块为AIbots提供决策,然后触发各种由Action类行为模块控制的格斗、射击、藏匿或徘徊等动作。Graph Data用于通过使用动态射线选择路线或寻找可以躲避目标AIBot的位置。所有的AI动作都通过消息驱动,消息被用户的脚本解释和处理并且一般会触发一个动作。2.1. AI执行过程在使用AI功能之前,用户首先需要创建场景。用户需要保证所有的角色和动画的功能正常,并且在添加任何AI功能之前需要设置碰撞侦测和障碍物。障碍物和地板必须被声明为固定的障碍物,并且用户需要建立碰撞系统。用户需要添加PathObject属性到诸如门、梯子等一类物体上。这将影响到路径搜寻。首先有三个初始化行为模块需要在每一个场景中被运行:AI Level Settings行为模块需要出现在Level脚本中、Create AI Entity 行为模块和Set Personal Parameters行为模块需要出现在AIbot的脚本中。当用户的场景准备好,需要使用Test Agent行为模块测试场景中的位移和碰撞然后使用create graph data行为模块,为AIbot勘测地形。Graph Data可以描述环境信息,主要的作用就是简化环境信息,使用graph data可以加快角色在环境中寻找路径的能力。graph data信息会在硬盘上面保存bin文件,并且可以被edit graph行为模块查看、编辑。graph data信息可以被import data行为模块导入并在场景中保存为一个数据阵列。注意,用户可以为不同的AIbots生成不同的graph data,不同角色的graph data会相同的环境进行不同的描述。例如个子较高的角色可能不能到个子教矮的角色可以到达的区域,这时候两个角色虽然同处于同一个环境中,但是需要不同的graph data,以便定义不同的角色的活动区域。使用edit pathway行为模块创建或辑特定路径,路径独立于Graph Data。例如创建一个角色的巡逻区最后可以使用Actions类行为模块配合Logics类行为模块,添加AI功能到AIbots上面。3 使用AI软件包3.1. 准备工作AI基本上是工作的最后一个步骤。用户首先需要构建场景和脚本。然后确定所有的角色和动画功能正常,并且在添加AI功能之前需要确定碰撞监测和障碍物需要进行正确的设置。在使用AI之前,需要为场景中的特定物体添加AI (Path)Object和Collision Manager这两类属性定义障碍物地板和障碍物需要被定义为固定的障碍物。首先需要打开物体的setup窗口,为物体添加Fixed Obstacle属性,之后可以通过属性值修改固定障碍物的属性。定义路径物体路径物体是场景中用于更改所访问的区域的元素。用户可以为诸如门、梯子、电梯和传送点一类的物体添加对应的属性,并且做出正确的设置,这样做之后则可以作为路径被搜寻到。定义避让区域AI的动作类大多数行为模块可以控制物体移动,这些行为模块中的array of points to avoid参数可以定义某些区域在物体移动的时候应该避让,我们称之为避让区域。用户需要创建一个数据阵列定义避让区域,数据阵列中列出所有围成避让区域的点的Vector。行为模块中的displacement mode参数提供的Furtive displacement(隐秘行动)和avoid dangerous points(躲避)两种模式,会对避让区域做出反应。Furtive displacement(隐秘行动)模式会使物体在避让区的时候尽可能隐藏自身;avoid dangerous points(躲避)模式会使物体尽可能的远离避让点。很多时候,删除Graph Data中的点也可以使AIbots避让某些区域,这比创建避让点更加容易一些,但是这种方法生成的避让区域将是静态的,在避让区域时常需要更改的时候这种方法就无能为力了。有些行为模块中会有referential for the points to avoid参数,当使用referential for the points to avoid参数的时候,描述避让区域的数据阵列中的点的Vector值,将不再使用世界坐标系统。创建角色群组AI Action类某些行为模块中会有Displacement Mode参数,当使用参数的furtive displacement considering the characters view angle选项的时候,物体会在角色的视觉范围内隐秘行动,这个时候用户需要设置Groups of characters to avoid参数为某个特定的由角色组成的群组。3.2. 初始化AI与程序测试3.2.1.初始化AI用户需要使用一些AI Initialization类行为模块初始化AI,并且在脚本开始的时候这些行为模块必须被触发。AI Level Settings一般用于整个场景的AI初始化,而Create AI Entity行为模块和Set Personal Parameters行为模块用于单个物体的初始化。AI Level Settings 行为模块AI Level Settings行为模块必须使用在level script上,并且只需要也只允许在AI角色被初始化之前启动一次。在AI Level Settings行为模块里面有三个重要的设置:Max entity:场景中允许出现的最大AI物体数量。比较大的参数值会占用更多的cpu和内存资源。allowed time per frame(ms):AI time将ai的计算任务分配到很多桢,以便保持桢速率。参数值为0代表着没有时间限制。参数值比较低的时候,计算会被分配到更多桢,aibot的响应速度会降低。参数值比较高的时候,桢速率会降低。这个参数值常被设置为1到5毫秒之间,设置这个参数需要考虑AIbots的数量、场景的复杂程度、aibots的响应速度和桢速率需求。value of a meter:用于变换创建模型的单位。如果模型所使用的单位是英寸,那么这个参数值应该设置为39.37这个行为模块添加诸如AI_WALK、AI_RUN等消息。他允许AI Action类行为模块发送这些消息,这些消息将会作用于用户的脚本中。这些消息会触发类似Unlimited Controller一类的行为模块控制的角色动作。Create AI Entity行为模块在物体运行任何其他AI行为模块之前,用户需要为物体运行Create AI Entity行为模块,这会将物体添加到AI引擎的物体列表。任何需要被AI引擎计算的物体都必须使用create AI Entity行为模块进行定义。所有的路径物体同样需要使用create AI Entity行为模块进行定义。create AI Entity行为模块可以将物体定义为三种不同类型的AI物体。Player:有游戏者控制的物体,虽然这些物体不被AI引擎控制,但是这些物体会影响AI引擎内其他的物体。AIbot:这一类物体时被AI引擎控制的自动物体Path Object:这类物体只会对搜寻路径起作用,一般用于定义门、电梯、传送点或梯子一类的物体。注意:在create AI Entity行为模块必须是物体脚本中第一个被触发的行为模块,所以create AI Entity行为模块出口处的连接必须被设置延迟,这样才能保证所有的AI action类型为模块会在物体被初始化之后运行。因为很多的AI行为模块会需要物体作为参数输入,但这些作为参数输入的物体必须是已经被初始化的物体,所以我们说,所有的AI action类型为模块必须在create AI Entity行为模块将物体初始化之后才可以被执行。另外当一个物体不再需要被ai引擎考虑的时候,可以使用Remove AI from Entity行为模块将物体设置为非ai物体,这样会减轻ai引擎的计算负担。Set Personal Parameters行为模块这个AI初始化行为模块可以在需要的时候动态的设置角色的技能和属性:视听敏锐度、视觉角度、组队信息、Graph Data信息使用和路径搜寻精度等。(例如如果一个AIbot进入了一个黑暗的房间,那么视觉敏锐度就应该降低,并且使用新的Graph Data)。这个行为模块同样需要在物体脚本的开始被触发。在Set Personal Parameters行为模块中会出现如下参数:Entity Direction:设置物体正前方的方向Team ID:组队的编号Hearing acuteness:角色听觉的敏锐度。设置角色和声音的距离,当角色和声音之间的距离小于这个参数的时候,角色就可以听到声音。Visual acuteness:角色视觉的敏锐度。设置角色和可视物体的距离,当角色和可视物体之间的距离小于这个参数的时候,角色就可以看到物体。 Angle of view cone:角色的视角大小,设置角色可以看到的范围Bot Max Speed:bot的行动速度(单位为 米/秒)Bot Height:角色的双脚和位置之间的y轴距离Bot Width:角色的宽度Distance Between two Goals:当角色在追寻一个活动的目标,并且这个目标移动超出了参数所设置的距离,角色将启动一次新的路径搜寻。比较大的参数值将会降低目标搜寻的精准度,但是会提高程序的执行速度。Minimum Distance to the goal:当角色与目标之间的距离小于这个参数的时候,角色会认为自己已经到达。Minimum Distance to an inte
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号