如何根据A *规划路线自动生成样条线,并让人物按照样条线移动
根据目的地节点生成A*规划路线
前置工作:UE5中创建一个俯视视角的游戏,清除游戏内多余的柱子
以人物当前所在位置为起始点
准备工作
创建一个材质
在材质内设置蓝图,主要是实现材质的透明效果
创建棋盘格
创建棋盘格的碰撞盒子,同时设置棋盘格的碰撞为NoCollision
设置起点和终点
这里使用灰色立方体来作为终点,白色作为起点。厚度都调整为0.01
蓝图实现
均在BP_TopDownCharacter中
FUNC_A_Star_moveCaculate
将规划路线转化为坐标点,用于后面的生成样条点
FUNC_DistanceToDestination
使用的变量函数
根据规划路线形成样条点集
BP_TopDownCharacter中
BP_Spine中
AI按照样条点位置移动(AI行为树)
BP_TopDownCharacter中
AIController_New中
BP_AiTree
黑板
根据样条线找点
所有创建的蓝图类
优化了生成路径点同一方向重复生成
新增加的函数和变量
新增函数具体内容
FUNC_JoinSpecialPoint函数中
isChange变量默认值为-1,表示尚未加入点(起点和终点除外)
FUNC_changeLastPosition
FUNC_addPosition
新增变量值的获取和主体部分部分修改内容
lastPosition值的获取和起始点位置加入数组
将终点最后加入数组