版本

menu_open
Wwise SDK 2024.1.1
针对不同的 Wwise 平台构建工程

构建插件

build 命令将使用之前生成的解决方案,来编译插件并将二进制文件复制到 Wwise 安装目录(若工程文件夹中没有所述解决方案,请参阅 使用 Premake 配置工程 章节)。 该命令必须从工程文件夹内调用,并且需要一系列参数来完成相应的操作。下面是个典型的 build 命令:

python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build -c Release -x x64 -t vc160 Authoring

藉此,可在 release 模式 (-c flag) 下针对当前操作系统上的设计工具平台构建基于 x64 架构 (-x flag) 和 MSVC 工具集 vc160 (-t flag) 的工程。如需详细了解相关参数的可能值,请查看 build 命令的帮助信息。

python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build -h

二进制文件会直接输出到 Wwise 安装目录中以供稍后测试:

  • For the SoundEngine plug-in part, go to %WWISEROOT%/SDK/{Platform}/{Config}/{bin,lib}.
  • For the Authoring plug-in part on Windows, go to %WWISEROOT%/Authoring/x64/{Config}/bin/Plugins.
  • For the Authoring plug-in part on macOS, go to %WWISEROOT%/Authoring/macosx_gmake/{Config}/bin/Plugins.
  • For the Authoring plug-in part on Linux, go to %WWISEROOT%/Authoring/linux_gmake/{Config}/bin/Plugins.
  • For the Documentation plug-in part, go to %WWISEROOT%/Authoring/Data/Plugins/{PluginName}/Html.

备注: 有些平台会在执行 build 命令的过程中为多个工具链版本构建插件,包括为每个工程构建调用设置独有的环境变量。For each supported platform, the %WWISEROOT%/Scripts/ToolchainSetup/{Platform} directory, if it exists, contains two files:

  • ToolchainVers.txt, which specifies the list of supported toolchain versions for the platform
  • GetToolchainEnv.py, which determines the environment variables to be applied during the build process, given one of the values in ToolchainVers.txt as an argument

If desired, it is also possible to override either of these when executing the build command in wp.py, by specifying –toolchain-vers {file} or –toolchain-env-script {file} on the command line. 在要使用自己的构建结构或独立于 Wwise SDK 为工具链发布插件时,有可能需要这样做。

wp.py 生成的工程还会基于定义的环境针对工程编译所对应的工具链版本自动调节构建输出文件夹。有关如何根据各个平台加以确定的详细信息,请参阅对应的“有关平台的特定信息”页面。

添加目标平台

在开发插件的过程中,随时都可以添加目标平台。为此,可使用 premake 和 build 来添加所需平台。至少要构建一个平台,对 Authoring 来说,很可能还要构建 Documentation 。藉此,可安装插件属性相关文档,并在选中属性时在 Property Help 面板中显示帮助信息。

比如,通过在命令行中运行以下代码,来添加 Windows_vc160 和 Authoring 平台:

python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" premake Windows_vc160
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" premake Authoring
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Windows_vc160 -c Release -x x64
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Authoring -c Release -x x64 -t vc160
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Documentation

使用挂钩执行构建后操作

在构建特定目标后,经常要执行各种自定义操作。为此,可将 –build-hooks-file 标记添加到 build 命令并指定相应的 Python 文件。此文件必须由 User 自行创建,它并不包含在 new 命令生成的初始框架中。这里的示例展示了 post-build 挂钩文件所含的内容:

# build_hooks.py
# 定义 postbuild 挂钩
# 此函数由插件开发工具在每次成功构建目标后调用
def postbuild(**kwargs):
WWISE_ROOT = kwargs.get("wwise_root") # Wwise 安装根目录的绝对路径
PROJECT_ROOT = kwargs.get("project_root") # 插件根目录的绝对路径
platform = kwargs.get("platform") # # 所构建的平台的名称(Authoring、Windows_vc140 等)
arch = kwargs.get("arch") # 所构建的基础架构(Win32_vc140、x64_vc140 等)
config = kwargs.get("config") # 所构建的配置(Debug、Profile、Release)
# 在此处插入代码
# ...

这里的示例会针对 Windows_vc160 和 Authoring 平台调用 post-build 挂钩:

python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Windows_vc160 -c Release -x x64 --build-hooks-file=build_hooks.py
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Authoring -c Release -x x64 -t vc160 --build-hooks-file=build_hooks.py
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Documentation

build_hooks.py 文件必须存放在插件的根目录下。

这里的示例会将 DLL 文件 (library.dll) 从插件目录复制到 Wwise 安装目录:

import os
import shutil
import sys
def postbuild(**kwargs):
WWISE_ROOT = kwargs.get("wwise_root")
PROJECT_ROOT = kwargs.get("project_root")
platform = kwargs.get("platform")
arch = kwargs.get("arch")
config = kwargs.get("config")
# Build a multimap of destination folders => files to copy
platform_files = {}
if platform == "Authoring_Windows":
platform_files["Authoring/x64/{}/bin/plugins".format(config)] = [
"Prebuilt/x64/{}/library.dll".format(config)
]
elif platform == "Windows_vc160":
platform_files["SDK/{}/{}/bin".format(arch, config)] = [
"Prebuilt/{}/{}/library.dll".format(arch, config)
]
# Copy all of the file to their destination
for dest, files in platform_files.items():
dest = os.path.join(WWISE_ROOT, dest)
for file in files:
file = os.path.join(PROJECT_ROOT, file)
try:
shutil.copy(file, dest)
print("POSTBUILD HOOK: Copied {} to {}".format(file, dest))
except IOError:
sys.stderr.write("POSTBUILD HOOK: Failed to copy {} to {}\n".format(file, dest))

在完成插件的开发后,还要以 Audiokinetic Launcher 可直接安装的格式来打包工程。 有关更多详细信息,请参阅 将插件打包以便用在 Audiokinetic Launcher 中 章节。

下一章节:将插件打包以便用在 Audiokinetic Launcher 中


此页面对您是否有帮助?

需要技术支持?

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

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

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

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

开始 Wwise 之旅