Create a Role playing game in Unreal Engine Part 33 - AI state switching

LeafBranchGames
10 Apr 202213:16

Summary

TLDR在本期视频中,作者介绍了如何增强RPG游戏中的AI行为,特别是如何实现AI在不同状态之间的转换,如从游荡状态切换到攻击状态。视频中详细展示了行为树的构建,AI在失去目标视线时如何自动切换回游荡状态,以及如何通过蓝图接口来管理这些状态的变化。通过调试信息,观众能够看到AI如何根据玩家的接近与否在游荡和攻击状态之间切换,提供了有效的状态转换示范,虽然还需要进一步优化记忆功能。

Takeaways

  • 😀 使用行为树来控制AI的状态切换,例如攻击和漫游。
  • 😀 创建自定义任务来改变AI的状态,例如从攻击状态切换到漫游状态。
  • 😀 通过选择器和序列来优先执行AI的高优先级任务。
  • 😀 使用黑板变量存储AI当前的状态和目标信息,例如玩家是否为目标。
  • 😀 在行为树中使用装饰器来检查AI的目标是否设置,以决定是否转入攻击模式。
  • 😀 在AI失去视线时,通过黑板条件判断AI是否切换到漫游状态。
  • 😀 通过调试信息实时监控AI的行为,确保状态切换和任务执行正确。
  • 😀 介绍了如何使用‘变化状态’事件来动态改变AI的行为。
  • 😀 教学中展示了AI如何在玩家进入和退出视野时做出反应。
  • 😀 提到未来可能会加入更多的复杂行为,比如为AI增加记忆功能。

Q & A

  • 在这个视频中,AI行为树的作用是什么?

    -AI行为树用于管理AI角色的不同状态和决策过程,在本视频中主要是用来控制AI在攻击和漫游状态之间的切换。

  • 如何通过行为树设置AI的攻击状态?

    -通过在攻击行为树中添加选择器(Selector)节点,设置等待任务(例如3秒),并创建一个序列任务来改变AI状态,如丢失目标时切换到漫游状态。

  • 如何创建一个任务来改变AI的状态?

    -通过创建一个继承自`BTTask_BlueprintBase`的任务,并重写其`ExecuteAI`函数,调用在前一集创建的Blueprint接口来更改AI状态。

  • 什么是`EAiState`,它在代码中有什么作用?

    -`EAiState`是一个枚举类型,表示AI的不同状态,例如攻击或漫游。它用于指定AI当前处于哪个状态,并通过行为树进行管理。

  • 如何在行为树中检查玩家目标的存在?

    -通过在行为树中添加装饰器(Decorator),检查黑板(Blackboard)中的`PlayerTarget`是否被设置。如果没有设置,AI将返回漫游状态。

  • 如何在AI行为树中创建不同的优先级任务?

    -使用选择器(Selector)节点来创建多个任务,并根据优先级决定执行的任务。选择器会按优先级逐一检查任务,直到找到可执行的任务。

  • 如何测试AI状态转换的效果?

    -通过测试AI在不同条件下(如玩家出现或失去目标)是否能顺利从漫游状态切换到攻击状态,或者反之,检查AI的行为是否符合预期。

  • AI如何在失去目标时返回漫游状态?

    -当AI失去玩家目标(例如,玩家超出视野)时,行为树中的黑板将更新,`PlayerTarget`设为无效,AI将自动切换回漫游状态。

  • 如何使AI在攻击时更加互动?

    -通过在攻击行为树中移除等待任务,添加任务如`Move To`(移动到玩家位置)和`Rotate To Face Target`(旋转面向玩家),让AI在攻击时主动靠近并注视玩家。

  • AI没有记忆机制会造成什么问题?

    -没有记忆机制的AI可能会过于简单,如在失去目标后立即返回漫游状态,而不会记住玩家的位置或行为。未来可以通过添加记忆功能来优化AI的智能行为。

Outlines

plate

此内容仅限付费用户访问。 请升级后访问。

立即升级

Mindmap

plate

此内容仅限付费用户访问。 请升级后访问。

立即升级

Keywords

plate

此内容仅限付费用户访问。 请升级后访问。

立即升级

Highlights

plate

此内容仅限付费用户访问。 请升级后访问。

立即升级

Transcripts

plate

此内容仅限付费用户访问。 请升级后访问。

立即升级
Rate This

5.0 / 5 (0 votes)

相关标签
AI行为树角色AI游戏开发攻击状态漫游状态行为树编辑AI编程蓝图任务游戏设计虚拟角色游戏测试