ue5 ai跟随玩家

角色-角色控制器成对出现
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
在这里插入图片描述
因为有些地方上不去,所以使用半径内可达的随机点

在Unreal Engine 5 (UE5) 中,要让AI角色自动追踪并跟随玩家,你需要通过编写C++代码或使用蓝图系统来实现。以下是基本步骤: 1. **创建AI角色**:首先,创建一个新的Actor作为AI角色,并配置其行为组件(如AIController)。 2. **获取玩家位置**:AI角色需要能够获取当前玩家的位置。在AIController上,你可以添加`GetPlayer()`函数来获取玩家代理的引用。 3. **设置追踪目标**:在AI的行为更新循环中,计算玩家位置相对于AI的位置,然后设置AI的目标位置为玩家的位置。 ```cpp AActor* PlayerLocation = GetPlayer()->GetActorLocation(); FVector TargetLocation = PlayerLocation + AICharacterComponent->GetDesiredOffset(); // 可能需要加上偏移量 ``` 4. **路径追踪**:如果需要,使用路径寻路系统(如AStar或UDNPCMovementComponent)让AI沿着预设的道路或自动生成的路径朝向目标移动。 5. **跟踪模式**:使用`SetTargetAndInterpTo()`或类似函数持续调整AI的角色定位和动画,使其看起来是在平滑地跟随玩家。 6. **避免碰撞**:确保AI在接近玩家时避开障碍物,这通常通过检测两者之间的边界并在必要时调整方向来实现。 7. **应对延迟**:考虑到网络同步的延迟,可能需要在AI决策中加入一些滞后缓冲,以防玩家快速移动导致AI反应过激。 8. **蓝图实现**:如果你更倾向于使用蓝图,可以在Event Graph中设置跟随行为,使用“跟随”节点和相关的输入输出事件来控制AI动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值