Script Markup Studio
Мова: English · Українська
Відкривається з Tools → Script Markup Studio…, з кроку пайплайну Mark up the script, або з фіолетової кнопки R біля редакторів (стрибок до місця, прив’язаного до поточного ігрового рядка).
Реалізація: ui/script_markup_studio_dialog.py. Логіка: core/script_markup/ (без Qt). HTML довідки в самому вікні — опис продукту; ця сторінка йде за ним плюс меню/шорткати з того ж файлу.
Навіщо
Перетворює сирий вокзру на стандартизований скрипт, який споживають збирачі MemePalace:
[Chapter:]/[Location:]/{Action:}/SPEAKER: text
Працюєте в одному кольоровому вигляді сирого скрипта. Другої панелі, яку треба синхронізувати, немає. Preview result… показує готовий файл; Export його записує.
Кольори (_KIND_COLORS):
| Kind | Колір | Значення |
|---|---|---|
| Chapter | червонуватий | Заголовок розділу |
| Location | блакитний | Локація |
| Action | бурштиновий | Ремарка / дія |
| Speaker / dialogue | зелений | Репліка (сусідні блоки спікера чергують зелений/бірюзовий) |
| Ignored / dropped | сірий | Не експортується |
| Narration / blank | білий | Некласифіковано / порожньо |
Режими
Типово — Hierarchy markup. Picoripi rules і Custom recipe живуть у Advanced ▾ → Legacy tools.
| Режим | Навіщо |
|---|---|
| Hierarchy markup (типово) | Ручні мітки дерева з глибиною. Кожна мітка має глибину, тип, підпис/текст, колір. Експорт — канонічний Markdown |
| Picoripi rules (legacy) | Власний парсер вокзру програми (спікери й сцени). Краще для вже структурованих скриптів |
| Custom recipe (legacy) | Налаштовувані правила + навчання на прикладах, для брудних сирих вокзру |
Вікно стадіями: 1. Source — 2. Markup — 3. Review — 4. MemPalace.
File ▾: Open script..., Open project..., Save, Save As..., Close. Auto-fill ▾: Join selected structures; Continue from marked examples... (локально, без AI); AI mark missing.... Advanced ▾: Template, Export (Preview result…, Export game_script.md…), Change Type Color..., Legacy tools.
Ctrl+M у головному вікні — MemePalace Context Builder. Ctrl+M всередині Studio мітить виділення (або зберігає правку вузла). Це різні команди.
Воркфлоу
- Script → Open script... — завантажити сирий вокзру.
- Hierarchy: мітити виділення, переглянути дерево скрипта, далі Project, Template і Auto-fill, коли потрібні повторювані мітки або допомога заповнення.
- Picoripi rules / Custom recipe: Start from cursor і End at cursor, щоб відрізати зміст, склад і юридичний перед/післятекст.
- Custom recipe: підкрутити чекбокси або навчити на прикладах.
- Дивитись кольори і чергу Review; Preview result… для перевірки.
- Export стандартизованого скрипта.
Майстер пайплайну знаходить наявний markup-проєкт на диску і публікує script_markup_studio_project_path на головному вікні, щоб Context Builder не просив знову вказати той самий файл.
Сцени й Auto-fill
Сцена — це Structure, дочірня до розділу. Auto-fill ▾ → Continue from marked examples... вчиться сцен із дерева, яке ви вже розмітили, а не з номера в назві сцени:
- Прикладами є повторювані дочірні структури однієї глибини в розмічених розділах.
- Позначений Breaker навчає точного тексту роздільника (ті самі символи, та сама довжина). Роздільник належить сцені, що ним закінчується, і лежить на рівень нижче сцени, поруч із її мовцями й текстом.
- Наступний розділ теж закінчує сцену, але роздільника не створює. Дії та слова оповідача всередині сцени лишаються в ній.
- Вивчений шаблон застосовується до сусідніх розділів, де сцен ще немає. Розділ, що сам є одним блоком завбільшки зі сцену, контейнера сцени не отримує. Назви сцен продовжують нумерацію наявних сусідів і в кожному розділі починаються заново. Наявні структури не перейменовуються; повторний Auto-fill нічого не змінює.
Нумерація назв уручну. У назві структури, яку ви вводите для Ctrl+M, $ — лічильник: Scene $
починається з Scene 1, Scene $4 — з Scene 4. Номер зростає серед сусідів і скидається під іншим
батьківським вузлом. Один $ на назву; у збереженій назві стоїть число, а не $.
Чиї позначки навчають. Кожна позначка пам'ятає походження: ручна, локальний Auto-fill або AI. Ручні позначки — схвалені приклади. Позначки Auto-fill та AI спершу несхвалені й підписані в дереві; схвалити їх можна з контекстного меню дерева. Наступний прохід Auto-fill чи AI вчиться лише на схвалених. Позначки, збережені до появи цього механізму, завантажуються як ручні й схвалені.
Навігація і пошук
- Find: текст у полі пошуку, Enter — наступне входження, Shift+Enter — попереднє. Aa, Word,
.*уточнюють збіг. - Minimap: тягнути огляд праворуч.
- Script tree: подвійний клік по вузлу чи пункту review стрибає на рядок джерела.
Клавіатура (Studio)
| Клавіша | Hierarchy markup | Picoripi rules / Custom recipe |
|---|---|---|
| Ctrl+F | Фокус Find | те саме |
| Ctrl+M | Помітити виділення вибраним Type; під час правки вузла — зберегти | Помітити виділені/поточні рядки як Action |
| Ctrl+I | Вибрати Ignore; з виділенням — помітити ignored | Помітити як Ignore |
| Ctrl+S | Structure (з виділенням: мітка; без: лише Type picker) | — |
| Ctrl+P | Speaker | — |
| Ctrl+T | Text | — |
| Ctrl+B | Breaker | — |
| F2 | Перейменувати вузол дерева (клік по вже вибраному теж відкриває rename; подвійний клік усе одно стрибає) | |
| Ctrl+Z / Ctrl+Y | Undo / redo змін Studio | те саме |
Експорт Hierarchy Markdown
| Тип | Рендериться як |
|---|---|
| Structure глибина 0 / 1 / 2 | заголовки # / ## / ### |
| Glossary | Секція джерела MemPalace; прямі діти стають категоріями (Characters, Items, Locations або власні імена) |
| Speaker + Text | Мітяться окремо, рендеряться разом: **MIDNA**: dialogue |
| Action | Окремий рядок у квадратних дужках: [*Midna drops from a branch*] |
| Unmarked | Не рахується зробленим у зонді статусу пайплайну |
Порожні рядки джерела не «markable». Один зайвий порожній рядок не триматиме крок пайплайну на N / N+1 вічно.
Хто споживає далі
- Merge Speakers from Script… зіставляє розмічені імена з голосовими кодами гри.
- MemePalace Context Builder імпортує ієрархічний таймлайн.
- Автопрохід глосарія сіє імена персонажів з розмітки (
core/glossary_build/script_seeds.py). - R на головному вікні стрибає з ігрового рядка на розмічене місце.
Finish for MemPalace… відмовляється йти далі, поки лишаються нерозмічені діапазони.
Не експортуйте і потім правте Markdown руками, якщо Studio має лишатися власником проєкту — працюйте в Studio і експортуйте знову.
Не пропускайте розмітку і не чекайте повного Merge Speakers чи повних сідів персонажів у глосарії.