328 lines
9.3 KiB
JSON
328 lines
9.3 KiB
JSON
{
|
||
"assetBase": "demo/",
|
||
"startScene": "intro",
|
||
"variables": {
|
||
"trust": 50,
|
||
"courage": 0,
|
||
"investigation": 0
|
||
},
|
||
"achievements": [
|
||
{
|
||
"id": "qte_master",
|
||
"title": "反应达人",
|
||
"description": "成功完成一次 QTE",
|
||
"icon": "",
|
||
"hidden": false,
|
||
"condition": { "variable": "qte_succeeded", "op": ">=", "value": 1 }
|
||
},
|
||
{
|
||
"id": "explorer",
|
||
"title": "探索者",
|
||
"description": "搜索过房间的所有角落",
|
||
"icon": "",
|
||
"hidden": false,
|
||
"condition": { "variable": "investigation", "op": ">=", "value": 2 }
|
||
},
|
||
{
|
||
"id": "game_finished",
|
||
"title": "通关达成",
|
||
"description": "完成一次游戏",
|
||
"icon": "",
|
||
"hidden": false,
|
||
"condition": { "variable": "completed_game", "op": ">=", "value": 1 }
|
||
}
|
||
],
|
||
"endings": [
|
||
{ "id": "trust_end", "label": "信任的伙伴", "sceneId": "trust_ending", "chapterId": "ch1", "thumbnail": "ui/images/end_trust.jpg" },
|
||
{ "id": "alone_end", "label": "独行之路", "sceneId": "alone_ending", "chapterId": "ch1", "thumbnail": "ui/images/end_alone.jpg" },
|
||
{ "id": "continue_end", "label": "继续前行", "sceneId": "continue_ending", "chapterId": "ch3", "thumbnail": "ui/images/end_continue.jpg" }
|
||
],
|
||
"chapters": [
|
||
{
|
||
"id": "ch1",
|
||
"label": "第一章:醒来",
|
||
"startScene": "intro",
|
||
"thumbnail": "ui/images/ch1.jpg",
|
||
"defaultVariables": { "trust": 50, "courage": 0, "investigation": 0 }
|
||
},
|
||
{
|
||
"id": "ch2",
|
||
"label": "第二章:调查",
|
||
"startScene": "desk_detail",
|
||
"thumbnail": "ui/images/ch2.jpg",
|
||
"defaultVariables": { "trust": 60, "courage": 10, "investigation": 1 }
|
||
},
|
||
{
|
||
"id": "ch3",
|
||
"label": "第三章:终局",
|
||
"startScene": "qte_success",
|
||
"thumbnail": "ui/images/ch3.jpg",
|
||
"defaultVariables": { "trust": 70, "courage": 20, "investigation": 2 }
|
||
}
|
||
],
|
||
"scenes": {
|
||
"intro": {
|
||
"id": "intro",
|
||
"videoUrl": "intro/intro.mp4",
|
||
"subtitleUrl": "intro/intro.vtt",
|
||
"subtitles": {
|
||
"zh": "intro/intro.vtt",
|
||
"en": "intro/intro_en.vtt",
|
||
"ja": "intro/intro_ja.vtt"
|
||
},
|
||
"bgmUrl": "shared/calm_bgm.mp3",
|
||
"bgmVolume": 0.6,
|
||
"bgmCrossFade": 1.5,
|
||
"videoMuted": true,
|
||
"choices": [
|
||
{
|
||
"text": "走向左边那扇发光的门",
|
||
"textKey": "scene.intro.choice.left_door",
|
||
"targetScene": "left_door",
|
||
"effects": [
|
||
{ "type": "add", "target": "courage", "value": 10 }
|
||
]
|
||
},
|
||
{
|
||
"text": "走向右边那扇普通的门",
|
||
"textKey": "scene.intro.choice.right_door",
|
||
"targetScene": "right_door",
|
||
"effects": [
|
||
{ "type": "add", "target": "courage", "value": -5 }
|
||
]
|
||
},
|
||
{
|
||
"text": "仔细搜索房间",
|
||
"textKey": "scene.intro.choice.search",
|
||
"targetScene": "investigation_site"
|
||
},
|
||
{
|
||
"text": "留在原地,什么也不做",
|
||
"textKey": "scene.intro.choice.stay",
|
||
"targetScene": "stay"
|
||
}
|
||
]
|
||
},
|
||
"investigation_site": {
|
||
"id": "investigation_site",
|
||
"type": "image",
|
||
"videoUrl": "",
|
||
"imageUrl": "investigation_site/investigation_scene.jpg",
|
||
"subtitleUrl": "investigation_site/investigation.vtt",
|
||
"subtitles": {
|
||
"zh": "investigation_site/investigation.vtt",
|
||
"en": "investigation_site/investigation_en.vtt",
|
||
"ja": "investigation_site/investigation_ja.vtt"
|
||
},
|
||
"hotspots": [
|
||
{
|
||
"id": "hs_desk",
|
||
"label": "查看书桌",
|
||
"targetScene": "desk_detail",
|
||
"x": 0.12, "y": 0.20, "width": 0.18, "height": 0.14,
|
||
"effects": [
|
||
{ "type": "add", "target": "investigation", "value": 1 },
|
||
{ "type": "toggleFlag", "target": "checked_desk" }
|
||
]
|
||
},
|
||
{
|
||
"id": "hs_window",
|
||
"label": "查看窗户",
|
||
"targetScene": "corridor",
|
||
"x": 0.47, "y": 0.06, "width": 0.15, "height": 0.28
|
||
},
|
||
{
|
||
"id": "hs_closet",
|
||
"label": "检查衣柜",
|
||
"targetScene": "desk_detail",
|
||
"x": 0.33, "y": 0.48, "width": 0.10, "height": 0.26,
|
||
"conditions": [
|
||
{ "variable": "investigation", "op": ">=", "value": 1 }
|
||
],
|
||
"effects": [
|
||
{ "type": "add", "target": "investigation", "value": 1 }
|
||
]
|
||
}
|
||
],
|
||
"choices": [
|
||
]
|
||
},
|
||
"corridor": {
|
||
"id": "corridor",
|
||
"videoUrl": "corridor/corridor.mp4",
|
||
"hotspots": [
|
||
{
|
||
"id": "hs_left",
|
||
"label": "走向左边通道",
|
||
"targetScene": "left_door",
|
||
"x": 0.02, "y": 0.30, "width": 0.30, "height": 0.45,
|
||
"showAt": 1.5,
|
||
"effects": [
|
||
{ "type": "add", "target": "courage", "value": 5 }
|
||
]
|
||
},
|
||
{
|
||
"id": "hs_center",
|
||
"label": "走向中间通道",
|
||
"targetScene": "trust_ending",
|
||
"x": 0.33, "y": 0.25, "width": 0.34, "height": 0.55,
|
||
"showAt": 3.0
|
||
},
|
||
{
|
||
"id": "hs_right",
|
||
"label": "走向右边通道",
|
||
"targetScene": "alone_ending",
|
||
"x": 0.68, "y": 0.30, "width": 0.30, "height": 0.45,
|
||
"showAt": 5.0
|
||
}
|
||
]
|
||
},
|
||
"left_door": {
|
||
"id": "left_door",
|
||
"videoUrl": "left_door/left_door.mp4",
|
||
"subtitleUrl": "left_door/left_door.vtt",
|
||
"subtitles": {
|
||
"zh": "left_door/left_door.vtt",
|
||
"en": "left_door/left_door_en.vtt",
|
||
"ja": "left_door/left_door_ja.vtt"
|
||
},
|
||
"choices": [
|
||
{
|
||
"text": "与陌生人握手",
|
||
"textKey": "scene.left_door.choice.handshake",
|
||
"prompt": "陌生人会记住你的善意",
|
||
"targetScene": "trust_ending",
|
||
"effects": [
|
||
{ "type": "add", "target": "trust", "value": 30 }
|
||
]
|
||
},
|
||
{
|
||
"text": "拒绝握手,保持警惕",
|
||
"targetScene": "alone_ending"
|
||
}
|
||
]
|
||
},
|
||
"right_door": {
|
||
"id": "right_door",
|
||
"videoUrl": "right_door/right_door.mp4",
|
||
"skippable": false,
|
||
"bgmUrl": "right_door/tense_bgm.mp3",
|
||
"bgmVolume": 0.7,
|
||
"bgmCrossFade": 2.0,
|
||
"videoMuted": true,
|
||
"qte": {
|
||
"triggerTime": 1.0,
|
||
"prompt": "躲避飞来的石块!",
|
||
"keys": ["ArrowLeft", "ArrowRight", "a", "d"],
|
||
"timeLimit": 3.0,
|
||
"successScene": "qte_success",
|
||
"failScene": "qte_fail",
|
||
"effects": {
|
||
"success": [
|
||
{ "type": "add", "target": "courage", "value": 15 },
|
||
{ "type": "set", "target": "qte_succeeded", "value": 1 }
|
||
],
|
||
"fail": [{ "type": "add", "target": "trust", "value": -20 }]
|
||
}
|
||
}
|
||
},
|
||
"qte_success": {
|
||
"id": "qte_success",
|
||
"videoUrl": "qte_success/qte_success.mp4",
|
||
"choices": [
|
||
{
|
||
"text": "继续前进",
|
||
"targetScene": "continue_ending"
|
||
},
|
||
{
|
||
"text": "回头",
|
||
"targetScene": "intro"
|
||
}
|
||
]
|
||
},
|
||
"qte_fail": {
|
||
"id": "qte_fail",
|
||
"videoUrl": "qte_fail/qte_fail.mp4",
|
||
"choices": [
|
||
{
|
||
"text": "继续前进",
|
||
"targetScene": "continue_ending"
|
||
},
|
||
{
|
||
"text": "回头",
|
||
"targetScene": "intro"
|
||
}
|
||
]
|
||
},
|
||
"desk_detail": {
|
||
"id": "desk_detail",
|
||
"videoUrl": "shared/continue_ending.mp4",
|
||
"choices": [
|
||
{
|
||
"text": "返回调查现场",
|
||
"targetScene": "investigation_site"
|
||
},
|
||
{
|
||
"text": "离开",
|
||
"targetScene": "corridor"
|
||
}
|
||
]
|
||
},
|
||
"stay": {
|
||
"id": "stay",
|
||
"videoUrl": "stay/stay_loop.mp4",
|
||
"subtitleUrl": "stay/stay.vtt",
|
||
"subtitles": {
|
||
"zh": "stay/stay.vtt",
|
||
"en": "stay/stay_en.vtt",
|
||
"ja": "stay/stay_ja.vtt"
|
||
},
|
||
"bgmUrl": "shared/calm_bgm.mp3",
|
||
"bgmVolume": 0.6,
|
||
"videoMuted": true,
|
||
"loopStart": 3.0,
|
||
"loopEnd": 6.0,
|
||
"choices": [
|
||
{ "text": "站起来离开", "targetScene": "alone_ending" }
|
||
]
|
||
},
|
||
"trust_ending": {
|
||
"id": "trust_ending",
|
||
"videoUrl": "trust_ending/trust_ending.mp4",
|
||
"choices": [
|
||
{
|
||
"text": "开启信任的旅程(需要 trust >= 80)",
|
||
"textKey": "scene.trust_ending.choice.journey",
|
||
"prompt": "你们的羁绊将改变一切",
|
||
"targetScene": "secret_ending",
|
||
"conditions": [
|
||
{ "variable": "trust", "op": ">=", "value": 80 }
|
||
]
|
||
},
|
||
{
|
||
"text": "离开这里",
|
||
"targetScene": "alone_ending"
|
||
}
|
||
]
|
||
},
|
||
"secret_ending": {
|
||
"id": "secret_ending",
|
||
"videoUrl": "shared/continue_ending.mp4",
|
||
"choices": []
|
||
},
|
||
"alone_ending": {
|
||
"id": "alone_ending",
|
||
"videoUrl": "alone_ending/alone_ending.mp4",
|
||
"choices": [],
|
||
"onEnter": [
|
||
{ "type": "set", "target": "completed_game", "value": 1 }
|
||
]
|
||
},
|
||
"continue_ending": {
|
||
"id": "continue_ending",
|
||
"videoUrl": "shared/continue_ending.mp4",
|
||
"choices": []
|
||
}
|
||
}
|
||
}
|