# My Novel — 나만의 비주얼 노벨의 출발점 My Novel은 프로젝트에서 가장 작은 완성된 비주얼 노벨입니다. 저녁의 마을, 바, 집이 선택지로 이어져 있습니다. 캐릭터도 아이템도 전투도 없고, 장면과 짧은 시나리오 파일, 그 번역만 있을 뿐입니다. 이 모드는 복제하기 위해 만들어졌습니다. 이름을 바꾸고, 이 세 장소에서 나만의 이야기를 키우세요. **플레이 → My Novel → 새 게임**에서 시작합니다. **My Novel** 게임(컬렉션 `novel_template`)의 콘텐츠입니다. ![My Novel의 바: 바 배경과 “바는 따뜻하고 시끌벅적하지만, 오늘 밤 여기서 할 일은 없다.” 줄.](assets/bar.jpg) ## 들어 있는 것 ```filestree my_novel_game/ ├── manifest.json ├── scenes/ │ ├── my_novel_town.json 마을 입구, 게임이 여기서 시작됨 │ ├── my_novel_bar.json 자체 환경음이 있는 바 │ └── my_novel_home.json 집 현관 ├── scenarios/ │ ├── my_novel_town.scenario │ ├── my_novel_bar.scenario │ └── my_novel_home.scenario └── locale/ ├── en.properties 모드 이름과 설명 └── scenarios_.properties 시나리오 줄의 번역 ``` 그림과 바 소리는 이 모드에 없습니다. **Town Pack**에서 오기 때문에, 템플릿은 작게 유지되면서 게임이 공유 콘텐츠를 재사용하는 방식을 보여 줍니다. 음악은 **Music Pack**에서 옵니다. 엔진 모드는 2D 셸, 대화 엔진, 오디오 엔진입니다. ## 이야기가 흐르는 방식 마을이 중심입니다. 방문할 때마다 같은 선택지가 나타나고, 바와 집은 언제나 돌아가는 길로 이어집니다. ```text ┌────────────────────┐ │ my_novel_town │ (시작) │ “어디로 갈까?” │ └──┬──────────────┬──┘ 바에 들어간다 집으로 돌아간다 ▼ ▼ ┌──────────────┐ ┌──────────────┐ │ my_novel_bar │ │ my_novel_home│ └──────┬───────┘ └──────┬───────┘ └─ 마을로 돌아간다 ─┘ ``` ![My Novel의 첫 장면인 마을 입구와 “저녁의 마을. 가로등은 벌써 켜졌고, 시원한 바람이 자갈길을 따라 분다.” 줄.](assets/town.jpg) 장면 파일은 배경과 환경음을 지정합니다: ```json { "name": "my_novel_bar", "defaultBackground": "bar/bar", "defaultAmbient": "bar/bar_ambient" } ``` 장면과 같은 이름의 시나리오는 그 장면에 들어설 때 실행됩니다: ```scenario scene: my_novel_town priority: 10 --- # The town is the hub: every visit shows the same choice. text "Evening town. The street lamps are already lit and a cool draught runs along the cobbles." key=my_novel/town/intro select "Where to go?" key=my_novel/town/prompt option "Go into the bar" key=my_novel/town/opt_bar -> :bar option "Go back home" key=my_novel/town/opt_home -> :home :bar switch_scene my_novel_bar end :home switch_scene my_novel_home end ``` 영어 텍스트는 시나리오에 직접 쓰여 있습니다. 각 `key=`는 그 줄의 번역을 `locale/scenarios_.properties`에서 가리킵니다. 예를 들어 스페인어는: ```properties my_novel/town/intro = La ciudad al anochecer. Las farolas ya están encendidas y una corriente fresca recorre los adoquines. ``` ## 내 것으로 만들기 1. **모드를 복제하고 이름을 바꾸십시오.** 게임 이름에 `_game` 접미사를 붙여 지으세요. 예: `harbor_game`. 폴더 이름과 `manifest.json`의 `id`를 같은 값으로 바꾸고, `locale/*.properties`의 키 `mod_my_novel_game_name` / `_desc`를 `mod_harbor_game_name` / `_desc`로 바꾸십시오. 2. **게임을 만드십시오.** **Mods & Collections → 컬렉션**에서 My Novel의 구성을 열고 **복제**를 누른 뒤, **스토리** 블록의 `my_novel_game`을 내 모드로 바꾸십시오. 시작 장면은 컬렉션에서 정합니다(`"entry": { "scene": "my_novel_town" }`). 3. **장면 이름을 바꾸십시오(선택).** 장면의 `name`, 그 파일, 시나리오의 `scene:` 헤더, 그곳으로 이어지는 모든 `switch_scene`이 일치해야 합니다. 4. **아트를 유지하거나 교체하십시오.** 마을을 그대로 두려면 `depends`에 `town_pack`을 남기세요. 아니면 자신의 `backgrounds/`와 `sounds/`를 추가하고 `defaultBackground` / `defaultAmbient`가 그쪽을 가리키게 하세요. ## 첫 번째 변경: 장소 추가하기 이것은 편집기에서의 실제 세션입니다. My Novel에 Editor Tools 모드를 추가한 상태에서 진행했습니다. 장면 편집기가 `my_novel_park` 장면을 만들고, 마을 시나리오에 선택지 하나와 라벨 하나를 입력했습니다: ![my_novel_town.scenario가 열린 시나리오 편집기: 새 줄 `option "Go to the park" -> :park`과 새 블록 `:park / switch_scene my_novel_park / end`. 상태 표시줄은 파일이 저장되었다고 알립니다.](assets/edit-town-scenario.jpg) ```scenario option "Go to the park" -> :park :park switch_scene my_novel_park end ``` 저장하면 마을이 곧바로 새 길을 내놓고, 그것을 고르면 새 장면이 열립니다: ![마을의 선택지는 이제 세 개: 바에 들어간다, Go to the park, 집으로 돌아간다.](assets/new-choice.jpg) 자신의 게임에서 편집기를 쓰려면 구성에서 **Editor Tools** 모드를 추가하거나, 한 세션 동안 그것들과 함께 게임을 실행하세요: ```text godot --path . -- --game=novel_template --new --with-mods=editor_tools ``` `key=` 없는 새 줄은 모든 언어에서 글자 그대로의 텍스트를 보여 줍니다. 이야기를 번역할 준비가 되면 키와 번역을 추가하세요. ## 잘 안 될 때 1. **어떤 선택지가 아무 데도 가지 않습니다.** `switch_scene`의 이름은 대소문자까지 대상 장면의 `name`과 같아야 합니다. 2. **장면에 텍스트가 없습니다.** 그 시나리오의 `scene:` 헤더가 바로 그 장면의 이름을 가리켜야 합니다. 3. **다른 언어에서 텍스트가 영어입니다.** 줄에 `key=`가 없거나, 그 언어의 `scenarios_.properties`에 키가 없습니다. 4. **검은 배경.** 배경 이름의 철자가 틀렸거나, 그림을 가진 모드가 `depends`에 없습니다.