距离上一次免费发布了UE4移动端模板:地址:连接,然后拆分了AI模块,今天来单独的把UE4里面AI的逻辑来讲一讲,这个视频配合工程,来讲一讲AI的制作原理,我们理解原理后,其实制作起来就非常简单。
这次的AI实现分别如下:
1、AI自由移动;
2、人物进入AI视线后,距离多少AI会攻击玩家,玩家掉血;
3、超出AI距离,AI恢复自由移动;
4、玩家血量为0时,AI欢呼动作,玩家死亡动作,UMG显示玩家死亡。
先来放上视频:
解说主要在视频里,下面只对行为树逻辑做一个说明:
1、BP_FindGM会查找玩家,其中有一个GMPlayer的变量,如果检测到玩家,将玩家的对象赋予到GMPlayer变量,如果GMPlayer里有值,那么执行左侧的行为树,如果没有值,执行右侧树。
2、默认AI没有碰到玩家,所以会执行右侧,randomAI的Task,AI会随机在地图上移动,然后每个2秒(Wait节点),再随机移动一次。这里使用sequence节点。
3、如果碰到了玩家,GMisDead检测玩家是否死亡(死亡的判断根据角色蓝图里浮点数Float变量是否为0判断),如果死亡,GMidDead的布尔值变量为True,则右侧执行播放庆祝动画。
4、玩家没有死亡,执行左侧,BP_Distance检测角色和玩家距离,当距离小于多少的时候,AI才会追击并且击打玩家。
5、如果满足最小距离,AI开始追击玩家,然后等待0.5秒(追击玩家成功后),执行攻击AttackGM节点,并且播放动画(此动画逻辑可以写在一起,避免根据执行流程进行执行后的时间差)。
写在最后,有一点要注意的是,位于Composites类下,有Selector和Sequence,他们分别代表:
Selector是从左到右在其子项中运行,直到其中一个成功才返回;
Sequence 从左到右在其子项中运行,直到其中一个失败返回。