角色-角色控制器成对出现
BP_NPC
AI_Control
如下
打开BP_NPC
骨骼网格体 skm_manny_simple
调整一下
动画类使用ABP_MANNY
打开ABP_MANNY
搜索节点try get pawn owner
增加这三个节点,判断是不是AI控制
下图:
如果是玩家控制,输出true,玩家控制继续移动
如果是AI控制,输出false,AI控制继续移动
打开BP_NPC 点击类默认值,搜索pawn,找到AI控制器类,换成我们的AI_Control
pawn的自动控制AI,在什么时候进行控制
拖拽导航网格体体积,把整个场景包裹住
按下p
绿色就是AI可以到达的地方
保存一下
打开刚才BP_NPC的角色蓝图,来到事件
这样npc就会朝玩家走过来
在这里调整npc的速度
角色移动组件-》最大行走速度
选中根组件,搜索rotation,把yaw这个勾去掉
原理:第一人称,玩家控制
否则,npc转弯很生硬
把我们的BP_NPC拖进去
点击运行,npc回朝着玩家位置移动。
但是只执行一次
npc一直移动,就要连这个event tick (隔几毫秒调用一次)
我玩家在哪里,npc跟到哪里
总不能像狗皮膏药黏在背上
2.行为树控制AI
人工智能,行为树,取名BT_NPC
人工智能,行为树,取名BB_NPC
黑板是行为树的全局变量,对外通信
打开行为树,配置黑板为我们的BB_NPC
点击右上角,切换行为树和黑板
拽出selector
再拖一个sequence
保存 行为树就配置好了
npc移动到随机点
新建文件夹取名Tasks
打开行为树
新建任务,取名BTTask_MoveToRandomLocation,放在文件夹Tasks
打开刚才的任务,它有6个函数可以重载
把这个拖出来
半径内可达到的随机点 get random
因为有些地方上不去,所以使用半径内可达的随机点