Create a Role playing game in Unreal Engine Part 33 - AI state switching
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](/images/example/outlines.png)
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowMindmap
![plate](/images/example/mindmap.png)
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowKeywords
![plate](/images/example/keywords.png)
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowHighlights
![plate](/images/example/highlights.png)
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowTranscripts
![plate](/images/example/transcripts.png)
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowBrowse More Related Video
![](https://i.ytimg.com/vi/Qothma0Xg50/maxresdefault.jpg)
Create a Role playing game in Unreal Engine Part 32 - AI behavior states
![](https://i.ytimg.com/vi/nwpmWu1SP1k/hq720.jpg)
Add a ViewModel with @EnvironmentObject in SwiftUI | Todo List #3
![](https://i.ytimg.com/vi/ljmOsZVrtok/hq720.jpg)
Unreal Engine 5 RPG Tutorial Series - #21: AI Detection and Chasing
![](https://i.ytimg.com/vi/WcDj4uZygyE/hq720.jpg)
Unreal Engine 5 RPG Tutorial Series - #2: Locomotion - Blendspace, Crouching and Procedural Leaning!
![](https://i.ytimg.com/vi/mHghoDT2ylQ/maxresdefault.jpg)
Unreal Engine Optimization: Update Your AnimBluprint Properly
![](https://i.ytimg.com/vi/VNRUdCEYl68/hq720.jpg)
Unreal Engine 5 RPG Tutorial Series - #12: Target Lock and Dodge Roll
5.0 / 5 (0 votes)