目次

Wwise SDK 2019.2.2
Wwise Launcher向けプラグインのパッケージング

このページは、プラグイン作成者を対象としています。Wwise LauncherとWwiseプラグインストアの両方に対応したWwiseプラグインのパブリッシュ関連の要件を、作成者に説明することが目的です。プラグイン作成そのものに関しては、 独自プラグインの作成 を参照してください。

完全に互換性のあるWwiseプラグインをパブリッシュするための必要な手順を、以下のセクションで説明します:

プラグインのパッケージング

Wwise Launcherと互換性を保ち、そのプラグイン管理ワークフローを活用するには、プラグイン作成者はプラグインを非常に特殊な方法でパッケージングする必要があります。Wwise Launcherはバンドルを作業単位として、バンドルは例えばプラグインのインストールを進める上で必要なファイルやメタデータを全て含む、自己完結フォルダまたはアーカイブのことです。

定義

プラグインのパッケージング方法に入る前に、ここで使う用語の定義を最初に行います。用語に対して可能な設定値を下表で定義しますが、もし以下の1つがカギ括弧(<Term>)で囲われていれば、該当する数値に拡張できます。

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.js以外の必須ファイルはありません)。

bundle.json

プラグインの、バンドルディスクリプションファイル。
このファイルは必須です。

Authoring.tar.xz

すべてのオーサリングファイルの入ったパッケージで、バイナリ、データ、リーガルノーティスなどのファイルが含まれます。このパッケージは、実際には必要に応じて複数のファイルに分けることができます。例: Data、Binary、Documentationと分割できます。ただし、全てのパッケージが必ずインストールされます。

SDK.tar.xz

プラットフォーム固有でないSDKファイルが全て入ったパッケージで、プラグインヘッダファイルも含む。

SDK_<DeploymentPlatforms>.tar.xz

あるデプロイメントプラットフォーム専用の、Wwise SDKプラグインファイル。
注: 名前スキームは事例として記載しています。必須の名前はありません。実際には、group/valueアソシエーションを使って特定プラットフォームと合わせています。


注釈: アーカイブフォーマット
バンドル内にあるアーカイブファイルは必ずTAR.XZ、またはZIP形式として、Wwise Launcherは、bundle.jsonファイルの中に指定されたメタデータを使って、これを抽出します。なお、バンドル自体もWwise Launcherに対して.tar.xzアーカイブとして(フォルダの代わりに)渡すことができます。

これらのアーカイブ内のフォルダ構成は、必ず以下のフォーマットに従うものとします。Wwiseオーサリングは、64-bitプラグインだけをサポートしているので、ご注意ください。Wwise 2017.2で、32-bitサポートを削除しました。

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
注釈: Legal Notice
プラグインプログラマーは、自分のプラグインコードに関連するすべての法的通知を、必ずここにコピーしてください: \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は、全ての既存プラグインやバージョンにおいて固有のIDとします。コンフリクト回避のために、会社名、プラルイン名、バージョン、ビルドナンバーなどをIDに使います。例: audiokinetic_convolutionreverb_2017.2.3_4877
"name": string, // Wwise Launcherに表示される、このバンドルの名前
"tag": string, // このプラグインを識別する固有のタグ (format [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 of this bundle
"version": {
"year": number,
"major": number,
"minor": number,
"build": number
},
// List of files to be installed for this bundle
"files": [
{
"id": string, // Unique identifier
"sha1": string, // SHA1 of the file
"size": number, // Size of the file (in bytes)
"sourceName": string, // Name of the file
"uncompressedSize": number, // Uncompressed size of the file (in bytes)
// List of groups for which this file should be installed (refer to the table below for the complete list of groups plug-ins have access to)
"groups": [
{
"groupId": string, // Unique identifier of the group
"groupValueId": string // Unique identifier of the group's value field
},
...
]
},
...
],
// List of EULAs associated with this bundle
"eulas": [
{
"displayName": string, // Name displayed in the Wwise Launcher for this EULA
"displayContent": string, // Text displayed in the Wwise Launcher for this EULA
"id": string // Unique identifier of this EULA
},
...
],
// Labels displayed next to this bundle
"labels": [
{
"class": string, // Style class applied to this label (default, primary, success, info, warning, danger)
"displayName": string // Name displayed in the Wwise Launcher for this label
},
...
],
// Online documentation links for this bundle
"links": [
{
"displayName": string, // Name displayed in the Wwise Launcher for this link
"id": string, // Unique identifier of this link
"url": string // Target URL of this link
},
...
],
// Local documentation files for this bundle
"documentation": [
{
"displayName": string, // Name displayed in the Wwise Launcher for this documentation file
"filePath": string, // Path to the documentation file
"language": "en" | "ja" | "zh" // Language of the documentation file
},
...
]
}
注釈: 固有プラグインID
ほかのプラグインとのコンフリクトを回避するために、以下の情報をプラグインの固有IDにエンコードすることが、必須です:
  • ベンダー名
  • プラグイン名
  • 完成バージョン
  • ビルドナンバー

バンドルグループ

bundle.jsonで指定した全てのファイルが、1つ以上のグループにリンクしている必要があります。Wwise Launcherはこの情報を使って、特定のファイルをインストールする必要があるのかを状況に応じて判断します。

groupId

groupValueId

Packages

Authoring
SDK

DeploymentPlatforms

(定義のDeploymentPlatforms列を参照。)

前述の例に続き、以下は、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のマイナーバージョン同士の互換性は、常に維持されます。例えば、2017.1.1と2017.1.2は、互いに互換性があります。また、メジャーリリース同士も互換性を保つ可能性がありますが、Wwiseのメジャーバージョンに合わせてプラグインもアップデートするつもりでいてください。Wwiseの現行バージョンと互換性のあるプラグインバージョンを確認するには、Release Notesを参照してください。

互換性が終了する度に、プラグインベンダーはバンドルの新バージョンをリリースする必要があります。Launcherは、互換性のないバージョンのプラグインをインストールすることを防ぎます。プラグインバンドルをaudiokinetic.comに登録してホストされると、互換性があればWwiseインストールの際に自動的にオプションとして表示されます。

Audiokinetic namespace