版本
Wwise Unreal Integration Documentation
|
您可以使用 Unreal 的 Niagara VFX 系统并参照其可视化编程范例来构建复杂的特效系统。For additional information about the Niagara system, refer to the Niagara Overview.
Wwise Unreal 集成 提供有必要的代码和 Niagara 模块以便在 Niagara 系统内发送和更新 Wwise Event。
该插件可作为 Engine 或 Game 插件来安装。它会随 Wwise Unreal Engine Integration 插件一起自动安装。 在安装插件后,可在 Unreal Editor 中将其激活。若要激活,请依次选择 Edit > Plugins,然后选择 Wwise Niagara Integration。
Unreal 集成 包含用于 Wwise Event 的 Niagara Data Interface。藉此,可在 Niagara 系统中引用 Wwise Event 和 Game Parameter 素材。此 Data Interface 仅与 Niagara CPU 模拟兼容。您可以使用其来发送一次性和持续性 Event 并在模拟过程中予以控制。对于持续性 Event,数据接口会追踪内部的 Audio Handle,并以此来将粒子或发射器实例映射到所发送的 Event。
注記: 若要在 GPU 模拟中使用 Wwise Event,则可使用 Export Particle Data 模块(如 将粒子数据导出到 Blueprint 中所述)。 |
参数:
Niagara Wwise Event Data Interface 提供各种函数以便发送 Event 并更新其播放和 GameObject 参数。这些函数可在 Niagara 模块中使用,但不可直接用在 Niagara 发射器堆栈中。集成包内包含一组基础 Niagara 模块,其可将这些函数暴露给 Niagara 堆栈。
注記: 这些模块包含在插件内。因此,在将新的模块添加到脚本时,必须选择 Plugins 筛选器以便将其显示在 Add new Module 选择框中。 |
参数:
行为:
此模块用于发送一次性 Event(在粒子或发射器的生命周期内无需进行管理)。 它会在给定位置的临时 GameObject 上以既定朝向发送 Event。
注記: 无法通过这种方式来发送无限时长的 Event,因为必须调用 StopAll() 才能停止此类 Event。 |
警告: 在短时间内通过粒子系统发送大量 Wwise Event 可能会导致声音引擎过载。务必限制系统每帧可发送的 Event 数量或在 Wwise 工程中设置 Playback Limit。 |
参数:
行为: 在给定位置按照既定旋转设置创建 AkComponent 并针对该组件发送所提供的 Event。在更新循环过程中,由模块保持所发送的给定 Event 的 AkComponent 处于活跃状态。这样可确保在粒子消亡或被剔除时销毁 AkComponent 而不会泄漏内存。 若未在 Update 脚本(System、Emitter、Particle)中更新模块,则销毁 AKComponent。在这种情况下,会在发送后播放一帧的音频并立即终止。 系统会根据 Niagara Wwise Event Data Interface 上的 Stop when Component is Destroyed 设置来决定是否在销毁组件时停止所发送的 Event。
若在 Niagara 系统的 Update 阶段放置此模块,则在满足 Post Event Condition 时每个实例(发射器或粒子)仅发送一次 Event,同时保持 AkComponent 处于活跃状态。若在 Update 阶段使用了其他持续性 Event 模块,则其会保持 AkComponent 处于活跃状态。这时可在发射器堆栈的 Spawn 阶段放置 Post Persistent Event 模块。
注記: 在使用 Persistent Event 时,必须在处理同一持续性 Event 的模块中为 Wwise Event Data 参数使用相同的属性。在使用相同的属性时,可在其他模块中使用与各个粒子关联的实例数据。该属性可处于 User、System 或 Emitter 层级。 |
您可以使用以下模块来控制持续性 Event 的播放、在 AkComponent 的 GameObject 上设置 Game Parameter、更新 AkComponent 的位置和朝向、在 Sound Engine 内更新 GameObject。
参数:
行为:
设置 AkComponent 的位置。
参数:
行为:
设置 AkComponent 的旋转。
参数:
行为:
在 AkComponent 的 GameObject 上设置 Game Parameter 值。
参数:
参数:
在设计用于发送 Wwise Event 的 Niagara 系统时密切监控 Wwise Profiler。在生成的粒子数量过多时使用 Max Posts per Tick 参数来对 SoundEngine 的负荷加以限制;不过,若音频 Event 足够长,仍有可能产生大量同时播放的声部。使用 Wwise 工程中为对象设置的 Playback Limit 来对粒子系统可以生成的声部数做硬性限制。
Export Particle Data 模块提供另一种将 Niagara 系统连接到 Wwise Sound Engine 的解决方案。此模块可将任意粒子数据导出到 Blueprint 并以此实现 Receive Particle Data 接口。在此之后,便可使用 Blueprint 中暴露的各种 Wwise Integration 功能。在默认情况下,Export Particle Data 模块会导出两个矢量和一个浮点值。藉此,可传递有关各个粒子的信息(如 Position、Velocity、Persistent ID 或 Age)。
Wwise Integration Unreal Gyms 工程提供示例 Niagara 系统用以演示如何使用前述 Niagara Wwise Event Data 接口和模块,并提供 Niagara 系统和 Blueprint Actor 用以演示如何结合 CPU 和 GPU 粒子系统使用 Export Particle Data。
这些示例会发送遵循粒子轨迹的持续性 Event、在这些 Event 上设置 Game Parameter 并在粒子碰撞时发送一次性 Event。
注記: The sample GPU particle system requires the Generate Mesh Distance Fields setting to be enabled. See Mesh Distance Fields Properties. |
所提供的 Niagara 模块与 Unreal 5.X 及更高版本兼容。若使用 Unreal 4,则仍可使用所提供的 Wwise Niagara 功能,但必须重新创建相关的 Niagara 模块。
为此,可创建 FX > Niagara Module Script 类型的素材。