AMS 1.11.0 — редактор модов Amorous для ПК

НОВОЕ В 1.11

Русский / English выбирается в верхней панели. Выбор сохраняется для AMS;
для смены языка всех открытых редакторов нужен перезапуск. Текст мода,
идентификаторы игровых объектов и игровые ресурсы не переводятся.

Новая иконка соответствует фиолетовому оформлению редактора.

При запуске AMS проверяет https://c0dy.beer/ams/update.json. Проверка
работает в фоне: отсутствие сети не мешает работе. Кнопка «Обновления»
повторяет проверку вручную. При наличии новой версии можно загрузить
ее, затем установить и перезапустить программу. Архив и каждый файл
проверяются по SHA-256. Перед закрытием действует обычное сохранение
проекта; отмена закрытия отменяет установку. Старые файлы сохраняются
для отката. Пользовательские файлы не удаляются. Журнал обновлений:
%LOCALAPPDATA%/AMS/Updates. Автоустановка работает в распакованной
портативной сборке AMS.exe, а не в среде разработки.

«Готовый пример» в режиме обучения создает гостя клуба, развилку,
новую комнату и выход обратно. После перехода гость явно добавляется
на экран событием SpawnNPC: переход сцены сам по себе не переносит
персонажей текущего диалога.

ENGLISH QUICK START

Extract the portable archive into its own folder and run AMS.exe.
Choose English in the top toolbar and restart when prompted. Your mod
content, game identifiers and assets keep their original language.
Create a project using a supported, unmodified game installation as its
base. In World, enable Training and use Ready-made example for a guest,
a dialogue choice, a new room and a return exit. Edit the character,
placement and story graph, validate, review changes, then build ZIP.
Install the ZIP into a separate game copy using the Project inspector's
Install ZIP with backup action, or extract it into the game root.
The exported mod needs no separately installed mod loader.

AMS checks c0dy.beer for updates in the background at startup. Updates
also provides a manual check. Downloading and installation are separate
actions; SHA-256 checks protect both the ZIP and its listed files. Normal
save prompts remain active. Backups allow rollback if replacement fails.
Projects and unrelated files are retained. Update logs and staging files
are under %LOCALAPPDATA%/AMS/Updates. Internet errors do not block editing.

НОВОЕ В 1.10

В размещении персонажа выделите его и потяните за любой угол рамки.
Размер меняется пропорционально, противоположный угол остается на месте.
Область нажатия меняется вместе с персонажем. Отмена всего жеста — Escape;
после отпускания мыши весь перенос угла отменяется одним Ctrl+Z.
Масштаб просмотра и положение холста после изменения сохраняются.

В редакторе локаций углы доступны у слоев изображений и областей нажатия.
Изображения сохраняют пропорции; Shift позволяет менять ширину и высоту
свободно. Области нажатия меняют размеры свободно. Масштаб просмотра и
прокрутка учитываются; сам холст можно приблизить и переместить.

Пошаговая полоса создания мода и кнопки-шаги теперь находятся в режиме
«Обучение». Его переключатель расположен в редакторе мира, настройка
сохраняется для проекта. Обычный режим оставляет рабочие инструменты.

В графе «＋ событие» вставляет событие ПЕРЕД выделенной плиткой, обновляет
входящие связи и StartID. Новое событие ведет к прежнему. У новой развилки
все выходы первоначально ведут к прежней плитке; у выбора создается один
редактируемый ответ. «＋ после» по-прежнему вставляет после выделенного.
Без выделения «＋ событие» добавляет самостоятельное событие.

Ошибки показывают отдельные понятия: «Этап 50, ID 2 (граф 5 из 10)».
Stage — реальный идентификатор в файле; положение графа — его номер
в списке. Двойное нажатие на диагностику выбирает найденное событие,
если структура файла позволяет открыть граф.

«▶ Играть отсюда» запускает выбранное событие с подготовкой контекста.
Движок предварительно выполняет предыдущие события выбранного пути,
включая сцену, персонажей и флаги; реплики и паузы подготовки ускоряются.
Игра продолжает работу с выбранной плитки. Это отдельная тестовая копия;
реальные сохранения прохождения не загружаются и не заменяются.

Маршрут начинается с StartID указанного начального этапа. Через другие
графы он проходит только по явным переходам SetStage этого задания:
числовой порядок этапов не означает порядок истории. Если до цели есть
выбор ответа или неизвестное условие, укажите путь и начальное состояние
в окне запуска. Несовпадение с реальным движком останавливает подготовку.
Внешнее сюжетное состояние и мини-игры могут потребовать отдельной
тестовой ситуации; редактор не выдает пропуск неизвестного эффекта за
точно восстановленную историю.

