Scenario JSON Manual
`scenario.json` を、
ちゃんと書くための
詳細ガイド。
ここでは `metadata`、`config`、`scenes`、`commands` の役割と、 パス指定やよくあるミスまでをまとめています。まずは最小構成を通してから、少しずつ機能を足していくのがおすすめです。
1. Minimum Example
まずはこの形から始める
最低限必要なのは、`version`、`engine`、`metadata`、`config`、`scenes` です。 `start_scene` で開始地点を指定し、`scenes` にそのIDを定義します。
{
"version": "1.5",
"engine": {
"name": "retro-adv",
"version": "1"
},
"metadata": {
"title": "作品タイトル",
"rating": "全年齢",
"ai_generated": false,
"thumbnail": "assets/thumbs/main.png",
"summary": "作品のあらすじです。"
},
"config": {
"start_scene": "entrance",
"unknown_message": "何も起こらない。",
"help_message": [
"この作品では「north」「south」で移動します。"
]
},
"flags": {},
"inventory": [
"knife"
],
"scenes": {
"entrance": {
"text": [
"入口に立っている。"
],
"image": "assets/scenes/entrance.png",
"exits": {
"north": "hall"
}
},
"hall": {
"text": [
"広いホールだ。"
],
"image": "assets/scenes/hall.png",
"exits": {
"south": "entrance"
}
}
}
}
2. Top Level
作品全体のキー
3. metadata
公開ページに出る情報
4. config
開始位置と基本挙動
5. scenes
物語の本体はここに書く
`scenes` は、シーンIDをキーにしたオブジェクトです。 各シーンには本文、背景画像、重ね表示、移動先、イベントコマンドを定義できます。
"hall": {
"text": [
"広いホールだ。",
"入口へ戻るなら south。"
],
"image": "assets/scenes/hall.png",
"bgm": "assets/audio/opening.mp3",
"overlays": [
{
"id": "cover",
"image": "assets/overlays/cover.png"
}
],
"commands": [
{
"inputs": ["look", "look hall"],
"type": "message",
"text": [
"静かなホールだ。"
]
}
],
"exits": {
"south": "entrance"
}
}
6. commands
イベント入力の書き方
`commands[].inputs` には、そのイベントで受け付けたい入力を配列で書きます。 英語と日本語の両方を登録しても問題ありません。
{
"inputs": ["open door", "扉を開ける"],
"type": "message",
"text": [
"扉が開いた。"
],
"change_background": "assets/scenes/hall-open.png",
"show_overlay": "assets/overlays/cover.png",
"sound": "assets/audio/door.wav"
}
`set_flag` や `unset_flag` には `next` を併用できるので、フラグ更新のあとにそのまま `move` を続ける書き方もできます。
7. Path Rules
素材パスの注意点
- 素材パスは ZIP 内の相対パスで書きます
- `scenario.json` と ZIP 内実ファイル名は完全一致させます
- `../` や先頭 `/` のような危険なパスは使えません
- 大文字小文字の違いでもエラーになります
- `assets/` 配下にまとめると管理しやすくなります
8. Common Errors
よくあるミス
9. Sample Zip
動く完成例を見ながら読む
`scenario.json` の構造だけでなく、画像や音声を含めた最小構成の実例として `sample.zip` を配布しています。 まず動く例を開いてから、自分の作品へ置き換えていくのがおすすめです。
サンプルZIPをダウンロードNext
ZIP全体の作り方に戻る
`scenario.json` の詳細を見たあとで、フォルダ構成や投稿フローを確認したいときは、使い方ガイドに戻れます。