虚幻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. 尝试双持武器。
相关推荐
二年级程序员2 小时前
单链表算法题思路详解(上)
c语言·数据结构·c++·算法
rhett. li2 小时前
Windows系统中使用MinGW-W64(gcc/g++或LLVM)编译Skia源码的方法
c++·windows·ui·用户界面
毕设源码-邱学长2 小时前
【开题答辩全过程】以 基于Java的通信运营商流量管理系统设计与实现为例,包含答辩的问题和答案
java·开发语言
一阵寒风2 小时前
ComfyUI本地部署指南
开发语言·人工智能·python
麦德泽特2 小时前
构建统一的机器人武器与伤害感应接口:I²C总线与PWM地址分配的巧妙结合
c语言·开发语言·机器人
wangluoqi2 小时前
c++ 数据结构-树状数组、线段树 小总结
开发语言·数据结构·c++
我命由我123452 小时前
Java 开发 - 如何让一个类拥有两个父类
java·服务器·开发语言·后端·java-ee·intellij-idea·intellij idea
爱搞虚幻的阿恺2 小时前
Niagara粒子系统-超炫酷的闪电特效(第一期 粒子的朝向与对齐)
游戏·ue5·游戏引擎·虚幻
ID_180079054732 小时前
Python采集京东商品详情:基于官方API的规格与价格获取
开发语言·数据库·python