ЗАПУСК

Распакуйте архив и запустите AMS.exe на Windows 10/11 x64.
.NET runtime и инструменты текстур входят в поставку. Игра и ее ресурсы
в поставку не входят. Для авторского C# используются библиотеки .NET
Framework 4, необходимые самой ПК-игре.

Простой режим оставляет визуальные инструменты. Полный режим дополнительно
показывает исходники, DLL/IL и C#. Переключатель не меняет данные проекта.

ПЕРВЫЙ МОД

1. «Новый проект»: выберите пустую папку проекта и исходную ПК-игру.
   Папки проекта и игры должны быть раздельными. Для чистой игры и
   русификатора создавайте разные проекты на соответствующей базе.
2. Откройте «Мир». Основные действия находятся в разделах сцен и персонажей.
   Для пошаговых подсказок включите «Обучение». По умолчанию оно выключено.
3. В режиме «Обучение» кнопка «Готовый пример» создает гостя в клубе,
   диалог с двумя ответами,
   собственную комнату и выход обратно в клуб. Пример добавляется в проект;
   исходная игра при этом не меняется. Изучите его через «Открыть сценарий».
   На чистой английской базе диалог примера английский, на RU — русский.
4. Создайте персонажа, разместите его мышью в сцене и назначьте сценарий
   взаимодействия. Через «Создать сценарий из текста» можно начать с реплики,
   затем открыть граф и добавить варианты ответов и переходы.
5. «Проверить» ищет ошибки данных. «Кадр из игры» показывает настоящий движок.
   Пройдите диалог в тестовом запуске. Затем «Собрать ZIP».
6. Перед сборкой открывается сравнение изменений с исходной игрой:
   измененные и новые файлы, текст до/после, текстуры, мир, меню, код и DLL.
   Отдельно это окно доступно в инспекторе «Проект».
7. ZIP мода распаковывается в корень совместимой ПК-игры. Игроку не нужен
   AMS или отдельный загрузчик. Для испытаний используйте отдельную копию.

ИСХОДНАЯ ИГРА И СОВМЕСТИМОСТЬ

Мировой runtime, конструктор персонажа и точный просмотр поддерживают
проверенные пары Game/Engine: оригинал 33/C6, RU 52/C0 и RU с демо 44/C0.
Проверяются полные SHA256 и сигнатуры методов. Неизвестная база отклоняется.

Если после создания проекта вы установили мод в его исходную папку игры,
DLL изменятся и повторная сборка может перестать проходить проверку.
Восстановите исходную версию из резервной копии или создайте новый проект
на нужной базе. Не подменяйте контрольные суммы в project.json.
Сборка мода и работа редактора сами по себе исходную игру не изменяют.
Кнопка установки действительно устанавливает мод; сохраняйте ее резервную
копию и используйте отдельную тестовую установку для дальнейшей разработки.

ПЕРСОНАЖИ И ОБРАЗЫ

«Мир → Создать своего персонажа…» открывает конструктор AMS на основе
материалов и правил игрового редактора главного героя. Игра при этом
не запускается. Доступны телосложение, голова, глаза, брови, морда,
уши/рога, прическа, хвост, ступни, отметины и цвета. Парные детали
подбираются по исходным правилам. Отметин может быть несколько.

После создания выберите персонажа и «Образы персонажа…». Сделайте копию
образа, задайте название, измените внешность или используйте готовые
выражения на основе глаз и бровей. Выберите начальный образ. В сценарии
каждый образ выбирается в поле Pose события SpawnNPC для вашего NPC.
Профили деталей и цветов сохраняются и остаются редактируемыми.
Используемый образ защищен от удаления, если найдены ссылки на него.

Образы экспортируются готовыми статичными изображениями. Автоматическая
анимация тела или произвольные новые костные позы из одной картинки
не создаются. Старые проекты CustomRig остаются совместимыми; прямое
редактирование их данных доступно в полном режиме.

Существующего игрового NPC можно взять за шаблон, выбрать поддерживаемые
позу, лицо и одежду, затем «Создать на основе». Изменять внешность шаблона
можно для просмотра; сохраняемый мод использует отдельного персонажа.
Собственные материалы импортируются с сохранением структуры базового рига.

При выборе внешности отсутствующие слои и известные несовместимые
сочетания объясняются в интерфейсе. Не все предметы одежды можно надеть
одновременно. Отдельные игровые риги содержат специальные правила.

