NSDT工具推荐Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 - 3D道路快速建模

虚幻引擎可以让Pawn做一些事情,比如追赶和跟随玩家,这被称为AI行为,它的效果出奇的好!以下是如何 以最简单的形式设置Pawn的AI行为,原则上我们必须

  • 创建一个 AI 控制器
  • 将 AI 控制器添加到 pawn
  • 定义一个 Nav Mesh Bounds Volume
  • 确保两个角色都在所述体积内

在教程示例中,我们有两个 Unreal Guy:玩家控制的角色是小灰人,另一个是AI控制的小红人。我可能会将它们全部放入一个演示项目中,以便你自己体验它们的行为。本文底部有一段视频展示了它是如何工作的。

1、创建 AI 控制器

这东西有点难找。创建一个常规的新蓝图类并搜索AI Controller。它在Actor – Controller之下。选择它并将其命名 — 我们将其命名为 EnemyAI:

接下来在图表中创建一个自定义事件,当我希望小红人走向我们的小灰人时可以触发该事件。AI Move To 有一个节点。这是它的样子:

这需要一个 Pawn(小红人,或敌人控制的 pawn)和一个目标(我们的小灰人,或玩家角色)并将 pawn 移向目标。下一步将更清楚为什么可以将红人作为受控Pawn访问。接受半径是Pawn接近目标的距离。

我们想每隔一段时间调用这个事件,或者当敌人发现角色时,或者只是更新他需要在飞行中去的地方,以便他跟随我们。为此,我们将按功能创建一个计时器,因此他的“搜寻”目标每秒钟都会更新一次。当我移动时,他会发现它。我会将它与 Event Begin Play 联系起来,以便它立即开始,但可以根据需要进行更改。

需要将计时器设置为循环以使其连续执行,并且需要调用一个函数——这是我们在上一步中设置的名称。编译并保存,我们在 AI Controller 中完成。

2、将 AI 接入敌人角色

小红人只是一个普通的虚幻人,具有不同的材料。因此,他基于一个角色类,Pawn类的后代。在类默认值中有一个 Pawn 部分,可以在其中指定AI 控制器,选择我们之前创建的那个。

现在 AI 控制器可以访问它的 pawn 并使用 AI 功能来驱动目标(即小灰人)。

3、为敌人 AI 定义一个区域

我们需要在关卡中添加一个名为Nav Mesh Bounds Volume的特殊对象。它隐藏在 Place Actors 选项卡右侧的 Volumes 下。将一个拖入你的场景并将其放大到你希望敌人行走的任何位置:

它看起来有点像 Box Collision,在你玩的时候不会出现。在放置期间,按 P使其可见性切换为绿色。体积需要稍微穿透地板,这样虚幻引擎才能计算出我们的 AI 可以到达的地方。它真的很聪明,可以设计出可以走的路径,包括走楼梯。这是我的演示级别扩展到外部时的样子:

您可以将多个 Nav Mesh Bounds Volume 组合成一个路径网络,供 AI 进入。在这里,我为小灰人定义了一些安全区域。它们都只是重叠的Volumn:

两个角色都需要在这个网格上才能开始追逐。这个概念在 Zak Parrish 在 EPIC 网站上名为 Twin Stick Shooter 的优秀教程中做了一些粗略的解释。


原文链接:Setting up a simple AI Controller in Unreal Engine

BimAnt翻译整理,转载请标明出处