Unity3D中的AI架构模型

本文探讨了游戏AI的设计原理,详细介绍了AI角色的感知、思考与行动循环,以及运动、决策和战略三个基本能力层级。通过具体例子展示了不同层级的任务与算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  我们都知道现在AI(由人工制造出来的系统所表现出来的模拟人类的智能活动)非常的火,可以说是家喻户晓。当然,在游戏中,AI也是到处可以找到的,对于AI,我们应该关注的问题是如何让游戏角色能够向人或动物那样“感知”、“思考”和“行动”,让游戏中的角色看上去具有真实的人或动物的反应。

  实际上,对于游戏中的AI角色,可以认为它们一直处于感知(SENSE)->思考(think)->行动(Act)的循环中。

  • 感知:是AI角色与游戏世界的接口,负责在游戏过程中不断感知周围的环境,读取游戏的状态和数据,为思考和决策收集信息。例如:周围是否有敌人靠近等等。
  • 思考:利用感知的结果选择行为,在多种可能性之间切换。例如:决定是战斗还是逃跑?逃跑东在哪里?等等。
  • 行动:发出命令、更新状态、寻路、播放背景音乐和动画、生命值增减等等。

  尽管每种游戏需要的AI技术都有所不同,但绝大多数现代游戏中对AI的需求都可以用三种基本能力来概括。如下:

  1. 运动:移动角色的能力。
  2. 决策:做出决策的能力。
  3. 战略:战略战术思考的能力。

 

  在这个模型中,将AI任务划分为三个层级,分别为运动层、决策层及战略层。运动与决策层包含的算法是针对单个角色的,战略层是针对小队乃至更大规模群体的。需要注意的是,这只是一种基本的AI架构模型。实际中,根据游戏的种类与需求,可能会有所细化或增删。例如,棋类游戏就只有战略层,因为这种游戏中的角色不需要自己做出决定,也不用考虑如何移动。而其他许多非棋类游戏中,就不包含战略层,可能反应迟钝,只需要每个角色做出简单的决定,并且依次行动,而不需要角色之间协调工作。下面来分别分析这三层的任务。

运动层

  在运动层中的主要任务一般是导航和寻路,它们决定了角色的移动路径,当然,具体的移动行为还需要动画层的配合才能完成。例如:我们在游戏中可能会遇到这种情况:在某游戏关卡出,当敌人(此处指电脑)看到你时,他需要召集队友,那么他要拉警报,这就需要他们先移动到最近的固定的警铃,当这个铃较远时,他需要避开障碍物和你才能到达,这就需要较复杂的导航与寻路算法。

  当然,有许多行为可以直接由动画层处理的。例如:如果某任务坐在餐桌旁边,这时如果他做出吃东西的决定,那么只需要播放吃东西的动画就可以啦,不再需要其他的AI算法。运动层包含的算法能够把上层做出的决定策略转化为运动。例如:如果某个AI角色的决策层做出攻击玩家的决策时,运动层会利用与移动相关的算法,时角色接近玩家的位置,来执行这个决策,然后播放攻击动画,以及处理角色或玩家的生命值等等。

决策层

  决策层的任务是决定角色在下一时间步该做什么。决策层的功能可以利用有限状态机或行为树等技术实现,也可以采用更加复杂的AI技术,如模糊状态机、神经网络等技术实现。例如:当角色看不到玩家时,就进行巡逻,否则就进行攻击,在攻击的决策中还可以带有扔手雷、加大火力压制等等附加决策。

战略层

  战略指的是一组角色的总体行为,这时AI算法并不是只控制单个角色,而是会影响到多个角色的行为。小组中的每个角色都可以有他们自己的决策层和运动算法,但总体上,它们的决策层会受到团队战略的影响。

  其实,即使游戏中只有运动层和决策层,也可以实现很复杂的功能。事实上,大部分基于行为的游戏也只是用到了这两层,但是,如果需要团队协作,那么好酒需要某些战略AI。

 

 

本文属于原创,转发须注明:https://i.cnblogs.com/EditPosts.aspx?postid=6637769&update=1

参考:unity 3d人工智能编程精粹

转载于:https://www.cnblogs.com/czx1/p/6637769.html

unity游戏人工智能AI系统框架Eliot - AI fr amework 1.2.1 所支持的Unity版本:5.6.0 及以上版本 Eliot借助可视化编程和算法库,可以在几分钟内创建高质量的AI,这些算法可以为您的高质量的AI角色提供您在游戏中可能需要的所有类型的交互操作。 Eliot 是一套让您专注于在游戏中设计原型并制作角色(AI),尽可能减少分心的工具。它专注于更快地实现目的! 是什么让Eliot与众不同?是设计原型和搭建AI的超快速度,是能让您专注于‘什么你想创建的’,而不是‘该如何创建它’的出众能力。Eliot 是怎样实现的?通过独特的功能集,包括内置的可视化脚本处理,技能,路径系统(waypoints) 和丰富的角色身体模拟系统。 特点 可视化脚本处理:在几分钟内构建复杂的行为。利用可视化脚本的强大功能,可以在人类语言级别上编辑行为 感知:Eliot角色使用射线来感知他们周围的世界,能够支持Stealth风格以及经典RPG风格的感知。 动作:角色可以通过使用Unity NavMesh,A * Pathfinding Project Pro或者是您自定义的扩展插件所构建的系统移动。这个系统拥有一个算法库,能随时为您提供游戏中可能需要的任何类型的动作,例如步行,跑步,躲避,巡逻等。还包括炮塔模式。 仓库: 角色可以提取,使用,拿起和丢弃物品。物品包括武器,药水,硬币,资源等。 资源:角色生存时,使用能量进行活动。角色在系统中可以使用资源(例如生命值和能量值)和其他角色完成交互,也可以在与‘世界’的交互中增加或减少资源值。 技能:攻击,治疗,施放法术......任何您想要的技能。已把全类型技能的的交互封装在一个文件内,方便您以后在必要或需要时按名称调用它。 路径系统(waypoint): 创建、连接方向点,形成并跟随路径,定义区域。Eliot的路径系统允许您通过点击画面来创建路径。您可以使用它在编辑器的已定义区域内以及在游戏模式下生成预制件,或者产生一条能够在达到某一位置后改变角色行为的路径。 优化:Eliot可以处理大量需求。Eliot角色具有多个属性,可让您在必要时通过简单地更改属性值来优化性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值