版本
Wwise Unreal Integration Documentation
|
游戏制作中的一个常见场景就是发送脚步声。这在游戏中主要是通过实际拥有双脚的角色来实现的。不过,本节中演示的方法并不限于脚步动作。在此,我们会在动画的特定时间点发送声音。这种方式也可用于其他各类情形(如开门动画)。
跟之前的章节一样,我们会使用 ThirdPersonCharacter 工程。此工程包含 Mannequin(玩家角色控制器)以及输入控件和相关动画。为了整合脚步声,我们需要将 Animation Notification 添加到角色跑动动画。Blueprint 会接收这些通知并发送声音。
在 Content Browser 中,依次转到 Content > Mannequin > Animations 文件夹,并打开 ThirdPersonRun 动画。
在底部的 Animation 时间线中,将光标移到右脚开始与地面开始接触的时刻。
在 Notifies 时间线中,右键单击并依次选择 Add Notify > New Notify。
将其命名为 Footstep 并按下 Enter。
现在,我们完成了右脚通知的设置。不过,还要针对左脚重复执行这一设置。接下来,我们要将通知连到 Post Event 函数。
在 Content Browser 中,打开 ThirdPerson_AnimBP。
在 Event Graph 中,右键单击空白区域,然后选中以 AnimNotify_ 为开头并后跟 Notification 名称的 Event。
跟之前章节中一样发送该 Event 并引用 Actor(可使用 GetPlayerCharacter 0 变量获取)。
此处所述设置足以播放脚步声。不过,并未将脚下地面的材质类型考虑在内。为此,可在下面章节中使用 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。
在收到 AnimNotify_Footstep 通知时,需要检查玩家脚下的地面材质。我们可以使用 LineTraceByChannel 函数来实现这一点。为此,需设置追踪的 Start 和 End 位置。
若经追踪发现玩家脚下有任何东西,则可将信号传给正确的 Set Switch 函数,并最终发送 Event。
注記: 须针对与 Event 相同的 Actor 设置 Switch,否则 Wwise Event 会无法获知 Switch 变化。 |
概述如下:
若要测试所作设置,请复制玩家脚下的地面材质。然后,按照图示分别向左右脚指派不同的材质。最后,在玩家从某一地面走到另一地面时试听效果。
注記: 若要指派 Material,必须先创建一个。为此,可在 Content Browser > Physics > Material 中右键单击,然后打开并将 Physical Properties > Surface Type 设为设置中指定的所需地面类型。 |
有关如何在 Unreal 中设置 Switch 的详细步骤,请参阅此视频。