UE4 RPG游戏player制作笔记——锁定目标

新建控件蓝图,将事先准备好的光点图表添加到图像控件内

要将锚点和光点设在画布中间防止安在AI上时跑偏

UE4 RPG游戏player制作笔记——锁定目标_第1张图片

在AI蓝图中添加控件组件

UE4 RPG游戏player制作笔记——锁定目标_第2张图片

UE4 RPG游戏player制作笔记——锁定目标_第3张图片

UE4 RPG游戏player制作笔记——锁定目标_第4张图片

打开项目设置,在输入中添加操作映射,设置tab为锁定键


锁定部分如下

UE4 RPG游戏player制作笔记——锁定目标_第5张图片

执行锁定命令时要先获取所有目标

新建函数获取所有目标

UE4 RPG游戏player制作笔记——锁定目标_第6张图片

 添加变量如下

UE4 RPG游戏player制作笔记——锁定目标_第7张图片

UE4 RPG游戏player制作笔记——锁定目标_第8张图片

 每次执行前先清空数组,防止出错

获取AI蓝图的所有Actor将数组输入到循环中

UE4 RPG游戏player制作笔记——锁定目标_第9张图片

并不是所有actor都需要被锁定,所以新建函数设置AI检测距离和视线检测,同时改为纯函数

UE4 RPG游戏player制作笔记——锁定目标_第10张图片

 检测AI距离如下

UE4 RPG游戏player制作笔记——锁定目标_第11张图片

视线检测如下

检测对象类型是寻找AI碰撞箱,直接寻找模型会被AI碰撞箱阻挡,

并且被AI碰撞箱阻挡不易与场景阻挡区分

所有当没被阻挡是返回false,not翻转后为turn,是能看见

UE4 RPG游戏player制作笔记——锁定目标_第12张图片

 当两个检测都为turn时执行后续节点

UE4 RPG游戏player制作笔记——锁定目标_第13张图片

在筛选完AI后开始计算剩余AI与玩家的旋转值

旋转值差的绝对值越小越靠近屏幕中间

UE4 RPG游戏player制作笔记——锁定目标_第14张图片

 将得出的数添加到变量里

目标变量内存放各目标的旋转值差,

目标旋转值变量存放各目标的旋转值差的绝对值

因为都在同一数组循环内,所以目标旋转值变量的绝对值与目标变量的目标一一对应

UE4 RPG游戏player制作笔记——锁定目标_第15张图片

若目标变量内的值大于0则有目标被锁定

UE4 RPG游戏player制作笔记——锁定目标_第16张图片

获取所有目标函数创建完毕

用keys获取目标变量内的数组,获取目标旋转值内最小的数的序列号

根据序列号获取目标变量数组内的最小值

UE4 RPG游戏player制作笔记——锁定目标_第17张图片

利用对象的球体检测判断与屏幕最中间的AI之间是否还有其他AI阻挡,忽略自身

UE4 RPG游戏player制作笔记——锁定目标_第18张图片

返回命中对象,类型转换为AI,若成功则被阻挡,失败则未被阻挡

UE4 RPG游戏player制作笔记——锁定目标_第19张图片

锁定与取消锁定如下

UE4 RPG游戏player制作笔记——锁定目标_第20张图片

将目标提升为变量,执行AI蓝图中的事件

UE4 RPG游戏player制作笔记——锁定目标_第21张图片

 AI蓝图事件如下

UE4 RPG游戏player制作笔记——锁定目标_第22张图片

  

此分支设置锁定与取消锁定后摄像机旋转

UE4 RPG游戏player制作笔记——锁定目标_第23张图片

设置时间轴如下,不用tick节省资源

每0.2秒判断是否锁定

 

判定为turn则门打开执行设置摄像机旋转,判定为false则关闭门执行重置摄像机

UE4 RPG游戏player制作笔记——锁定目标_第24张图片

 UE4 RPG游戏player制作笔记——锁定目标_第25张图片

 

设置摄像机旋转

UE4 RPG游戏player制作笔记——锁定目标_第26张图片

 锁定时只需要旋转摄像机的z轴,其余不变

UE4 RPG游戏player制作笔记——锁定目标_第27张图片

使用插值流畅改变摄像机旋转

UE4 RPG游戏player制作笔记——锁定目标_第28张图片

 

设置摄像机旋转后执行设置人物旋转,如下图

UE4 RPG游戏player制作笔记——锁定目标_第29张图片

 

重置摄像机,将y轴归零,用插值过渡

UE4 RPG游戏player制作笔记——锁定目标_第30张图片

你可能感兴趣的:(UE4,RPG游戏制作,ue4)