このページは、プラグイン作成者を対象としています。Audiokinetic LauncherとWwiseプラグインストアの両方に対応したWwiseプラグインのパブリッシュ関連の要件を、作成者に説明することが目的です。プラグイン作成そのものに関しては、 Developing Community Plug-ins を参照してください。
完全に互換性のあるWwiseプラグインをパブリッシュするための必要な手順を、以下のセクションで説明します:
プラグインのパッケージング
Audiokinetic Launcherと互換性を保ち、そのプラグイン管理ワークフローを活用するには、プラグイン作成者はプラグインを非常に特殊な方法でパッケージングする必要があります。Audiokinetic Launcherはバンドルを作業単位として、バンドルは例えばプラグインのインストールを進める上で必要なファイルやメタデータを全て含む、自己完結フォルダまたはアーカイブのことです。
定義
プラグインのパッケージング方法に入る前に、ここで使う用語の定義を最初に行います。用語に対して可能な設定値を下表で定義しますが、もし以下の1つがカギ括弧(<Term>)で囲われていれば、該当する数値に拡張できます。
DeploymentPlatforms | SDKPlatforms
|
Android
OpenHarmony
iOS
tvOS
visionOS
Mac
Linux
Windows_vc160
Windows_vc170
XboxOne
XboxSeriesX
PS4
PS5
NX | android-9_armeabi-v7a
android-9_x86
android-21_arm64-v8a
android-21_x86_64
OpenHarmony_arm64-v8a
iOS
Linux_x64
Mac
NX64
PS4
PS5
tvOS
visionOS
Win32_vc160
Win32_vc170
x64_vc160
x64_vc170
XboxOneGC_vc160
XboxOneGC_vc170
XboxSeriesX_vc160
XboxSeriesX_vc170 |
バンドルのディレクトリ構造
プラグインバンドルとは、平面のディレクトリつまりアーカイブに以下のファイルを複数組み合わせたものです(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形式として、Audiokinetic Launcherは、bundle.jsonファイルの中に指定されたメタデータを使って、これを抽出します。なお、バンドル自体もAudiokinetic 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
| └── 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
| └── 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"
},
...
]
}
| 注釈: 固有プラグインID
ほかのプラグインとのコンフリクトを回避するために、以下の情報をプラグインの固有IDにエンコードすることが、必須です:
- ベンダー名
- プラグイン名
- 完成バージョン
- ビルドナンバー
|
バンドルグループ
bundle.jsonで指定した全てのファイルが、1つ以上のグループにリンクしている必要があります。Audiokinetic 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://example.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インストールの際に自動的にオプションとして表示されます。