目录

Wwise SDK 2019.2.3
为 Wwise Launcher 打包插件

此页面主要针对插件作者。为此,我们将阐述在 Wwise 插件商店发布与 Wwise Launcher 兼容的 Wwise 插件时需要遵守哪些要求。如需详细了解如何创建插件,请参阅“ 创建新插件 ”。

以下章节将详细说明在发布完全兼容的 Wwise 插件时需要遵循哪些必要步骤:

插件打包

为了确保与 Wwise Launcher 兼容并有效运用插件管理流程,插件作者需要按照特定方式打包插件。Wwise Launcher 在运行时需要加载捆绑包,就像独立文件夹和存档一样,它必须包含插件安装所需的全部文件和元数据。

定义

在探讨如何打包插件前,我们需要先定义一下其中用到的一些参数。下表列出了这些参数可能使用的值。假如您看到有参数前后加了尖括号(<参数>),则表示其可扩展为相应的值。

DeploymentPlatforms

SDKPlatforms

Android
iOS
tvOS
Mac
Linux
Windows_vc140
Windows_vc150
XboxOne
UWP_vc140
UWP_vc150
PS4
Vita
NX
android-9_armeabi-v7a
android-9_x86
android-21_arm64-v8a
android-21_x86_64
iOS
Linux_x32
Linux_x64
Mac
NX32
NX64
PS4
tvOS
UWP_Win32_vc140
UWP_Win32_vc150
UWP_x64_vc140
UWP_x64_vc150
UWP_ARM_vc140
UWP_ARM_vc150
Vita
Win32_vc140
Win32_vc150
x64_vc140
x64_vc150
XboxOne_vc140
XboxOne_vc150

捆绑包目录结构

插件捆绑包是一个可能包含以下各种文件的扁平目录或存档(其中只有 bundle.json 为必须包含的文件)。

bundle.json

插件捆绑包描述文件。
此文件为必含文件。

Authoring.tar.xz

此数据包包含所有设计文件,包括二进制文件、数据文件和法律声明文件。在必要时,可将该数据包拆分成多个文件。比如,您可以将其拆分为 Data、Binary 和 Documentation。不过,系统会安装所有数据包。

SDK.tar.xz

该数据包包含所有非平台专用 SDK 文件,包括插件头文件。

SDK_<DeploymentPlatforms>.tar.xz

开发平台专用 Wwise SDK 插件文件。
注:所列命名方案只是为了方便演示。所有名称均可自行设定。我们只是为了与特定平台保持一致才使用了这样的组/值关联方式。


备注: 存档格式
捆绑包中的存档文件必须采用 TAR.XZ 或 ZIP 格式。Wwise Launcher 会使用 bundle.json 文件内指定的元数据来解压该文件。注意,捆绑包本身也可以 .tar.xz 存档而非文件夹形式提供给 Wwise Launcher。

这些存档内的文件夹结构必须遵循以下格式。请注意,现在 Wwise 设计工具中仅支持 64 位插件。我们在 Wwise 2017.2 中便取消了对 32 位插件的支持。

PluginName/
├── bundle.json
├── Authoring.tar.xz
│ └── Authoring
│ ├── Help
│ ├── Data
│ | └── Factory Assets
│ | └── PluginName
│ └── x64
│ └── Release
│ └── bin
│ └── plugins
├── SDK.tar.xz
│ └── SDK
│ └── include
│ └── AK
| └── Plugin
└── SDK_<DeploymentPlatforms>.tar.xz
└── SDK
└── <SDKPlatforms>
├── Release
| ├── bin
| └── lib
├── Debug
| ├── bin
| └── lib
└── Profile
├── bin
└── lib
备注: 法律声明
插件程序员请从此处复制与插件代码相关的“法律声明”:\Authoring\x64\Release\bin\plugins\PluginName.txt

示例

下面举例说明了支持 Wwise 设计工具以及 Linux_x32 和 Linux_x64 Wwise SDK 平台的插件捆绑包。

