版本
menu_open
Wwise Unreal Integration Documentation
整合脚步声

依据 Animation Notification 发送 Wwise Event 并设置 Switch – PostEvent | SetRTPC

游戏制作中的一个常见场景就是发送脚步声。这在游戏中主要是通过实际拥有双脚的角色来实现的。不过,本节中演示的方法并不限于脚步动作。在此,我们会在动画的特定时间点发送声音。这种方式也可用于其他各类情形(如开门动画)。

跟之前的章节一样,我们会使用 ThirdPersonCharacter 工程。此工程包含 Mannequin(玩家角色控制器)以及输入控件和相关动画。为了整合脚步声,我们需要将 Animation Notification 添加到角色跑动动画。Blueprint 会接收这些通知并发送声音。

  1. 在 Content Browser 中,依次转到 Content > Mannequin > Animations 文件夹,并打开 ThirdPersonRun 动画。

  2. 在底部的 Animation 时间线中,将光标移到右脚开始与地面开始接触的时刻。

  3. 在 Notifies 时间线中,右键单击并依次选择 Add Notify > New Notify

  4. 将其命名为 Footstep 并按下 Enter

    现在,我们完成了右脚通知的设置。不过,还要针对左脚重复执行这一设置。接下来,我们要将通知连到 Post Event 函数。

  5. 在 Content Browser 中,打开 ThirdPerson_AnimBP

  6. 在 Event Graph 中,右键单击空白区域,然后选中以 AnimNotify_ 为开头并后跟 Notification 名称的 Event。

  7. 跟之前章节中一样发送该 Event 并引用 Actor(可使用 GetPlayerCharacter 0 变量获取)。

    此处所述设置足以播放脚步声。不过,并未将脚下地面的材质类型考虑在内。为此,可在下面章节中使用 Switch 加以实现。

为地面设置 Switch

我们可以使用 Switch 来控制在调用 "Footstep" Wwise Event 时播放哪个声音。在开始之前,必须在 Wwise 中做一些必要的设置。按照下图所示创建 "Footsteps" Switch Container,并添加两个 Random Container(分别用于 Dirt 和 Grass 地面)。

因为目前尚未设置任何逻辑来检测脚下地面,所以 Switch 设置起来可能要费一番周折。考虑到这一操作可由团队中的程序员或游戏设计师来完成,我们在此不对如何构建所述系统细作探讨。只要知道这一系统基于 Unreal 的 Physical Surface 定义就可以了。在 Unreal Editor 内,可在 Project Settings > Physics 中根据需要另行定义地面类型,并在 Details > Collision > Phys Material Override 中将其指派给 Mesh。

  1. 在收到 AnimNotify_Footstep 通知时,需要检查玩家脚下的地面材质。我们可以使用 LineTraceByChannel 函数来实现这一点。为此,需设置追踪的 Start 和 End 位置。

  2. 若经追踪发现玩家脚下有任何东西,则可将信号传给正确的 Set Switch 函数,并最终发送 Event。

注記: 须针对与 Event 相同的 Actor 设置 Switch,否则 Wwise Event 会无法获知 Switch 变化。

概述如下:

若要测试所作设置,请复制玩家脚下的地面材质。然后,按照图示分别向左右脚指派不同的材质。最后,在玩家从某一地面走到另一地面时试听效果。

注記: 若要指派 Material,必须先创建一个。为此,可在 Content Browser > Physics > Material 中右键单击,然后打开并将 Physical Properties > Surface Type 设为设置中指定的所需地面类型。

有关如何在 Unreal 中设置 Switch 的详细步骤,请参阅此视频


此页面对您是否有帮助?

需要技术支持?

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

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

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

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

开始 Wwise 之旅