已编辑 2 几小时前 通过 ExtremeHow 编辑团队
虚幻引擎人工智能人工智能游戏开发编程行为树寻路非玩家角色自动化逻辑
翻译更新 2 几小时前
人工智能(AI)在现代视频游戏中扮演着至关重要的角色,为玩家提供了与可信、智能对手竞争的惊险体验。虚幻引擎是一款强大且流行的游戏引擎,提供了广泛的工具和系统,用于在您的游戏项目中集成AI。在虚幻引擎中实现AI涉及了解和使用几个重要组件,如行为树、AI 控制器、导航网格和黑板。在本文中,我们将深入探讨如何使用这些工具在虚幻引擎中实现人工智能的简单指南。
虚幻引擎以其用户友好的界面、强大的图形功能和广泛的开发工具而闻名。虚幻引擎中的AI基本上围绕行为树系统展开,这使开发人员能够为非玩家角色(NPC)设计复杂的决策过程。结合AI控制器和其他支持系统,开发人员可以创建详细和互动的AI代理。
在实现AI之前,正确设置您的虚幻引擎项目非常重要。以下是一份准备环境的分步指南:
虚幻引擎的AI系统由许多部分组成,这些部分共同工作以产生智能行为。以下是您将要使用的主要组件:
AI控制器是虚幻引擎中AI系统的重要部分。它们使用玩家输入或决策过程来控制非玩家角色。
要实现AI控制器:
AAIController
派生的新C++类。这将是您的AI控制器。OnPossess()
函数来设置您的棋子(即被控制的角色)并初始化您的AI策略。class MyAIController : public AAIController { // 构造函数 MyAIController(); // 当控制器占有一枚棋子时调用 void OnPossess(APawn* InPawn) override; };
行为树用于为角色行为创建模块化和复杂的决策树。它们提供了一种图形化的方法来设计AI决策背后的逻辑。
创建行为树的步骤:
Create Asset > Artificial Intelligence > Behavior Tree
黑板与行为树结合使用,作为数据存储库,并存储树节点可以访问的重要数据。
Create Asset > Artificial Intelligence > Blackboard
下创建一个新黑板。导航网格(navmesh)定义了游戏世界中的可行走区域,允许AI控制的角色自由自然而然地移动。
NavMeshBoundsVolume
以定义AI可以导航的区域。P
键查看导航网格。绿色高亮的区域是可行走的。一旦设置了不同的组件,就可以在虚幻引擎中集成和实现AI:
为您的NPC角色分配AI控制器:在角色蓝图的详细信息面板中,Pawn
部分下,为您的自定义AI控制器设置AI Controller Class
。
打开您的行为树并开始定义行为序列。
Selector
节点根据条件来确定要执行的操作。MoveTo
函数,允许您的NPC移动到黑板中设置的目标位置。Decorator
节点进行逻辑检查,例如确定是否有敌人在视野范围内或健康是否低于某个阈值。实现逻辑以使用游戏世界数据更新黑板。在您的AI控制器脚本中:
void MyAIController::BeginPlay() { // 获取黑板组件 UseBlackboard(BlackboardComponent, BlackboardAsset); // 设置初始黑板值 BlackboardComponent->SetValueAsVector(TEXT("HomeLocation"), GetPawn()->GetActorLocation()); }
确保您的AI角色能够使用您之前设置的NavMesh在环境中导航。检查角色的移动组件是否配置正确。
设置好AI后,务必在关卡中进行测试,以确保行为按预期执行。调试工具和日志在这里非常有价值。
将AI实现到游戏中时,特别是在有许多AI角色活跃的大型或复杂场景中,性能优化变得非常重要。以下是提高效率的一些指南:
一旦您对基本AI功能感到满意,可以探索高级集成:
EQS可以通过向AI提供环境数据来增强AI能力,以便做出更好的决策。查询可以确定路径、目标位置并分析周围元素。
集成机器学习组件以开发AI的决策过程。虚幻引擎支持第三方插件和API以利用机器学习功能。
使用C++创建复杂的AI任务和节点,精确定义行为动作或为特定逻辑流程修改现有函数。
在虚幻引擎中实现AI涉及将AI控制器、行为树、黑板和导航网格等各种系统结合在一起。每个系统都发挥着独特的作用,它们共同使现代游戏所需的复杂行为成为可能。不断的测试和迭代以及性能优化对于确保游戏的功能性和可玩性至关重要。通过遵循本指南并探索高级技术,您可以开发出智能且引人入胜的NPC,将您的游戏项目提升到新的水平。
如果你发现文章内容有误, 您可以