ДОСТОВЕРНОСТЬ ПРЕДПРОСМОТРА

В инспекторе «Проект → Достоверность предпросмотра…» можно выбрать NPC
или проверить весь поддерживаемый каталог. Автоматически отрисовываются
объявленные позы и выражения с согласованным комплектом одежды, отдельные
предметы одежды и проверяются известные конфликтующие сочетания.
Все возможные подмножества одежды не перебираются.

«Сравнить с игрой» делает до восьми выбранных внешностей в редакторе и
настоящем движке, сохраняет оба кадра, карту различий и метрики силуэта/цвета.
Для этой операции нужен Steam и поддерживаемая база. REVIEW означает,
что различия нужно просмотреть; дыхание, моргание и время кадра отличаются.
Успешный автоматический порог не является доказательством пиксельного
совпадения. Для своих изображений используйте точный просмотр проекта.
Отчеты находятся в .ams/appearance-audits.

Быстрая «Сборка слоев» показывает статическую композицию. «Отдельный слой»
показывает одну текстуру. «Кадр из игры» проверяет результат настоящим
движком с текущим модом. Эти режимы обозначены в подписи изображения.

ЛОКАЦИИ, СЛОИ И ОБЛАСТИ

«Мир → Сцены → ＋ Локация» создает собственную локацию. Задайте понятное
название и ID латиницей, заканчивающийся на Scene. В редакторе добавляйте
слои из игровых XNB или импортируйте PNG. Настраивайте положение, размер,
непрозрачность, порядок и передний/задний план. Элементы перетаскиваются
на холсте. «Копия локации» переносит доступную статическую композицию.

В разделе областей добавьте прямоугольник взаимодействия. Действие Scene
переводит в выбранную локацию; Quest запускает диалог или другой сценарий.
Положение и размер области видны на холсте. Новая локация регистрируется
в экспортируемом моде и доступна в подсказках графа SwitchToScene.
Имена несуществующих назначений блокируют сборку.

Разместите в новой или исходной локации своего NPC. Положение, масштаб,
порядок, внешность и область нажатия задаются для размещения. Интерактивный
NPC получает штатную красную подсветку при наведении, включая свою область
нажатия. Во время активной катсцены постоянные размещения и взаимодействия
уступают управление сюжету, чтобы не накладывать чужие события.

Редактор создает локации в рамках существующего движка Amorous. Физика,
произвольная 3D-сцена и новый движок визуально не создаются.

ГРАФ И ПРОВЕРКА ИСТОРИИ

Откройте игровой JSON и «Граф сценария». Поддерживаются все 32 типа событий,
обнаруженные в исходной игре: реплики, ответы, условия, флаги, NPC,
сцены/подсцены, контакты, телефон, команды и другие.
Переходы задаются в полях целей. Карточки перетаскиваются; пустой фон
перемещается мышью. Ctrl+колесо меняет масштаб. «Вписать» показывает граф.
Добавление имени в поле не создает ресурс: используйте реальные объекты
каталога или созданные персонажи и локации.

«Проверить сценарий» открывает пошаговый прогон. Справа задаются начальная
сцена, необязательный ID события, имя игрока, цензура, флаги, стадии заданий
и контакты. Флаги: имя=true/false, стадии: имя=число, контакты: по одному
на строку. Этап выбирается сверху. Сохраните именованную тестовую ситуацию,
чтобы повторять проверку. «Сначала» восстанавливает именно начальные данные.
Текущие ручные изменения флагов отделены от исходного состояния.

«Этап в игре» передает настроенное состояние новому тестовому игроку.
Это не загрузка ваших сохранений и не моделирование всей предыстории.
Неизвестные эффекты останавливают программный прогон; ручной пропуск
не считается подтверждением поведения движка.

Диагностика предупреждает о событиях, недостижимых из StartID этапа,
и отсутствующих известных персонажах, сценах, контактах, заданиях и ресурсах.
Прямой запуск события может быть намеренным, поэтому недостижимость —
предупреждение. Стадии-состояния без Events допустимы в исходной игре.

СЛУЖЕБНЫЕ МАРКЕРЫ И ИСХОДНИКИ

Граф и исходник представляют один документ. Неизвестные поля сохраняются.
При изменении существующих реплик защита сравнивает переменные %...%,
теги, паузы ░▒▓ и переносы строк. Для намеренного изменения структуры
нужно разрешить изменения сюжета; защита маркеров — отдельная настройка.
Для русских реплик в оригинальной английской игре нужен игровой шрифт
с кириллицей или соответствующая RU-база.
В стандартном русификаторе избегайте ё и длинного тире, если шрифт их
не поддерживает. Создание своей ветки требует проверки всех переходов.

