{ "dialogues": [ { "id": "test_line_dialogue", "start": "line_1", "nodes": [ { "id": "line_1", "type": "Line", "speaker": "Ghost", "portrait": "resources/ghost_avatar.png", "text": "You finally came here.", "next": "line_2" }, { "id": "line_2", "type": "Line", "speaker": "Hero", "portrait": "resources/hero.png", "text": "I need answers.", "next": "end_1" }, { "id": "end_1", "type": "End" } ] }, { "id": "test_choice_dialogue", "start": "line_1", "nodes": [ { "id": "line_1", "type": "Line", "speaker": "Merchant", "portrait": "resources/ghost_avatar.png", "text": "What do you want?", "next": "choice_1" }, { "id": "choice_1", "type": "Choice", "speaker": "Hero", "portrait": "resources/hero.png", "text": "Choose your answer.", "choices": [ { "id": "main_1", "kind": "Main", "text": "Show me your goods.", "next": "line_goods" }, { "id": "optional_1", "kind": "Optional", "text": "Who are you?", "next": "line_who" } ] }, { "id": "line_goods", "type": "Line", "speaker": "Merchant", "portrait": "resources/ghost_avatar.png", "text": "Take a look.", "next": "end_1" }, { "id": "line_who", "type": "Line", "speaker": "Merchant", "portrait": "resources/ghost_avatar.png", "text": "Just a trader passing through.", "next": "choice_1" }, { "id": "end_1", "type": "End" } ] }, { "id": "test_condition_dialogue", "start": "set_flag_1", "nodes": [ { "id": "set_flag_1", "type": "SetFlag", "effects": [ { "flag": "met_ghost", "value": 1 } ], "next": "condition_1" }, { "id": "condition_1", "type": "Condition", "conditions": [ { "flag": "met_ghost", "op": "Equals", "value": 1 } ], "trueNext": "line_true", "falseNext": "line_false" }, { "id": "line_true", "type": "Line", "speaker": "Ghost", "portrait": "resources/ghost_avatar.png", "text": "Now you know who I am.", "next": "end_1" }, { "id": "line_false", "type": "Line", "speaker": "Ghost", "portrait": "resources/ghost_avatar.png", "text": "You should not hear this line.", "next": "end_1" }, { "id": "end_1", "type": "End" } ] }, { "id": "test_cutscene_dialogue", "start": "cutscene_start", "nodes": [ { "id": "cutscene_start", "type": "CutsceneStart", "cutsceneId": "test_cutscene_01", "next": "end_1" }, { "id": "end_1", "type": "End" } ] }, { "id": "test_silent_cutscene_dialogue", "start": "cutscene_start", "nodes": [ { "id": "cutscene_start", "type": "CutsceneStart", "cutsceneId": "test_cutscene_silent_01", "next": "end_1" }, { "id": "end_1", "type": "End" } ] }, { "id": "test_cutscene_pan_dialogue", "start": "cutscene_start", "nodes": [ { "id": "cutscene_start", "type": "CutsceneStart", "cutsceneId": "test_cutscene_pan_01", "next": "end_1" }, { "id": "end_1", "type": "End" } ] } ], "cutscenes": [ { "id": "test_cutscene_01", "background": "resources/first_cutscene.png", "durationMs": 6800, "cameraTrack": [ { "durationMs": 2400, "from": { "focusX": 0.50, "focusY": 0.55, "zoom": 1.00, "rotationDeg": 0.0 }, "to": { "focusX": 0.63, "focusY": 0.58, "zoom": 1.16, "rotationDeg": -1.0 }, "easing": "EaseInOutSine" }, { "durationMs": 2200, "from": { "focusX": 0.63, "focusY": 0.58, "zoom": 1.16, "rotationDeg": -1.0 }, "to": { "focusX": 0.74, "focusY": 0.52, "zoom": 1.30, "rotationDeg": -2.4 }, "easing": "EaseInOutCubic" }, { "durationMs": 2200, "from": { "focusX": 0.74, "focusY": 0.52, "zoom": 1.30, "rotationDeg": -2.4 }, "to": { "focusX": 0.58, "focusY": 0.46, "zoom": 1.10, "rotationDeg": -0.6 }, "easing": "EaseOutSine" } ], "lines": [ { "speaker": "Narrator", "portrait": "resources/hero.png", "text": "The air in the room turned cold.", "durationMs": 2200 }, { "speaker": "Ghost", "portrait": "resources/ghost_avatar.png", "text": "Some memories never fade.", "durationMs": 2600 } ] }, { "id": "test_cutscene_silent_01", "background": "resources/first_cutscene.png", "durationMs": 5200, "cameraTrack": [ { "durationMs": 2600, "from": { "focusX": 0.40, "focusY": 0.54, "zoom": 1.00, "rotationDeg": 0.0 }, "to": { "focusX": 0.58, "focusY": 0.54, "zoom": 1.22, "rotationDeg": 0.8 }, "easing": "EaseInOutSine" }, { "durationMs": 2600, "from": { "focusX": 0.58, "focusY": 0.54, "zoom": 1.22, "rotationDeg": 0.8 }, "to": { "focusX": 0.72, "focusY": 0.48, "zoom": 1.34, "rotationDeg": -0.5 }, "easing": "EaseOutCubic" } ], "lines": [] }, { "id": "test_cutscene_pan_01", "background": "resources/first_cutscene.png", "durationMs": 12000, "cameraTrack": [ { "durationMs": 1200, "from": { "focusX": 0.50, "focusY": 0.50, "zoom": 1.00, "rotationDeg": 0.0 }, "to": { "focusX": 0.50, "focusY": 0.50, "zoom": 1.00, "rotationDeg": 0.0 }, "easing": "Linear" }, { "durationMs": 2500, "from": { "focusX": 0.50, "focusY": 0.50, "zoom": 1.00, "rotationDeg": 0.0 }, "to": { "focusX": 0.18, "focusY": 0.18, "zoom": 1.45, "rotationDeg": 0.0 }, "easing": "EaseInOutSine" }, { "durationMs": 2600, "from": { "focusX": 0.18, "focusY": 0.18, "zoom": 1.45, "rotationDeg": 0.0 }, "to": { "focusX": 0.82, "focusY": 0.18, "zoom": 1.48, "rotationDeg": 0.0 }, "easing": "EaseInOutSine" }, { "durationMs": 1800, "from": { "focusX": 0.82, "focusY": 0.18, "zoom": 1.48, "rotationDeg": 0.0 }, "to": { "focusX": 0.84, "focusY": 0.82, "zoom": 1.62, "rotationDeg": 0.0 }, "easing": "EaseInCubic" }, { "durationMs": 3900, "from": { "focusX": 0.84, "focusY": 0.82, "zoom": 1.62, "rotationDeg": 0.0 }, "to": { "focusX": 0.16, "focusY": 0.84, "zoom": 1.35, "rotationDeg": 0.0 }, "easing": "EaseInOutSine" } ], "lines": [ { "speaker": "Narrator", "portrait": "", "text": "The memory begins in silence.", "durationMs": 2200 }, { "speaker": "Narrator", "portrait": "", "text": "Something is drawing your eyes across the whole scene.", "durationMs": 2800 }, { "speaker": "Ghost", "portrait": "resources/w/ghost_skin001.png", "text": "Do not look away.", "durationMs": 2400 } ] } ] }