虚幻5---第16部分---敌人(中)

虚幻5---第16部分---敌人(中)

Actor 组件(Actor Components)

------创建我们自己的自定义组件

重点与流程:

  1. 了解自定义组件,尝试从Actor组件派生。
  2. 创建Actor组件。添加生命值变量。
  3. 在敌人代码里添加自定义组件,然后构造它。
示例图

Widget 组件(Widget Components)

------为敌人创建血条

重点与流程:

  1. 创建控件蓝图,选择User Widget,里面添加进度条,设置好。
  2. 新建C++类,选择控件组件类。
  3. 在C++里添加Actor组件的属性变量,构造对应对象。新增UMG模块。
  4. 在敌人的C++添加控件组件,构造对象,代表生命条。
  5. 在敌人蓝图里面设置生命条。
示例图:

用户 Widget 类(User Widget Class)

------用于我们血条 Widget 的 C++ 类

重点与流程:

  1. 创建新的C++类,为健康条创建一个用户组件,创建用户控件类
  2. 在C+里添加健康条变量,并且将其绑定到蓝图变量健康条上,变量名字必须一致。
  3. 回到蓝图界面对比检查图表的类设置父类与设计器变量。
示例图:

设置生命值百分比(Setting the Health Percent)

------在 C++ 中访问血条 UserWidget

重点与流程:

  1. 在健康条组件代码里添加设置百分比函数。
  2. 构造设置该函数。
  3. 在调用这个函数之前,把健康条控件改成U健康条控件。
  4. 在敌人代码中设置默认的健康条。
示例图



伤害(Damage)

------虚幻引擎内置的伤害系统

重点与流程:

  1. 了解虚幻内置的伤害函数和对应参数。
  1. 在敌人代码里添加受到伤害函数。
  2. 在武器代码里添加造成伤害函数。设置好内容。
  3. 在属性组件代码里添加函数用于接收伤害和更新生命值变化。设置内容。游戏统计会确保我们的函数在收到伤害时被调用。
示例图:

自定义血条(Custom Health Bars)

------让 HUD 更有特色

重点与流程:

  1. 了解进度条的style样式选项。
  2. 下载和导入对应的生命条的.png文件。调整好它们的压缩设置。
  3. 设置好新的自定义进度条。
示例图:

敌人死亡动画(Enemy Death Animations)

------用于敌人死亡的动画

重点与流程:

  1. 选择想要的几个死亡动画。按照对应格式下载,再转换成带根骨的动画。导入到项目。
  2. 制作对应的动画蒙太奇。每部分命名。
示例图:

敌人死亡(Enemy Death)

------干掉几个傻瓜

重点与流程:

  1. 进入代码,在属性组件代码判断角色是否存活。
  2. 在武器里检查击中接口前调用造成伤害的函数。
  3. 在敌人代码里编写逻辑,选择死后播放蒙太奇动画
  4. 写死亡播放蒙太奇的函数。
示例图

死亡姿势(Death Poses)

------让敌人彻底倒地不起!

重点与流程

  1. 利用动画的最后一帧制作动画。
  2. 代码新增枚举变量,表示死亡状态。编写死亡状态的转换逻辑。
  3. 使用蓝图线程安全更新动画来访问蓝图动画。
  4. 混合每个死亡动画。
示例图




注意:

  1. 如果敌人一直重复同一个死亡姿势,可能是,动画蓝图里面在切换死亡姿势时,没有没枚举设值。

打磨敌人死亡效果(Polishing Enemy Death)

------对敌人死亡效果进行收尾优化

重点与流程:

  1. 在代码里编写关闭胶囊体碰撞的时机和逻辑。
  2. 在代码里编写敌人死亡后消失的时机和逻辑。
  3. 在代码里编写生命条显示的条件和消失的条件。
示例图



挑战16

  1. 尝试双持武器。
相关推荐
山河木马14 分钟前
Emscripten 从 C/C++ 调用 JavaScript
前端·javascript·c++
TANGLONG22226 分钟前
【C++】继承详解——基类/派生类、作用域、默认函数、菱形继承(超详细)
java·c语言·c++·经验分享·笔记·ajax
小侯不躺平.38 分钟前
C++ Boost库【2】 --stringalgo字符串算法
linux·c++·算法
铅笔小新z42 分钟前
【C语言】数据类型和变量
c语言·开发语言
code_whiter1 小时前
C++11(stack和queue)
开发语言·c++
最后一支迷迭香1 小时前
苹果的MacOS系统适合做Java开发吗
java·开发语言·macos
m0_739030001 小时前
[特殊字符] Java 高频面试题汇总
java·开发语言·面试
2zcode1 小时前
基于MATLAB的5G物理层文本传输系统仿真与性能分析
开发语言·5g·matlab
用户805533698031 小时前
现代Qt开发教程(新手篇)2.1——QPainter 绘图基础
c++·qt
feifeigo1231 小时前
基于布谷鸟算法的配电网分布式电源选址定容 MATLAB 实现
开发语言·算法·matlab