- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
游戏AI的架构模型
游戏AI的架构模型
运动层:AI的具体行为,比如移动
决策层:决定AI下一时间步该做什么
战略层:从集体层面对个体AI进行控制
除此之外,还要结合动画系统,物理引擎,感知系统等,共同组成人工智能
个体AI
Seek是最常见的AI行为,最简单的实现是给AI添加一个修正力使之向目标移动
Flee和Seek相反,通常我们都要设置一个Distance范围判断结束行为。用Vector3.sqrMagnitude向量平方长度,计算会更快
Arrival到达目标减速至停止,可设置一个StopDistance,距离大于停止距离时给一个Force移向目标
Pursuit追逐会预测Target的未来位置,比如预测t时间内Target不会转向,AI将计算未来位置朝之移动。另外还可以用点乘计算夹角,判断双方是不是面对面
Evade逃避。与Pursuit反向
Wander随机徘徊。设置一个圆周半径,每帧给Target附加随机位移,比AI只按照预设好的路线移动更加真实
FollowPath路径跟随。设置radius路点半经,让AI在路径间切换更加真实
CollisionAvoidance避开障碍。向前射线检测障碍物的包围圈,产生一个排斥力。
集体AI
②
第一步:取起始结点,将其8个邻接点加入Open,并将各邻接点的父节点设置为起始节点,起始点加入Close
?
第二步:计算open表中结点的代价f=g+h,计算规则是:
g:取父节点g值,根据n点和父节点的连接方式计算。如果是直角连接g++,对角连接g+=1.414
h:采用欧几里得距离/曼哈顿距离[不考虑障碍物]
根据f大小来确定open表中下一个要被检查的节点
?
第三步:取f最小结点,检查8个邻接点,障碍物点无视。
计算各邻接点通过当前结点得到的新g值,计算规则同上
???新结点加入open表
???已经在open表的,若新g值比原值大,不需更新。若小于原值,则更新g,f,父节点,而不用更新h
???已经在closed表的,按上图文字处理
?
第四步:对于具有相等的最小代价值f的结点,可任选一个计算。
循环直到终点
其他
1.对于已经计算的(存在于open或closed表中)节点,无需再次计算,因为选择那些节点只会绕远
2.障碍物节点加入closed表,对于被open或closed表包围的节点,也加入closed表中
?
和Dijkstra算法的区别:
Dijkstra是BFS,不会去预估到终点的距离,因此在有多个权值相等的路径时会搜索很多不必要的结点。而且没有考虑障碍物
A*是按照启发函数,向着目标搜。很适合寻路
Dijkstra会求出所有点的最短路径,得到理论上的最优解,而A*则只会找需要计算的点。结果是A*更快,但是不一定是最优解
Unity寻路
?
AI使用NavMeshAgent组件
如果要配合物理引擎使用,则AI需要有kinematic的刚体,表示刚体由nav控制
和Animator配合使用的话,最好不要用rootmotion
将地面勾选NavigationStatic,再打开Navigation视图,点击bake即可看到蓝色可达区域
NavigationArea可以设置object为不同Area,会用不同颜色表示
可以在NavMeshAgent中修改其可以行走的Area
?
OffMeshLink添加跳跃点(手动路径)
默认的NaveMeshAgent组件上面是勾选了AutoTraverseOffMeshLink(自动通过OffMeshLink)选项的。这样的意思是人物只要到了OffMeshLink的开始点,就会自动的移动到OffMeshLink的结束点。?
?
NavmeshObstacle
enable时不可通行,false时可通行。此情况下物体不会暂停
?
寻路还有很多用法,这里就暂不详述了
?
AI感知事件
?
AI往往要感知视觉、听觉等信息来决策下一步的行为,其中又包括位置信息,对象属性信息,自身信息等
?
1、轮询(主动查询信息)
轮询类似编程中的switch-case,是AI周期性地查询所需要的信息,轮询非常常见,容易维护,但有效信息率低,花费性能较多
轮询中心(没有必要每个AI都进行一遍查询,而是集中处理需要查询的信息)
?
2、事件驱动(被动得知信息)
事件是一种高效的消息传递机制,由事件分发者主动通知每个感兴趣的AI,这样就使AI准时获得有效信息
可以做一个中心检测系统(事件管理器),记录每个AI感兴趣的事件,并通知他们,还方便了调试
?
3、Trigger触发器
触发器其实和事件比较接近,相比之下,触发器是事件的本源,比如监听声音的声音触发器,检测观察物的视觉触发器,等待时间的时间触
您可能关注的文档
- 浙江大学大化G实验室安全考试选择题试题及答案.doc
- 浙江大学传播学专业研究生课程进修班.doc
- 游石湖公园作文600字.docx
- 游苔莎——女性内在性的超越和自我身份的寻求——对哈代《还乡》女主角的另一种解读.docx
- 浙江大学城市学院第八届美食节.doc
- 游陶然亭公园作文.docx
- 游体育公园作文.docx
- 浙江大学城市学院大学物理B(上)练习册-7(作业版).doc
- 游艇的设计与制造IPO上市咨询(2014年最新政策+募投可研+细分市场调查)综合解决方案.docx
- 浙江大学城市学院大学物理B(上)练习册-5、6及复习3.doc
- 第12课 大一统王朝的巩固 课件(20张ppt).pptx
- 第17课 君主立宪制的英国 课件.pptx
- 第6课 戊戌变法 课件(22张ppt).pptx
- 第三章 物态变化 第2节_熔化和凝固_课件 (共46张ppt) 人教版(2024) 八年级上册.pptx
- 第三章 物态变化 第5节_跨学科实践:探索厨房中的物态变化问题_课件 (共28张ppt) 人教版(2024) 八年级上册.pptx
- 2025年山东省中考英语一轮复习外研版九年级上册.教材核心考点精讲精练(61页,含答案).docx
- 2025年山东省中考英语一轮复习(鲁教版)教材核心讲练六年级上册(24页,含答案).docx
- 第12课近代战争与西方文化的扩张 课件(共48张ppt)1.pptx
- 第11课 西汉建立和“文景之治” 课件(共17张ppt)1.pptx
- 唱歌 跳绳课件(共15张ppt内嵌音频)人音版(简谱)(2024)音乐一年级上册第三单元 快乐的一天1.pptx
文档评论(0)