虚幻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. 多添加几种宝藏类型,在游戏中试试从哪些可破坏物体里掉落什么宝藏。
相关推荐
weixin_5134499618 小时前
PCA、SVD 、 ICP 、kd-tree算法的简单整理总结
c++·人工智能·学习·算法·机器人
浪客川19 小时前
【百例RUST - 010】字符串
开发语言·后端·rust
烟锁池塘柳019 小时前
一文讲透 C++ / Java 中方法重载(Overload)与方法重写(Override)在调用时机等方面的区别
java·c++·面向对象
赵侃侃爱分享19 小时前
学完Python第一次写程序写了这个简单的计算器
开发语言·python
yolo_guo20 小时前
glog单行 30000 字节限制问题
c++
断眉的派大星20 小时前
# Python 魔术方法(魔法方法)超详细讲解
开发语言·python
2501_9333295520 小时前
技术深度拆解:Infoseek舆情处置系统的全链路架构与核心实现
开发语言·人工智能·自然语言处理·架构
妮妮喔妮20 小时前
supabase的webhook报错
开发语言·前端·javascript
我的xiaodoujiao20 小时前
API 接口自动化测试详细图文教程学习系列11--Requests模块3--测试练习
开发语言·python·学习·测试工具·pytest
cccccc语言我来了20 小时前
C++轻量级消息队列服务器
java·服务器·c++