持续改进工作流程
您是不是一直在努力优化任务的工作流程?为了不断改进工作流程,首先要识别单调重复的任务,然后自己想办法或者找别人帮忙加以优化。在这个过程中,工作会越来越省力。这些您都已经知道了?那有没有付诸实践呢?
在工作当中,我们经常会用到不同的工具。其中有些工具是允许自定义的。自定义便是改进工作流程的一种方式。这也是本文要讲的重点。
正如前面所说,我们可以通过各种方式来自定义 Wwise。有些比较简单,有些需要修改文件,还有些要求具备一定的编程知识。今天,我们就来说说如何采用不同的方法来自定义 Wwise。
插入命令扩展
在 Wwise 中,用户可请求运行一系列可执行代码片段,以此向软件程序发送相应的命令。命令的触发方式有很多,包括:
-
键盘快捷方式(详请转到 Project > Keyboard Shortcuts)
-
上下文菜单和主菜单
-
控制器
-
Wwise Authoring API (WAAPI):使用 ak.wwise.ui.commands.execute
自 Wwise 2018.1 起,我们提供了 200 多项内置命令供用户使用。您可以在 Keyboard Shortcuts(键盘快捷方式)对话框中查看这些命令,其中大部分都已列在此处。
在 Wwise 2018.1.2 中,我们推出了命令扩展。命令扩展方便用户创建自定义命令,并将其添加到 Wwise 中。简单来说,就是现在可以通过 Wwise 执行外部程序。为此,可使用以下属性来定义命令扩展:
-
id:为命令定义用户可读的唯一 ID。
-
displayName:定义用户界面中显示的名称。
-
program:定义执行命令时要运行的程序或脚本。
-
args:定义用于启动程序的参数。
-
cwd:定义用于执行程序的当前工作目录。
-
defaultShortcut:定义此命令默认使用的快捷方式。
-
startMode:指定在 Wwise 用户界面中执行多选时如何扩展参数字段中的变量。
-
contextMenu:定义上下文菜单。
-
mainMenu:定义主菜单。
另外,我们还定义了一系列内置变量,方便用在 args 属性中。比如,您可以检索选定对象的 ID、名称、路径或原始 WAV 文件路径,并将其作为参数传给要执行的程序。如此一来,便可在 Wwise 中执行自定义代码时轻松结合上下文。对此,我们将在后文进一步说明…
添加 WAV 外部编辑器 – 全新方式
您可能已经知道了 Wwise 中的 External Editor(外部编辑器)功能 (Project > User Preferences > External Editors),它允许在电脑上选择最常使用的 WAV 文件编辑器,然后直接通过 Wwise 来启动。这种 Wwise 自定义方式非常好用,可以方便快速地在无需切换工作环境的情况下修改 WAV 文件。
保持单一工作环境对优化工作流程来说至关重要。在不同工作环境之间频繁切换会增加很多不必要的麻烦。试想一下,假如不使用 External Editor,编辑 WAV 文件需要哪些步骤?
-
在 Windows 的“开始”菜单中查找最常使用的 WAV 编辑器
-
使用 WAV 编辑器中的“打开文件”功能
-
在 Wwise Project 文件夹中浏览 WAV 文件(可能会相当枯燥而耗时)
-
编辑文件
-
保存
利用 External Editor 功能,可以省掉前 3 个步骤,免去打断工作流程的繁琐操作:查找和浏览。这些操作需要用户频繁地切换工作环境,会耗费大量的时间和精力。如果能专注于主要任务(编辑文件),就可以避免很多不必要的麻烦。
接下来,我们进一步讲讲前文所说的命令扩展。命令扩展不仅能实现与外部编辑器相同的功能,而且还拥有更大的灵活性。不过,它需要稍微设置一下。为此,请参考以下逐步说明:
首先,创建目录结构:
-
Windows:转到 %appdata%\Audiokinetic\Wwise
Mac:转到 ~/Library/Application Support/Wwise2018/Bottles/wwise/drive_c/users/crossover/Application Data/Audiokinetic/Wwise -
创建 Add-ons 目录
-
创建 Commands 目录
然后,自由选用时下任何文本编辑器。我个人使用的是 Visual Studio Code,它可以很好地支持 JSON 编辑。为此,请在 Commands 目录下创建一个新的文件。将其命名为 mycommands.json,并复制粘贴以下内容:
{
|
接着,修正 exe 的路径。在本例中,我选择使用免费便携的 Wavosaur。注意不要在 JSON 文件中使用单个反斜线字符。也就是说,每次都要使用两个反斜线。在 Mac 上,则要使用单个正斜线字符。另外,我将此命令的键盘快捷键设为了 W。您可以根据需要进行修改。比如,使用组合键 Ctrl+Alt+W。请注意,假如按键已被用作 Wwise 键盘快捷方式,则系统将忽略您所定义的按键。另外,有必要说明一下 "args":"${sound:originalWavFilePath}" 的用法。Wwise 会使用与选中项关联的实际 WAV 文件路径自动替换此变量。假如选中了多个对象,则 Wwise 将把该变量自动扩展为空格分隔的路径。您可以通过设置 startMode 来更改此行为。如需详细了解可用模式,请参阅相关文档。现在,我们重新启动 Wwise,来试一试。在右键单击时,上下文菜单中应会显示新的条目。
在命令中触发 WAAPI
既然已经学会了如何通过 Wwise 启动外部程序,那么我们不妨试着自己编写程序。接下来,我会详细地予以说明。在本练习中,我们将结合 Python 来使用 WAAPI。
如需详细了解 WAAPI,请点击此处。
如需详细了解 WAAPI Python 客户端,请点击此处。
如需克隆或下载整个工程,请转到 github。
Python 代码包含在 offset_property.py 中。首先,脚本会处理各项参数。在执行这部分代码时,将向脚本传递一系列 Wwise 对象 ID (GUID)。这些 ID 由 Wwise 中所选对象决定。
接着,脚本会使用 WAAPI 连接 Wwise。该操作会在创建 WaapiClient 对象时自动完成:
# Connect (default URL)
client = WaapiClient()
然后,会检索作为参数传递的 Wwise 对象的当前音量。为此,将使用 WAAPI 查询来请求返回每个指定对象的音量和对象 ID:
# Retrieve the volume and id for the selected objects
如需详细了解 WAAPI 查询,请点击此处。
最后,会针对每个对象调用 setProperty,并重新设为计算得出的音量。
# Set new volumes
|
如需查看完整脚本,请点击此处。
接下来,我们需要通过 Wwise 使用命令扩展来调用上述脚本。在此,请确保使用 Wwise 2018.1.2 或更高版本:
1. 确保已在所用电脑上安装 Python 3
2. 克隆或下载 github 上提供的工程
3. 将 offset_property_commands.json 文件复制到以下位置:
a. Windows: %appdata%\Audiokinetic\Wwise\Add-ons\Commands
b. Mac: ~/Library/Application Support/Wwise2018/Bottles/wwise/drive_c/users/crossover/Application Data/Audiokinetic/Wwise/Add-ons/Commands
4. 编辑文件并修正 offset_property.py 的路径(将其设为电脑上实际存放 github 工程的路径)
5. 重新启动 Wwise
6. 选择对象并使用 - 或 = 键来减小或增大音量。
设置用来执行脚本的控制器
接下来,我们进一步讲讲如何使用控制器来执行脚本。在此,我们将使用老式的 MIDI 控制器来触发刚刚创建的命令。利用它上面的按钮,可以逐级调整属性,操作起来会很有意思。
1. 添加设备并连接到 Control Surface(控制器)设备列表 (Project > Control Surfaces):
2. 打开 Control Surface Bindings(控制器绑定)视图,并编辑 Default Control Surface Session(默认控制器会话)。
3. 添加 Global commands(全局命令)类型的全局绑定:
4. 在命令列表中搜索 volume(按下 Ctrl+F3 搜索),并选择 Increase Volume(增大音量)。单击 OK(确定)。
5. 按下控制器上的按钮:
6. 针对 Decrease Volume(减小音量)命令重复以上步骤
最终设置应如下图所示:
现在,您就可以在 Wwise 中的任意位置使用控制器了。所有对象都会对控制器触发的命令做出响应。
结语
本文仅阐述了有关如何使用命令扩展的部分示例。它所能实现的操作其实还有很多很多。比如,您可以:
-
在最常使用的文本编辑器中编辑 Work Unit(工作单元)文件
-
通过 Event(事件)触发游戏引擎
-
针对 Sound Voice(语音)触发语音合成
-
针对 WAV 文件执行母带制作效果器链处理
-
使用选定对象的名称搜索 JIRA
-
将对象的备注复制到剪贴板
-
自动创建复杂的 Wwise 结构
-
将生成的 SoundBank(音频包)文件复制到游戏目录
-
针对 Work Unit 触发 git 命令
评论