此页面主要针对插件作者。为此,我们将阐述在 Wwise 插件商店发布与 Audiokinetic Launcher 兼容的 Wwise 插件时需要遵守哪些要求。如需详细了解如何创建插件,请参阅“ 创建新插件 ”。
以下章节将详细说明在发布完全兼容的 Wwise 插件时需要遵循哪些必要步骤:
插件打包
为了确保与 Audiokinetic Launcher 兼容并有效运用插件管理流程,插件作者需要按照特定方式打包插件。Audiokinetic Launcher 在运行时需要加载捆绑包,就像独立文件夹和存档一样,它必须包含插件安装所需的全部文件和元数据。
定义
在探讨如何打包插件前,我们需要先定义一下其中用到的一些参数。下表列出了这些参数可能使用的值。假如您看到有参数前后加了尖括号(<参数>),则表示其可扩展为相应的值。
DeploymentPlatforms |
SDKPlatforms
|
Android
iOS
tvOS
Mac
Linux
Windows_vc150
Windows_vc160
Windows_vc170
XboxOne
XboxSeriesX
UWP_vc150
PS4
PS5
NX |
android-9_armeabi-v7a
android-9_x86
android-21_arm64-v8a
android-21_x86_64
iOS
Linux_x64
Mac
NX64
PS4
PS5
tvOS
UWP_vc150
UWP_vc160
UWP_vc170
Win32_vc150
Win32_vc160
Win32_vc170
x64_vc150
x64_vc160
x64_vc170
XboxOne_vc150
XboxOne_vc160
XboxOne_vc170
XboxSeriesX_vc150
XboxSeriesX_vc160
XboxSeriesX_vc170 |
捆绑包目录结构
插件捆绑包是一个可能包含以下各种文件的扁平目录或存档(其中只有 bundle.json 为必须包含的文件)。
bundle.json |
插件捆绑包描述文件。
此文件为必含文件。
|
Authoring.tar.xz |
此数据包包含所有设计文件,包括二进制文件、数据文件和法律声明文件。在必要时,可将该数据包拆分成多个文件。比如,您可以将其拆分为 Data、Binary 和 Documentation。不过,系统会安装所有数据包。
|
SDK.tar.xz |
该数据包包含所有非平台专用 SDK 文件,包括插件头文件。
|
SDK_<DeploymentPlatforms>.tar.xz |
开发平台专用 Wwise SDK 插件文件。
注:所列命名方案只是为了方便演示。所有名称均可自行设定。我们只是为了与特定平台保持一致才使用了这样的组/值关联方式。
|
|
备注: 存档格式
捆绑包中的存档文件必须采用 TAR.XZ 或 ZIP 格式。Audiokinetic Launcher 会使用 bundle.json 文件内指定的元数据来解压该文件。注意,捆绑包本身也可以 .tar.xz 存档而非文件夹形式提供给 Audiokinetic 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
| └── 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
| └── 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,
"name": string,
"tag": string,
"description": string,
"image": string,
"vendor": string,
"type": "plugin",
"productDependentData": {
"targetWwiseVersion": {
"year": number,
"major": number
}
},
"version": {
"year": number,
"major": number,
"minor": number,
"build": number
},
"files": [
{
"id": string,
"sha1": string,
"size": number,
"sourceName": string,
"uncompressedSize": number,
"groups": [
{
"groupId": string,
"groupValueId": string
},
...
]
},
...
],
"eulas": [
{
"displayName": string,
"displayContent": string,
"id": string
},
...
],
"labels": [
{
"class": string,
"displayName": string
},
...
],
"links": [
{
"displayName": string,
"id": string,
"url": string
},
...
],
"documentation": [
{
"displayName": string,
"filePath": string,
"language": "en" | "ja" | "zh"
},
...
]
}
|
备注: 插件唯一标识符
为了避免与其他插件重名,必须在插件唯一标识符中包含以下信息:
|
捆绑包组
bundle.json 中指定的每个文件都必须关联至一个或多个组。Audiokinetic 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://example.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 上托管的兼容版本的插件捆绑包。