unity3d游戏unity和人工智能能怎么实现小怪拦截主人公的效果,要完整的代码,谢谢!!!

Unity3Dunity和人工智能能编程精粹 书本源码完整的源码由part1和part2组成,一起下载解压即可

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

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

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

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

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

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

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

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

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

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

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

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

参考资料

 

随机推荐