akashic-lib.json の仕様
INFO
この文書はライブラリ製作者向けの内容になっています
akashic-lib.json は Akashic 拡張ライブラリの設定を記述するファイルです。
このファイルに記述された情報は対象のモジュールを akashic install
または akashic uninstall
した際に自動的に読み込まれます。
仕様
以下の仕様を満たす必要があります。
- 妥当な JSON 形式である。
- package.json と同一のディレクトリに存在する。
また publish 時にこのファイルを含めるため package.json の files に akashic-lib.json を追加する必要があります。
{
...
"files": [
...
+ "akashic-lib.json"
]
}
形式
以下は妥当な akashic-lib.json の例です。
{
"gameCofigurationData": {
"environment": {
"external": {
"contentStorage": "1"
}
}
},
"assetList": [
{
"type": "image",
"path": "assets/images/player.png",
"width": 128,
"height": 128
},
{
"type": "audio",
"path": "assets/audios/se_start",
"duration": 560,
"systemId": "sound"
},
{
"type": "audio",
"path": "assets/audios/bgm_opening",
"duration": 51889,
"systemId": "music"
}
]
}
すべての値は省略が可能です。 したがって {}
も妥当な akashic-lib.json の一例です。
gameConfigurationData
インストールしたディレクトリの game.json に転写されるオブジェクト値です。 執筆時点の akashic
の最新バージョンである 2.2.0
においては environment.external
のみサポートしています。
以下の akashic-lib.json を例とします。
{
"gameConfigurationData": {
"environment": {
"external": {
"contentStorage": "1"
}
}
}
}
この akashic-lib.json を含むモジュールを akashic install
すると、インストール元の game.json が以下のように書き換えられます。
{
...
{
"environment": {
"sandbox-runtime": "3",
+ "external": {
+ "contentStorage": "1"
+ }
}
}
}
akashic uninstall
すると environment.external
が削除され、以前の状態に戻ります。
注意点
この操作は必ずしも可逆性を保証しないことをご留意ください。
例えばゲーム開発者が手動で environment.external.contentStorage
を追記した場合でも、上記の akashic uninstall
の実行によって対象のフィールドが削除されてしまいます。 (ただし、ゲーム開発者が game.json の environment.external
を手動で編集する必要は通常ありません。)
assetList
game.json の assets フィールドに転写される配列値です。 アセット ID はそのアセットが存在するパスに変換されます。
以下の akashic-lib.json を例とします。
{
"assetList": [
{
"type": "image",
"path": "assets/images/player.png",
"width": 128,
"height": 128
},
{
"type": "audio",
"path": "assets/audios/se_start",
"duration": 560,
"systemId": "sound"
},
{
"type": "audio",
"path": "assets/audios/bgm_opening",
"duration": 51889,
"systemId": "music"
}
]
}
これを akashic install
すると、インストール元の game.json が以下のように書き換えられます。 (ここではインストール対象のモジュール名を some-library
としています。)
{
...
"assets": {
...
+ "node_modules/some-library/assets/images/player.png": {
+ "type": "image",
+ "path": "node_modules/some-library/assets/images/player.png",
+ "width": 128,
+ "height": 128,
+ },
+ "node_modules/some-library/assets/audios/se_start": {
+ "type": "audio",
+ "path": "node_modules/some-library/assets/audios/se_start",
+ "duration": 560,
+ "systemId": "sound"
+ },
+ "node_modules/some-library/assets/audios/bgm_opening": {
+ "type": "audio",
+ "path": "node_modules/some-library/assets/audios/bgm_opening",
+ "duration": 51889,
+ "systemId": "music"
+ }
}
}
akashic uninstall
コマンドを実行することで、 game.json の assets フィールドから上記のアセット情報が削除されます。