在教程示例中,我们有两个 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 的精良教程中做了一些粗略的阐明。
原文链接:http://www.bimant.com/blog/ue4-ai-controller-tutorial/