AI:实现感知系统

Reading time ~1 minute

这篇我们学习如何通过感知系统实现AI行为。一个AI的质量取决于它能从周围环境获取的信息,并根据这个信息决定什么逻辑被执行。

基本感知系统

基本感知系统包括两个方面:目标(Aspect)和感觉(Sense)。AI角色会有包括视觉、味觉、触觉等感觉。这些感觉会针对特定目标来检测。比如创建一个守卫巡逻AI,拥有视觉来查找作为目标的敌人。也可以拥有触觉,当与敌人靠的很近时,就能觉察到。

检测区域

对于视线,比好常用的检测区域是锥形。如下图所示。根据游戏类型,锥形可以是2D或3D的。

如图示,锥形区域是视线的检测区域。就像颜色逐渐变淡,随着距离边远,检测精度逐渐降低。 实现这样的锥形视线,既可以是简单的重叠检测,也可以是复杂的真实模拟。简单的方法,就是检测物体是否和锥形重合,忽略距离或边缘。而对于复杂的模拟实现,随着锥形扩散距离边缘,远处发现敌人的几率将比近处的低。

而对于听觉、触觉和嗅觉,一个非常简单有效的检测区域是使用圆(球)形检测。

通过全知来扩展AI

全知可以使你的AI变得机智,当然,并不是说它需要知道所有事,而是说它可以知道所有事。某些时候这与现实不符,但通常最简单的方法就是最好的方法。允许AI获取隐藏的信息,可以增加游戏的复杂度。 游戏中,我们会通过具体的数值模拟虚拟的概念。比如血量、魔法之类的。让AI能获取这类信息,可以使它们做出真实的抉择,即使某些时候它们没权限获取这种信息。

例子演示

我们实现一个简单的例子来演示一下。主角为坦克,可以移动到玩家点击的位置。敌人为AI,在地图上巡逻。敌人的感觉有视觉和触觉。即它可以发现前方视线范围内的主角,或是主角触碰到它时也能感觉到。 实现视线检测,只要通过方向、距离和射线,检测目标是否在范围内。碰触检测,直接使用碰撞块进行碰撞检测。

Scriptable Objects 及 游戏架构

Scriptable Objects 相关介绍,及基于其的游戏架构技术 Continue reading

AssetBundle 最佳实践

Published on January 29, 2019

AssetBundle 基础总结

Published on January 27, 2019