【UE5.1】NPC人工智能——01 准备NPC角色

效果

 

步骤

1. 之前我们已经创建了“BP_NPC”(见:【UE5.1 角色练习】06-角色发射火球-part2

该蓝图继承于角色类 

我们在该蓝图中添加了两个方法和两个变量。方法一个是用于修改角色HP值的,另一个是在收到伤害后执行的逻辑。两个变量分别表示NPC当前的HP值和满HP值。

修改HP的函数“F_ChangeHP”逻辑如下。受到伤害的函数“F_AfterDamage”的逻辑还没写

当NPC受到伤害后执行如下逻辑

2. 接下来我们开始制作狮子NPC,在“AfricanAnimalsPack”资源包中找到狮子相关资产

将狮子的骨骼和骨骼网格体复制到项目文件夹

将狮子相关的动画也复制过来

为复制过来的骨骼网格体指定骨骼

选中复制过来的所有动画序列,然后替换骨架

替换为复制过来的骨骼

3. 找到我们之前制作的大象蓝图“Character_Elephant”(见:【UE5.1 角色练习】11-坐骑——Part1(控制大象移动)_ue5 character 四足动物

复制一份,这里命名为“Character_Lion”

打开“Character_Lion”,在类设置中将父类改为“BP_NPC”

选中网格体组件,将骨骼网格体资产替换为狮子

删除“SkeletalMesh_Teeth”组件

编译后删除报错的节点

将胶囊体组件的半高和半径都改为很小,因为我们不用这个组件作为碰撞

新添加一个胶囊体组件用作狮子的碰撞

设置合适的大小和位置

4. 新建一个动画蓝图

这里命名为“ABP_Lion”

打开“ABP_Lion”,创建一个混合空间

这里命名为“BS_Lion_IdleRun”

5. 打开“BS_Lion_IdleRun”,设置水平坐标名称为“Direction”,设置垂直坐标名称为“Speed”

坐标轴中放置动画序列

6. 回到动画蓝图“ABP_Lion”中,添加如下三个变量

在事件图表中添加如下节点来设置上面三个变量的值

在动画图表中新建一个状态机,这里命名为“Default”

进入“Default”,添加一个状态,这里命名为“Idle/Run”

进入状态“Idle/Run”,将我们制作的混合空间“BS_Lion_IdleRun”作为该状态的输出动画姿势

7. 打开狮子的蓝图“Character_Lion”,设置动画类为上一步创建的动画蓝图

将狮子网格体的脚步与胶囊体平齐,这样狮子的脚部不会陷入地面

调整一下弹簧臂的位置

此时可以看到我们已经可以控制狮子进行移动

相关推荐

  1. WHAT - npmnpx

    2024-07-13 19:56:04       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 19:56:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 19:56:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 19:56:04       58 阅读
  4. Python语言-面向对象

    2024-07-13 19:56:04       69 阅读

热门阅读

  1. Mybatis-plus自动填充的使用以及常见问题

    2024-07-13 19:56:04       22 阅读
  2. swiper结合gsap进行切换

    2024-07-13 19:56:04       19 阅读
  3. 昇思训练营打卡第二十四天(LSTM+CRF序列标注)

    2024-07-13 19:56:04       17 阅读
  4. Nginx 日志统计分析命令

    2024-07-13 19:56:04       21 阅读
  5. 天童美语:放假给孩子看什么地理纪录片

    2024-07-13 19:56:04       17 阅读
  6. Perl 语言开发(十三):网络编程

    2024-07-13 19:56:04       22 阅读
  7. 块设备驱动实现--模拟一个块设备

    2024-07-13 19:56:04       17 阅读
  8. Docker

    2024-07-13 19:56:04       15 阅读
  9. docker

    2024-07-13 19:56:04       20 阅读
  10. qint64 pendingDatagramSize() const;

    2024-07-13 19:56:04       20 阅读
  11. ThreadLocal有哪些应用场景?底层如何实现?

    2024-07-13 19:56:04       21 阅读