PluginName/
├── bundle.json
├── Authoring.tar.xz
│ └── Authoring
│ ├── Help
│ | └── PluginName_UserGuide.pdf
│ ├── Data
│ | └── Factory Assets
│ | └── PluginName
│ | ├── Manifest.xml
│ | └── ...
│ └── x64
│ └── Release
│ └── bin
│ └── plugins
│ ├── PluginName.dll
│ ├── PluginName.xml
│ └── PluginName.txt
├── SDK.tar.xz
│ └── SDK
│ └── include
│ └── AK
| └── Plugin
| └── PluginName.h
└── SDK_Linux.tar.xz
└── SDK
├── Linux_x32
| ├── Release
| | ├── bin
| | | └── libPluginName.so
| | └── lib
| | └── libPluginNameFX.a
| ├── Debug
| | ├── bin
| | | └── libPluginName.so
| | └── lib
| | | └── libPluginNameFX.a
| └── Profile
| ├── bin
| | └── libPluginName.so
| └── lib
| └── libPluginNameFX.a
└── Linux_x64
├── Release
| ├── bin
| | └── libPluginName.so
| └── lib
| └── libPluginNameFX.a
├── Debug
| ├── bin
| | └── libPluginName.so
| └── lib
| └── libPluginNameFX.a
└── Profile
├── bin
| └── libPluginName.so
└── lib
└── libPluginNameFX.a

捆绑包元数据

捆绑包中包含的 bundle.json 文件应采用以下结构(除非特别声明,否则全部字段均为必填字段)。

{
"id": string, // 此捆绑包的唯一标识符。id 不可与任何现有插件和版本重复。为了避免冲突,请在 id 中结合使用公司名称、插件名称、版本和内部版本号。例如:audiokinetic_convolutionreverb_2017.2.3_4877
"name": string, // Wwise Launcher 中为此捆绑包显示的名称
"tag": string, // 用于精确识别插件的标记(格式为 [0-9A-z_]+,最多 50 个字符)
"description": string, // Wwise Launcher 中为此捆绑包显示的描述
"image": string, // Wwise Launcher 中为此捆绑包显示的 Base64 格式图片(PNG、JPEG 或 GIF)
"vendor": string, // Wwise Launcher 中为此捆绑包显示的供应商名称
"type": "plugin", // 此捆绑包的类型,必须为 plugin
// 此捆绑包类型的具体数据
"productDependentData": {
// 此捆绑包所基于的 Wwise 版本。
// 如需了解所构建插件的兼容性,请参阅 AK_OLDEST_SUPPORTED_WWISESDK_VERSION。
"targetWwiseVersion": {
"year": number,
"major": number
}
},
// 此捆绑包的版本
"version": {
"year": number,
"major": number,
"minor": number,
"build": number
},
// 此捆绑包所要安装的文件的列表
"files": [
{
"id": string, // 唯一标识符
"sha1": string, // 文件的 SHA1
"size": number, // 文件的大小(字节)
"sourceName": string, // 文件的名称
"uncompressedSize": number, // 文件解压后的大小(字节)
// 需要安装此文件的组的列表(如需查看插件有权访问的组的完整列表,请参见下表)
"groups": [
{
"groupId": string, // 组的唯一标识符
"groupValueId": string // 组的值字段的唯一标识符
},
...
]
},
...
],
// 与此捆绑包关联的 EULA 列表
"eulas": [
{
"displayName": string, // Wwise Launcher 中为此 EULA 显示的名称
"displayContent": string, // Wwise Launcher 中为此 EULA 显示的文本
"id": string // 此 EULA 的唯一标识符
},
...
],
// 此捆绑包旁边显示的标签
"labels": [
{
"class": string, // 应用于此标签的样式类(default、primary、success、info、warning、danger)
"displayName": string // Wwise Launcher 中为此标签显示的名称
},
...
],
// 此捆绑包的在线文档链接
"links": [
{
"displayName": string, // Wwise Launcher 中为此链接显示的名称
"id": string, // 此链接的唯一标识符
"url": string // 此链接的目标 URL
},
...
],
// 此捆绑包的本地文档文件
"documentation": [
{
"displayName": string, // Wwise Launcher 中为此文档文件显示的名称
"filePath": string, // 文档文件的路径
"language": "en" | "ja" | "zh" // 文档文件的语言
},
...
]
}
备注: 插件唯一标识符
为了避免与其他插件重名,必须在插件唯一标识符中包含以下信息:
  • 供应商名称
  • 插件名称
  • 完整版本
  • 内部版本号

