UE4 Niagara 关卡4.1官方案例解析

2024-03-07 14:20

本文主要是介绍UE4 Niagara 关卡4.1官方案例解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

we now directly  supporting playing audio from arbitrary locations in particle systems.users have control over volume and pitch,and the system can directly play sound waves,or sound cues which have multiple waves in them.(我们现在直接支持在粒子系统中从任意位置播放音频。用户可以控制音量和音高,系统可以直接播放声波或包含多个波的声音提示。)

note that this currently  functions on CPU emitters only.for GPU emitters,look at the Niagara_Advanced hallway for an example of “Export Particle Data”, which is a few frames latent and supports playing audio via a blueprint callback(请注意,这目前仅在CPU发射器上起作用。对于GPU发射器,请查看Niagara_Advanced走廊中的“导出粒子数据”示例,该示例有几帧潜在帧,并支持通过蓝图回调播放音频)。

效果:

步骤:

一、第一个发射器步骤:

1、新建niagara system,添加空白发射器。

2、暂时修改发射器属性,勾选需要持久id。

3、Emitter State 下参数Life Cycle Mode (生命周期模式) 改为自定义,scalability  Mode (可拓展模式)改为自定义,修改参数.

4、添加出生速率。

5、修改粒子初始状态

6、添加锥化范围内随机速度。

7、添加阻力

8、添加Scale color模块,修改不透明度变化。

9、添加play audio模块

在 要播放的音效(Sound to Play) 中,从下拉列表选择一个音效。

设置 播放音频(PlayAudio) 条件。

这将使用为音高、音量等配置的值来触发一次性的即用即弃效果。音效一旦触发就无法更改或停止,并且即使粒子模拟停止,音效也会继续播放。声音开始播放之后,声音属性固定不变,例如音量或音高,声音无法随着颗粒的移动来持续更新其位置;

播放音频有许多默认行为,其中之一是在粒子死亡时播放音频。设置音量和音高区间及触发条件

添加衰减

10、粒子死亡后播放音效的发射器完成,为了下一步发射器响应粒子死亡事件,添加Generate Death Event 模块。

二、第二个发射器的步骤:

1、添加空的发射器。

2、修改发射器状态参数。

3、粒子初始值

4、从点向外发射

5、添加drag

6、粒子逐渐消失

7、粒子大小变化

8、添加事件处理器,并设置源及其它参数

9、接收发出的死亡事件

效果如图:

三、第三个发射器创建

Here, we bind the audio condition to a boolean that is output from the collision module whenever a collision has happened on that frame, per particle. (CollisionValid)

This generates a sound when particles impact a surface.

在这里,我们将音频条件绑定到布尔值,该布尔值在每粒子的帧上发生碰撞时从碰撞模块输出。(冲突有效)

当粒子撞击表面时,这会产生声音。

1、添加空白发射器。

2、发射器属性

3、发射器状态

4、粒子出生速率

5、粒子初始值设置

6、粒子出生位置

7、给个初速度

8、添加重力

9、粒子不透明度的变化

10、添加碰撞模块,age colliding particles(年龄碰撞粒子)下advanced ageing rate设为1000.

advance colliding particles lifetimes by deltatime * "Advanced Aging Rate" in addttion to the particles normal life cycle decay.

(将碰撞粒子的寿命提前deltatime*“高级老化率”,加上粒子的正常生命周期衰减。)

11、添加播放音乐模块,并设置触发条件

12、添加生成粒子死亡事件

四、第四个发射器

1、添加空发射器

2、设置Emitter State

3、粒子初始

4、添加初始速度

5、添加阻力

6、添加不透明度变化

7、粒子大小变化

8、生成粒子方式

9、接收事件

效果图

五、最后一个发射器

We also support playing persistent audio files, and updating them in realtime for volume, pitch, and other attributes.

Here the volume increases along with the pitch, as the ring spins faster and faster.

(我们还支持播放持久音频文件,并根据音量、音高和其他属性实时更新它们。

在这里,随着环旋转得越来越快,体积随着音高的增加而增加。)

1、添加空白发射器

2、发射器属性中添加一个变量

3、设置状态

4、粒子生成设置

5、设置网格体粒子的初始状态

6、删除sprite渲染器,添加网格体渲染器,添加网格体粒子模型

7、修改粒子出生朝向

8、寿命结束不杀死

9、添加旋转力。

10、修复问题

11、添加旋转阻力并修改参数,让这个力大小随系统生命周期正弦变化

注意归一化角度为系统age

12、添加Find Kinetic and Potential Energy(获得动能和势能)模块

remaps the energy range(which can be in the tens of thousands)into a desired range,for instance by default 0-1.useful  to  driving other attributes by the energy calculations。(将能量范围(可以是数万)重新映射到所需的范围,例如默认情况下为0-1。这与通过能量计算驱动其他属性有关)

将速度与旋转挂钩

13、添加播放持久音频模块,修改参数。

14、添加更新音量模块。

音量的高低与remapped Total Energy挂钩

15、音高同样处理

 倾听效果,ok!

这篇关于UE4 Niagara 关卡4.1官方案例解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/783807

相关文章

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

Java JDK Validation 注解解析与使用方法验证

《JavaJDKValidation注解解析与使用方法验证》JakartaValidation提供了一种声明式、标准化的方式来验证Java对象,与框架无关,可以方便地集成到各种Java应用中,... 目录核心概念1. 主要注解基本约束注解其他常用注解2. 核心接口使用方法1. 基本使用添加依赖 (Maven

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二