Unreal-Ai(基础概念)
理解框架
一个拟人化的AI对象一般由感知(sense)、规划(plan)和行为(action)三部分组成
前提(寻路原理)
要在场景中进行移动是AI的基本功能,但这种移动并非简单地从A点移动到B点
寻路包括:计算路径和躲避障碍
假设对象是静态,那么就需要用到寻路网格体(Nav Mesh Bounds Volume)
查看寻路网格:显示(show)-导航(Navigation),快捷键:P
修改寻路网格自动更新:EditorPreferences-Level Editor-Miscellaneous-Editing-update Navigation Automatically
一、感知
Ai感知系统两个关键组件: Ai感知组件和Ai感知刺激源
例子:以警察感知(看到)玩家为例
ai角色(警察)添加视角的感知控件,目标角色(玩家)添加被感知的敏感源。
ai角色就能感知到目标角色。ai角色有了感知功能,就能感知周围环境,收集信息,为做出决策提供信息。
AIPerception(Ai感知组件)
感知控件类型有:看到,听到,接触到,被伤害等
这里需要警察看到玩家,则使用的是视觉感知类型:AI Sight config
AIPerceptionStimuliSource(Ai感知刺激源)
这里需要可以被警察看到,需要注册一个视角的感知刺激源AISense_Sight
官方文档:https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/ArtificialIntelligence/AIPerception/
二、思考
利用黑板,行为树,compoise等节点,写出复杂的条件判断和处理。
BlackBoard 黑板:记录各种变量,可以理解为人的大脑,比如感知到玩家后,黑板中记录感知结果的变量就会被修改为True
BehaviorTrees 行为树:控制行为逻辑
行为树是由很多个节点组成,执行顺序是自上向下,自左向右。下面一一介绍节点
Composite node ,只有成功和失败两种结果,有结果就返回父节点。常用有以下两种:
1、选择器(Selector):从左向右执行子节点,遇到一个子节点成功就返回成功,不执行下一个节点。所有子节点都失败就返回失败。
2、序列(Sequence):从左向右执行子节点,遇到一个子节点失败就返回失败,不执行下一个节点。所有子节点都成功就返回成功。
三、行动
行动:思考有了结果,就去行动实施。用Task节点来实现,比如让ai角色move to ,roator,play animation等等一系列的具体的行动。
Task节点:有三种状态(运行,成功,失败)
常见命名规则以及调用关系
AI_xxx:Aicharacter(NPC)
AlC_xxx:Aicontroller(Ai控制器),在AI中的Details-Pawn关联AIC
BT_xxx:Behavior Tree(行为树),在AIC中的事件图标调用BT
BB_xxx:Blackboard(黑板),在BT中Details-Ai-BehaviorTree中调用BB
BTT_xxx:BTTask(任务),在BT中调用
Gameplay debugger
编辑器按钮设置/查看
Project Settings→Engine→Gameplay Debugger→Input→Activation Key(默认是按键:‘)
运行游戏后使用
1.打开Gameplay调试器后,可以点击Tab进入旁观者状态(脱离控制角色)
2.遇到NPC之前打开Gameplay调试器,再遇到NPC没有反应,需要遇到NPC再打开
Ai相关信息
控制器名称(Controller Name)显示所指定的Ai控制器类
Pawn名称(Pawn Name)显示所指定的Pawn类
移动模式(NavWalking)显示当前的移动模式
导航数据(路径跟随)(Nav Data(path following))显示Ai移动路径
行为(树)(Behavior(tree))显示行为树是否正在运行
活跃任务(Active task)显示指定的行为树中当前正在执行的任务
Gameplay任务(Gameplay tasks)显示队列中的任务数量
蒙太奇(Montage)显示当前活跃的动画蒙太奇
Perception
里面的圈代表当前AI检测范围,外面的代表失去目标范围(出此圈以后,Ai将不会再去尝试寻找玩家)
球体代表NPC最后看到(sight)玩家的位置,球体旁边的直线表示NPC视线
Nav Mesh
显示NPC此刻可用导航路径(会随着NPC移动变化)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!