虚幻5---第15部分---宝藏(掉落物)

虚幻5---第15部分---宝藏(掉落物)

宝藏!(Treasure!)

------从可破坏物体中生成拾取物

重点与流程:

  1. 下载和导入对应资产。下载声音,转化声音,导入声音,制作metasound。
  2. 在metasound设置和绘制好声音和声音衰减。
  3. 进入Item的C++文件夹,右键,创建从物品类派生的C++类。
  4. 在里面重写sphere overlap函数。
  5. 在指定C++文件里面写对应的声音变量和声音播放函数。注意头文件。
  6. 回到编辑器,新建对应蓝图,在里面设置网络体、声音。
  7. 测试。
示例图:


注意

  1. ue5.4导入声音,可以自动转化成wav。

生成 (ActorSpawning Actors)

------生成宝藏拾取物

重点与流程

  1. 在可破坏蓝图里面绘制,里面可以生成宝物。
示例图

从 C++ 生成( ActorSpawning Actors from C++)

------在代码中动态生成我们的宝藏

重点与流程

  1. 了解UClass的使用和作用。设置蓝图类。
  2. 创建UClass对象。在C++里设置可破坏物破坏后有宝藏类。
  3. 用TSubclassOf来代替UClass。
  4. 设置碰撞。让胶囊体来碰撞,让我们可以站在罐子碎片的实际碰撞点,而不是出现不准确的颠簸。
示例图

注意:

  1. 测试如果出现死循环,是因为罐子和拾取物的碰撞和检测进入死循环。解决办法:设置一个bool在重叠函数中决定是否return。(在146的23:30处)

不同类型的宝藏(Different Types of Treasure)

------创建 TSubclassOf 变量数组

重点与流程

  1. 在C++里增加金币数量来定义掉落物的价值。在宝藏的蓝图里面设置
  2. 设置一下宝藏的旋转运动。
  3. 创建子蓝图来添加更多的宝藏,而不用重新写代码和设置。多设置点宝藏。只需要设置网络体和金币值。
  4. 使用TSubclassOf的数组来存储多个蓝图变量。在可破坏蓝图里面添加数组内容
  5. 修改可破坏文件代码里面的击中物品出现逻辑。添加随机值,使出现物品随机。
示例图

注意:

  1. 小心因为数组越界访问导致的系统崩溃。它不会编译报错,只在运行到某一个行为时崩溃。

不同类型的可破坏物体(Different Types of Breakables)

------增加可破坏物体的类型

重点与流程

  1. 选择其它的容器资产,新建几何集合,碎裂它,再创建对应的子蓝图,设置好几何集合的类型,胶囊体,出来的宝藏类型。
  2. 复制它的蓝图,生成一些无宝藏的蓝图版本。
  3. 同样的步骤,多找一些容器来重复。
  4. 在C++里添加bool值来防止多次调用击中函数。
示例图


注意:

  1. 如果我们打破了东西,我们不想再次打破它,不想多次调用这个被击中函数。

Niagara 系统(Niagara Systems)

------为拾取物添加闪烁效果

重点与流程

  1. 创建一个Niagara系统。了解Fountain的各个参数功能。
  2. 设置符合调节的特效,记得保存资产。
示例图

注意:

  1. 虚幻5.4移除了Vortex Velocity。只能在Vortex force里面设置旋转。

Niagara 组件(Niagara Components)

------将我们的发射器添加到物品上

重点与流程

  1. 尝试在蓝图里给武器添加Niagara。
  2. 在C++里添加Niagara组件,在物品文件构造它,
  3. 在物品蓝图处设置Niagara。
  4. 在C++设置装备后取消特效。
示例图

注意:

  1. 如果发现Niagara效果在某个物品效果不太好,比如范围太小,可以通过改变缩放来调整。
  2. 如果出现人踩到武器上面,注意检测碰撞(物理与查询)是否启用。参考设置

挑战15:

  1. 多添加几种宝藏类型,在游戏中试试从哪些可破坏物体里掉落什么宝藏。
相关推荐
2601_966949658 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
niucloud-admin8 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
anew___8 小时前
蜂鸣器播放音乐——让 Arduino 唱出旋律
c++·stm32·单片机·嵌入式硬件·c
滕州市燕猫虎计算机科技工作室个体工商户8 小时前
Java锁
java·开发语言
多加点辣也没关系9 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
菜鸟~noob2339 小时前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理
ocean21039 小时前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
零依赖极客9 小时前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm
stolentime10 小时前
洛谷P10515 转圈题解
c++·算法·数学建模·贪心算法
tdtsmt11 小时前
穿戴硬件量产工艺实录:天地通电子智能手表主板 SMT 贴片案
c++