第 1 课

目录

对游戏做性能分析

为了将声音集成到《Cube》中去,你首先需要评估一下游戏发往 Wwise 的特定信息。为此,你需要运行在“安装”一章中测试过的“profiler”版本的《Cube》。

  1. 启动《Cube》游戏。

    [备注]

    如果你不确定如何启动《Cube》,则可以回顾一下“安装”一节末尾针对你的计算机操作系统编写的试玩《Cube》这个练习。假如在试玩《Cube》时游戏中已有声音,请参阅“安装”章节中的“将《Cube》静音”练习。

    你现在需要回到 Wwise 中去。对了,整个教程中你会需要在游戏和 Wwise 之间频繁切换,所以你要熟练使用 Windows 上的 Alt+Tab 或者 Mac 上的 Command+Tab 组合键来切换程序。

  2. 按下组合键 Alt+Tab (Windows)或 Command+Tab (Mac)回到 Wwise。

    Wwise 里有许多视图可以联合起来显示游戏中发来的信息,但你用不着一个个地打开这些视图,这样很麻烦,你可以一次性打开它们,方法是使用 layout(界面布局)。一个 layout 是一个预定义的视图集合,集合中的视图通常需要联合起来使用。

  3. 在主菜单中点击 Layouts 并选择 Profiler(性能分析器)或者按下 F6 键。

    Profiler 布局呈现在面前了。你可以使用这个布局中的视图来分析游戏生成的消息中跟声音相关的信息,并监视和声音引擎性能相关的细节。

    你将会使用左上角的 Capture Log(采集日志)视图来显示游戏中生成的信息。为了访问这些信息,你需要把 Wwise 连接到《Cube》游戏中去,现在《Cube》应该还在后台运行。

    [技巧]

    在将鼠标悬停在图标按钮之上时会显示帮助标签并指示其功能。

  4. 在工具栏中,单击 Cursor Time(光标时间)数字标记右侧的 Connect to Remote Platform(连接到远程平台)按钮。

    这时将打开 Remote Connections(远程连接)窗口。在此,会列出网络中运行有使用 Wwise 声音引擎的游戏的所有电脑。这些电脑之所以显示在列表中是因为所述游戏能够与 Wwise 设计工具进行通信。此列表应当包含您自己所用的电脑。

  5. 从列表中选择你的电脑并点击 Connect(连接)。

    窗口现在关闭了,并且因为 Start capture on connect(连接后即开始采集)复选框已被勾选,你于是会看见工具栏里的 Start Capture(开始采集)按钮变成了红色,旁边的计时器也同时开始计数了。

    采集是一个实时记录过程,你的游戏中运行着的 Wwise Sound Engine 会发来与游戏实况相关的信息,采集会将这些信息记录为一份日志。这份日志是你开发游戏声音过程中的无价之宝。

    在 Capture Log 中,我们会看到红色和黄色消息,显示《Cube》无法找到生成声音时所需的文件和信息。这是因为您在安装过程中删除了这些文件。

  6. 返回《Cube》游戏,投掷一下 Ice Gem。

  7. 再回到 Wwise 去看看 Capture Log。

    在 Capture Log 视图中会看到几行信息,证明在投掷 Ice Gem(冰晶宝石)时《Cube》将信息发给了 Wwise。

    当连接到游戏中时,一些 Wwise 参数是不可调节的。因此一旦你获得所需的 Capture Log 信息,就应该断开游戏。

  8. 在工具栏中,单击 Remote Platform(远程平台)按钮。

    采集停止,Wwise 从游戏断开了。现在你可以根据日志评估一下刚才发生了些什么。

    你面前的信息代表游戏中生成的错误提示,出现错误是因为 Wwise 不知道如何处理从游戏收到的这些消息。这些消息一般被称为 Game Call(游戏调用)。在游戏中,可能会触发各种不同类型的调用。到后面你会有机会来深入学习不同类型的调用,但是现在你需要先仔细看看这些错误的描述信息。

  9. 在必要时,可向右拖动 Description(描述)列右端,以便查看错误消息全文。

    描述区域的消息中提到名叫 Events(事件)的东西。事件是游戏引擎发往 Wwise 音频引擎的一类 Wwise game call,它们告诉Wwise在游戏中发生了某些事情。发送到 Wwise 的事件通常用来触发声音,或者修改声音的属性,还可能用来停止播放声音。我们通过给事件取名来标明事件的用途。在本例中,当前引用的 "Fire_IceGem_Player" Event 名称清楚表明其与“玩家投掷 Ice Gem”这个动作关联。

    另外,可以看到有个 Game Object Name(游戏对象名称)列,其用于指定 Local Player。这列指明了消息与游戏中的哪个实体相关联。比如,游戏中可能有多个角色都在使用 Ice Gem,因而游戏引擎需要知道到底是哪个角色在投掷 Ice Gem 以便正确播放相应的声音。比方说,倘若有只怪兽在 50 米以外投掷了 Ice Gem,那么该声音应当跟 Wwizard(魔法师)投掷 Ice Gem 时的音量有所不同才对。我们会在第 4 课:营造空间里深入探索这个课题。

    现在的问题是,Wwise 说它不知道该怎么处理这个事件,不过你马上就要改变这个状况了。


此页面对您是否有帮助?