menu
 
版本
2016.2.6.6153

2024.1.3.8749

2023.1.11.8682

2022.1.18.8567

2021.1.14.8108

2019.2.15.7667

2019.1.11.7296

2018.1.11.6987

2017.2.10.6745

2017.1.9.6501

2016.2.6.6153

2015.1.9.5624


menu_open

振动相关技巧和经验总结

为游戏创建振动之前,您需要阅读以下章节,其中提供了一系列示例、技巧和经验总结,可帮助您更好地管理 Wwise 中的振动。

性能

如果有时间,您则应该使用 Motion FX 将振动创建和集成至游戏中,而不是直接通过现有声音生成振动。这样这可节省处理性能,因为振动数据使用较少的采样点,且不需要滤波和实时重采样。

Motion 设备

  • 游戏控制器的播放能力有限。游戏控制器只能播放有限范围的振动效果,游戏玩家很难区分不同类型的振动效果,特别是当同时播放多个效果的时候。因此,最好能够限制为每次仅播放一个振动源。

  • 将游戏控制器连接至大功率的 USB 端口。如果振动对象未能在游戏控制器中播放,则请确保该游戏控制器已连接至大功率的 USB 端口。如果 USB 端口没有足够的功率运行振动设备,则系统会卸载设备以保护操作系统或设备本身。计算机前方的 USB 端口通常不具有足够的功率,无法运行振动设备,因此您需要将振动设备连接至计算机背面的 USB 端口。

游戏控制器

有时您可能会需要控制器中小型和大型马达的振动时长不同。由于 Wwise Motion Generator 插件中同一时长控制会应用至所有曲线,因此无法使用一个源创建此类振动效果。对于该限制,您可执行以下操作:

  • 创建 2 个 Motion FX,每个对象都使用 Wwise Motion Generator 作为源。

  • 用一个 Motion FX 生成用于大型马达的曲线,定义该曲线的时长,然后将小型马达曲线设置成恒定为 0。

  • 用另一个 Motion FX 生成用于小型马达的曲线,定义该曲线的时长,然后将大型马达曲线设置成恒定为 0。

  • 使用同一事件触发这两个 Motion FX。

在 Wwise 中播放事件时,您也可以使用 Event Editor 中的 Inclusion in Project 选项作为 Solo /静音按钮。

排查问题

如果在 Wwise 中创建的振动未在特定振动设备中播放,您则可以使用 Profiler 执行故障诊断。要在 Advanced Profiler 中捕获振动数据,请执行以下操作:

  • 按下 F6,以切换至 Profiler 布局。

  • 在菜单栏中点击 Project > Profiler Settings(工程 > Profiler 设置)。

  • 选择 Motion Data 选项,并点击 OK。

    Motion Devices 选项卡将被添加至 Advanced Profiler。

现在您可以连接至游戏,并对振动进行性能分析,以确定潜在问题。“Motion Devices”选项卡包含两个单独的列表:一个是 Device 列表,另一个是 Game Object 列表。Devices 列表中列出了在声音引擎中已为每名玩家正确注册及初始化了哪些振动设备。

要执行故障排查,应首先执行以下操作,检查振动设备是否已正确初始化:

  • 检查并确认各个振动设备都显示在 Device 列表中。如果设备未显示在列表中,则表明 AK::MotionEngine::RegisterMotionDevice 调用失败。

如果振动设备显示在列表中,则执行以下操作,检查振动设备是否已与玩家关联:

  • 检查并确保玩家已被勾选,表明设备已正确与玩家匹配。如果该玩家没有被勾选,则原因可能如下:

    • AK::MotionEngine::AddPlayerMotionDevice 调用失败。

    • AK::MotionEngine::RemovePlayerMotionDevice 被调用。

如果振动对象已经正确初始化,并关联至正确玩家,那么可以在 Game Objects 列表中查看游戏对象是否正确设置,可以将振动数据发送至特定玩家。如果游戏对象/玩家配对没有勾选,则应切换至 Advanced Profiler 的 Listener 选项卡检查以下各项:

  • 在 Listener 列表的 Players 列中找到未收到振动数据的玩家编号,然后查看玩家正在使用哪个 Listener 接收振动数据。如果玩家未使用正确的 Listener,则请检查是否调用了 AK::MotionEngine::SetPlayerListener。

  • 如果玩家使用了正确的 Listener,则请确保该玩家所用的 Listener 在 Motion 列中被勾选。如没有被勾选,请检查是否正确调用了 AK::SoundEngine::SetListenerPipeline。

  • 如果被勾选,则请检查 Game Object 列表,确保玩家使用的 Listener 对于正在播放 Motion FX 的游戏对象已经启用。如果未针对游戏对象启用 Listener,则请检查是否正确调用了 AK::SoundEngine::SetActiveListeners。


此页面对您是否有帮助?

需要技术支持?

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

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

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

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

开始 Wwise 之旅