Unreal5 – AI行为树

创建资源

右键资源面板,在人工智能选项中创建黑板和行为树。

创建一个蓝图类,通过在所有类中搜索AI_Controller来进行创建。

到这里,你的内容浏览器中应该有上面红色方框中的四样内容,行为树,AI控制器,角色以及一个黑板。

三者的作用

角色是我们后面操控的傀儡,AI行为树相当于一个指挥中枢而黑板是存放变量的一个“黑板”。AI_Controller是直接操纵傀儡的大脑。你可以理解为,指挥中枢会发出一些命令,让AI控制器来操纵傀儡,指挥中枢会利用“黑板”来存放一些变量。在AI行为树内用树状结构来表示AI的行为。

AI_Controller中添加一个AI感知组件/AI_Perception,用于作为傀儡的感官(眼睛)来检测视野中是否有玩家。

选中感知组件并在细节面板中配置感官为其配置AI视力配置次要视觉半径是角色视觉的广度。这里的检测中立方一定要打上勾,因为配置友方/敌方需要在C++底层源码进行操刀,用蓝图较难做到。

黑板

在黑板中需要添加两个变量,分别是是否看到玩家要去的地方,很明显一个是布尔值一个是向量值。

目标感知更新事件

在上面的感知组件的细节面板中可以找到目标感知更新时这一事件,我们将他添加到事件图表中,这样就可以实时更新AI眼中的信息,这里主要用到AI是否看到玩家这一信息。

我们利用它的Break AIStimulus中的Successfully Sensed接口来获取AI眼中收到的刺激信息。

如果你打印出来你就会发现,这里的Successfully Sensed的值会根据AI是否看到玩家实时变化为True或者False

如果你需要运行程序,不要忘记将AI_Controller绑定到对应的傀儡也就是ThirdPerson的蓝图上。方法是在ThirdPerson_BP上将类默认值中的Pawn中的AI控制器设置为我们的AI_Controller

AI 行为树

从根节点可以拖拽出两条线,分别是SelectorSequence,前者表示一个二选一的分支,后者表示按顺序进行执行的序列。也就是Selector下的子节点只会执行二者中的一个,而Sequence会按顺序执行所有的子节点。

在行为树中添加逻辑,如果看到玩家就执行左边的任务,反之执行右边的任务,添加蓝色区域黑板变量的方法是右键Sequence然后添加装饰器...并添加一个BlackBoard

为了让两种分支分别执行不同的任务,我们就来创建一个任务。

单击图示位置并创建一个基础的任务基类,首当其冲创建一个寻找玩家的任务,在任务蓝图类里是属性的蓝图编辑界面。

利用AI_MoveTo来移动到角色的位置,在执行完成后一定要使用Finish Execute来告诉行为树到这里执行结束。

添加Event Receive Execute AI,也就是添加事件执行AI的意思,用来接收执行该任务的AI。

同样的,添加一个任务用于AI无法找到玩家时游荡用。

在行为树中添加这些任务。

同时,在AI_Controller开始执行的时候需要告诉系统运行哪一个行为树,下面的BTAsset中也选择对应的行为树资产。

作者:Sy_
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