Полный режим сохраняет прямое редактирование JSON и C#, просмотр DLL/IL,
замену строк и подключение методов. Авторский C# компилируется в helper DLL
и выполняется игрой. Это расширение с возможностями обычного кода Windows,
а не защитная песочница. Сложные новые типы поведения требуют программирования.

ОТМЕНА, ИСТОРИЯ И ВОССТАНОВЛЕНИЕ

Ctrl+Z и Ctrl+Y работают с активным визуальным редактором: миром, графом
или меню/титрами. В текстовом поле действуют обычные команды отмены текста.
Перетаскивание считается одним действием. В конструкторах локаций,
внешности и образов также есть кнопки отмены/повтора. Истории редакторов
отдельные; это не единая транзакция всех файлов проекта. Отмена настройки
не обязана удалять уже импортированный, но больше не используемый ресурс.

Черновики автоматически сохраняются каждые 20 секунд (последние 12 снимков).
В инспекторе проекта доступны восстановление и история сохраненных файлов:
до 10 разных версий файла размером до 64 МБ. Папка .baseline хранит исходные
ресурсы для сравнения; не удаляйте ее из рабочего проекта.

МЕНЮ И ТИТРЫ

Во вкладке «Меню и титры» добавляйте текст, кнопки и изображения,
перетаскивайте и настраивайте размеры, цвета и порядок. «Шаблон» дает
начальную страницу. Действия кнопок: новый сценарий, сцена, титры,
возврат, штатное меню, ссылка и выход. Через штатное меню доступны настройки
и сохранения. Координаты макета — 1920x1080 с масштабированием.
Титры прокручиваются; Escape возвращает к меню.

БЫСТРЫЙ ТОЧНЫЙ ПРОСМОТР

Первая игровая проверка создает обычную копию файлов без сохранений,
настроек и ссылок на исходные файлы. Она хранится в .ams/preview-cache
проекта. Перед следующим запуском проверяются SHA256 файлов; меняются
только отличающиеся файлы, удаляются остатки предыдущего теста и снова
применяется текущий мод. Один кэш не используется двумя проверками
одновременно. Поврежденный файл копии восстанавливается из исходной игры.

Кэш занимает примерно размер игры и сохраняется между запусками.
Отчеты, изображения и журналы находятся в .ams/playtest. Звук блокируется
в собственной копии FNA до старта процесса; системная громкость и FNA
исходной игры не меняются. Не удалось завершить процесс — повторное
использование этой копии блокируется до его закрытия.

ОГРАНИЧЕНИЯ МОДОВ

Два мода, заменяющие одну DLL или один ресурс, могут конфликтовать.
Проверка ZIP показывает пересечения и несовпадения базы/контрольных сумм;
автоматического слияния разных DLL нет. Соберите совместимые изменения
в одном проекте. Сохраняйте резервные копии перед установкой.

Экспортируемый архив содержит игровые файлы и helper конкретного мода.
Файлы AMS, кэши и служебные профили игроку не нужны. Для полного теста
пройдите ветки, проверьте сохранение/загрузку и установку на отдельную копию.

ФАЙЛЫ ПРОЕКТА

project.json — паспорт, база и рецепты DLL.
Files/ — новые и заменяемые файлы по путям внутри игры.
Code/ — авторские исходники C#.
.baseline/ — оригиналы изменяемых ресурсов.
.ams/world.json — персонажи, образы, размещения и локации.
.ams/interface.json — меню и титры.
.ams/test-scenarios/ — именованные тестовые ситуации.
.ams/recovery/ и .ams/history/ — черновики и история.
.ams/preview-cache/ — повторно используемая тестовая игра.
Backups/ — резервные копии установки.

Старые проекты открываются с прежними ID и сохраняемыми неизвестными полями.
Внутренний namespace AmorousModStudio оставлен для совместимости.

ИСХОДНИКИ И ЛИЦЕНЗИИ

Внешний xnbcli запускается отдельным процессом. Его tag 1.0.4 содержит GPL v3
в LICENSE.md; в package.json указан ISC. Поставка сохраняет GPL-текст.
В Licenses находятся исходные notices, включая Mono.Cecil, .NET и зависимости.
В Sources — исходники xnbcli, npm-пакеты из lockfile, Node 10.15.3 и полный
AmorousModStudio-source.zip для пересборки. Игра, перевод и игровые ресурсы
сохраняют права своих авторов и в поставку AMS не включены.
