虚幻5---第15部分---宝藏(掉落物)
宝藏!(Treasure!)
------从可破坏物体中生成拾取物
重点与流程:
- 下载和导入对应资产。下载声音,转化声音,导入声音,制作metasound。
- 在metasound设置和绘制好声音和声音衰减。
- 进入Item的C++文件夹,右键,创建从物品类派生的C++类。
- 在里面重写sphere overlap函数。
- 在指定C++文件里面写对应的声音变量和声音播放函数。注意头文件。
- 回到编辑器,新建对应蓝图,在里面设置网络体、声音。
- 测试。
示例图:




注意
- ue5.4导入声音,可以自动转化成wav。
生成 (ActorSpawning Actors)
------生成宝藏拾取物
重点与流程
- 在可破坏蓝图里面绘制,里面可以生成宝物。
示例图
从 C++ 生成( ActorSpawning Actors from C++)
------在代码中动态生成我们的宝藏
重点与流程
- 了解UClass的使用和作用。设置蓝图类。
- 创建UClass对象。在C++里设置可破坏物破坏后有宝藏类。
- 用TSubclassOf来代替UClass。
- 设置碰撞。让胶囊体来碰撞,让我们可以站在罐子碎片的实际碰撞点,而不是出现不准确的颠簸。
示例图




注意:
- 测试如果出现死循环,是因为罐子和拾取物的碰撞和检测进入死循环。解决办法:设置一个bool在重叠函数中决定是否return。(在146的23:30处)
不同类型的宝藏(Different Types of Treasure)
------创建 TSubclassOf 变量数组
重点与流程
- 在C++里增加金币数量来定义掉落物的价值。在宝藏的蓝图里面设置
- 设置一下宝藏的旋转运动。
- 创建子蓝图来添加更多的宝藏,而不用重新写代码和设置。多设置点宝藏。只需要设置网络体和金币值。
- 使用TSubclassOf的数组来存储多个蓝图变量。在可破坏蓝图里面添加数组内容
- 修改可破坏文件代码里面的击中物品出现逻辑。添加随机值,使出现物品随机。
示例图





注意:
- 小心因为数组越界访问导致的系统崩溃。它不会编译报错,只在运行到某一个行为时崩溃。
不同类型的可破坏物体(Different Types of Breakables)
------增加可破坏物体的类型
重点与流程
- 选择其它的容器资产,新建几何集合,碎裂它,再创建对应的子蓝图,设置好几何集合的类型,胶囊体,出来的宝藏类型。
- 复制它的蓝图,生成一些无宝藏的蓝图版本。
- 同样的步骤,多找一些容器来重复。
- 在C++里添加bool值来防止多次调用击中函数。
示例图





注意:
- 如果我们打破了东西,我们不想再次打破它,不想多次调用这个被击中函数。
Niagara 系统(Niagara Systems)
------为拾取物添加闪烁效果
重点与流程
- 创建一个Niagara系统。了解Fountain的各个参数功能。
- 设置符合调节的特效,记得保存资产。
示例图



注意:
- 虚幻5.4移除了Vortex Velocity。只能在Vortex force里面设置旋转。
Niagara 组件(Niagara Components)
------将我们的发射器添加到物品上
重点与流程
- 尝试在蓝图里给武器添加Niagara。
- 在C++里添加Niagara组件,在物品文件构造它,
- 在物品蓝图处设置Niagara。
- 在C++设置装备后取消特效。
示例图





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



挑战15:
- 多添加几种宝藏类型,在游戏中试试从哪些可破坏物体里掉落什么宝藏。