捆绑包组

bundle.json 中指定的每个文件都必须关联至一个或多个组。Wwise Launcher 将使用此信息来确定是否要根据情况安装给定的文件。

groupId

groupValueId

Packages

Authoring
SDK

DeploymentPlatforms

(Please refer to the DeploymentPlatforms column in 定义.)

示例

接着前面的例子,下面举例说明了支持 Wwise 设计工具以及 Linux_x32 和 Linux_x64 Wwise SDK 平台的插件捆绑包对应的 bundle.json;它配套提供英文文档:

{
"id": "PluginAuthor_PluginName_2017.1.0_0",
"name": "PluginName",
"description": "PluginName is an awesome Wwise plug-in that does XYZ.",
"image": "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",
"vendor": "PluginAuthor",
"type": "plugin",
"version": {
"year": 2017,
"major": 1,
"minor": 0,
"build": 0
},
"productDependentData": {
"targetWwiseVersion": {
"year": 2017,
"major": 1
}
},
"files": [
{
"id": "Authoring.tar.xz",
"sha1": "2ab1fb750b2d4c6f9ad8f4c0b8966fe866a676c4",
"size": 7450993,
"uncompressedSize": 74509930,
"sourceName": "Authoring.tar.xz",
"groups": [
{
"groupId": "Packages",
"groupValueId": "Authoring"
}
]
},
{
"id": "SDK.tar.xz",
"sha1": "4e86453b2541ce4f3400778f932c850fd09cc0ff",
"size": 503316,
"uncompressedSize": 5033160,
"sourceName": "SDK.tar.xz",
"groups": [
{
"groupId": "Packages",
"groupValueId": "SDK"
}
]
},
{
"id": "SDK_Linux.tar.xz",
"sha1": "9cb1b7db241e476c4024d43aed46c2b17beee366",
"size": 263682,
"uncompressedSize": 2636820,
"sourceName": "SDK_Linux_x32_Debug.tar.xz",
"groups": [
{
"groupId": "Packages",
"groupValueId": "SDK"
},
{
"groupId": "DeploymentPlatforms",
"groupValueId": "Linux"
}
]
}
],
"eulas": [
{
"displayName": "PluginName",
"displayContent": "PluginName is provided for free on an \"as is\" basis. As such, ...",
"id": "EULA"
}
],
"labels": [
{
"class": "info",
"displayName": "Alpha"
}
],
"links": [
{
"displayName": "Release Notes",
"id": "ReleaseNotes",
"url": "https://www.releasenotes.com"
}
],
"documentation": [
{
"displayName": "User Guide",
"filePath": "Authoring/Help/PluginName_UserGuide.pdf",
"language": "en"
}
]
}

版本管理

每个插件捆绑包都对应一个特定版本的 Wwise。不过,每个版本的 Wwise 都支持先前版本的 Wwise 对应的插件。

我们会一直支持 Wwise 小版本之间的兼容性。比如,2017.1.1 和 2017.1.2 就是兼容的。此外,大版本之间也有可能兼容;不过,您要准备好使用 Wwise 大版本更新自己构建的插件。如需了解当前版本的 Wwise 兼容哪些插件版本,请参阅“版本说明

每次我们中断兼容性,插件供应商都需要发布新版本的捆绑包。请不要尝试通过 Wwise Launcher 安装不兼容版本的插件。在安装 Wwise 的过程中,将自动列出 audiokinetic.com 上托管的兼容版本的插件捆绑包。

Audiokinetic namespace