版本

menu_open
Wwise Unreal Integration Documentation
处理实体对象发出的声音

在发生碰撞时使用 PostEvent 和 SetRTPC – PostEvent | SetRTPC

在之前的章节中,我们探讨了如何在开始游戏时和在动画的特定时间点播放音乐。不过,有些音频整合可能需要对游戏物理有更加深入的了解。在本例中,我们要在每次被实例化的对象与其他对象发生碰撞时播放声音。

之后,会在按下 F 键时将角色前方的对象实例化。

为此,可将该对象添加到 Character Blueprint。为了创建此 "Wwise Object" Class,可先创建一个新的 Blueprint Actor,然后添加带有 "1M_Cube" Mesh 的 Static Mesh 组件,并启用 Simulate Physics

之后,可在按下 F 键时将角色前方的对象实例化。我们希望在被实例化的对象与任何其他对象发生碰撞时播放声音。为此,我们要使用 Unreal 的 "OnComponentHit" Event,并针对被实例化的对象加以启用。

  1. 打开 "Wwise Object" Blueprint Actor,然后选择 Static Mesh 并启用 Collision > Simulation Generates Hit Events

    在启用该选项后,便可创建 "OnComponentHit" Unreal Event。

  2. 右键单击 Static Mesh,然后依次选择 Add Event > Add OnComponentHit

  3. 接下来便可将其连到 Post Event 函数和引用本身。

    不过若现在按下 Play 按钮,很可能会被碰撞时发出的声音吵到,因为目前 Unreal 连轻微的碰撞都会调用。为此,我们要滤掉所有不重要的碰撞,而只在检测到强力的撞击时发送声音。该检测需在调用 PostEvent 之前执行。 为了衡量撞击的力度,我们可以参照启用游戏物理的对象的 Velocity,并获取相应振幅(不管撞击方位):若大于所设定的阈值,则允许传递相应调用。

  4. 通过 Hit Component 获取组件的 Velocity。若该值在 40 以上,则允许传递调用。

    如此一来,便可清晰地看到某个对象与其他对象发生碰撞时的发声逻辑。不过,无论对象撞击力度很大还是勉强高于阈值,目前声音本身都不会产生任何变化。为此,我们来将 Velocity 作为 RTPC 传给 Wwise。这样可以通过应用音量变化或效果器来对声音加以调节。Wwise 中建议的设置如下:

    为了设置 RTPC,下面我们直接使用相同的 Vector Length。不过要记住,必须针对发送 Wwise Event 的同一 Actor 设置 RTPC。

  5. 从 Branch 创建 SetRTPCValue 函数,并连到 Velocity 的 VectorLength

如需详细了解如何基于 Velocity 播放带有阈值的声音,请参阅此视频


此页面对您是否有帮助?

需要技术支持?

仍有疑问?或者问题?需要更多信息?欢迎联系我们,我们可以提供帮助!

查看我们的“技术支持”页面

介绍一下自己的项目。我们会竭力为您提供帮助。

来注册自己的项目,我们帮您快速入门,不带任何附加条件!

开始 Wwise 之旅