Импорт проектов Pokemon Essentials
Есть проект Pokemon Essentials, над которым вы работаете месяцами или годами? Essentials Importer из OpenMon преобразует данные вашего проекта PE v20, v21 и v21.1 в формат OpenMon — сохраняя вашу работу и открывая доступ к полной платформенной поддержке Unity и комме рческому лицензированию.


Второй снимок экрана — цель всего конвейера: 667 / 667 Monsters, которых можно просматривать по
видам, приёмам, способностям, предметам, типам и характерам, — из проекта, который час назад был
скриптами на Ruby и текстовыми файлами PBS.
Доступно в редакциях Indie, Pro, Source и Studio (в Indie и Pro — в скомпилированном виде).
Проверено на реальном проекте v21.1
Импортёр был запущен без интерфейса на полном проекте Pokemon Essentials v21.1 (релиз 2023-07-30) и преобразовал каждый список от начала до конца с нулём ошибок:
| Данные | Результат |
|---|---|
| Виды | 898 / 898 преобразован о, 0 ошибок — применено 335 переопределений форм, связано 422 эволюций |
| Приёмы | Создано 150 новых ассетов Move, 590 сопоставлено с существующей библиотекой приёмов |
| Способности | 72 создано, 195 сопоставлено |
| Предметы | Создано 315 ассетов Item, 378 сопоставлено |
| Тренеры | 20 тренеров с заполненными командами (обработано 72 типа тренеров) |
Все 898 видов преобразованы в настоящие ScriptableObject MCE — формы и цепочки эволюции связаны — без фатальных ошибок. Это главное заявление импортёра: проверено на полном реальном проекте v21.1, а не на синтетическом тестовом наборе. 227 предупреждений, сопровождавших запуск, — это все уведомления о честной деградации (эффекты приёмов без точного шаблона MCE — см. Приёмы ниже), но никак не молчаливая потеря данных.
Что импортируется
Essentials Importer обрабатывает сл едующие типы данных:
| Данные PE | Эквивалент в OpenMon | Статус |
|---|---|---|
| PBS/pokemon.txt | ScriptableObject MonsterEntry | Поддерживается (898/898 на реальном v21.1) |
| PBS/pokemon_forms.txt | Ассеты Form + переопределения DataByFormEntry | Поддерживается (применено 335 переопределений) |
| PBS/moves.txt | ScriptableObject Move | Поддерживается, честное сопоставление эффектов |
| PBS/types.txt | Ассеты MonsterType + таблица эффективности | Поддерживается |
| PBS/abilities.txt | ScriptableObject Ability | Поддерживается (на уровне ассетов) |
| PBS/items.txt | ScriptableObject Item | Поддерживается (создаются конкретные SO) |
| PBS/trainers.txt | TrainerDefinition + CharacterData + Roster + Bag | Поддерживается |
| PBS/encounters.txt | ScriptableObject WildEncountersSet | Поддерживается |
| Спрайты монстров | Боевые Material + Sprite значков | Поддерживается (по формам + варианты по полу) |
| Файлы карт (.rxdata) | Сцены Unity с GridController | Поддерживается (требует проверки на уровне проекта) |
| Изображения тайлсетов | Атласы спрайтов Unity | Поддерживается |
| Команды событий карты | Узлы CommandGraph | Поддерживается (бои с тренерами подключены) |
| Аудиофайлы | AudioClip с конфигурацией AudioManager | Прямое копирование |
Что требует ручной работы
Некоторые возможности PE не имеют прямого автоматического преобразования. Мы документируем это как честные ограничения по замыслу, а не оставляем их двусмысленными:
CommonEvents.rxdata— общие события вне области действия по замыслу. Они не импортируются; переносите общую логику событий в CommandGraph или C# вручную.- Поведение способностей — ассеты способностей создаются или клонируются, но импортированная способность работает лишь настолько богато, насколько богата реализация MCE, на которую она отображена. Пользов ательским способностям и способностям из плагинов нужна соответствующая реализация
Abilityв MCE. - Сложные скрипты на Ruby — пользовательские скрипты PE за пределами стандартных команд событий нужно переносить на C# или CommandGraph вручную.
- Данные, специфичные для плагинов — сторонние плагины PE хранят данные в нестандартных форматах.
- Пользовательские макеты интерфейса — оконная система PE принципиально отличается от Unity UI.
- Анимированные боевые спрайты — PE использует другой формат анимации; спрайты импортируются как статичные кадры, которые можно собрать заново.
Предварительные требования
Перед импортом убедитесь, что у вас есть:
- Установленный OpenMon (редакция Indie или выше) — см. Руководство по установке
- Папка вашего проекта PE, доступная на диске (та, что содержит
PBS/иData/) - Резервная копия вашего проекта Unity. Мастер говорит об этом сам: импортёр экспериментальный, предоставляется «как есть», а некоторые функции частичные (Items) или не реализованы (Common Events).
Версию Essentials (v20, v21 или v21.1) вы не выбираете: импортёр определяет её при сканировании проекта.
Пошаговый импорт
Шаг 1: Откройте импортёр
В Unity откройте OpenMon Hub (Tools > MCE > OpenMon Hub) → вкладка Importer → Import Wizard.

Starting Map Picker, расположенный ниже на той же вкладке, — шаг, который чаще всего упускают: он определяет, на какой карте появится игрок после главного меню. Без него в остальном успешному импорту просто негде начаться.
В окне мастера отображаются:
- PE Project Folder — корневая папка вашего проекта (та, что содержит
PBS/,Data/,Graphics/), с кнопкой Browse - Project Name — имя этого импорта (например,
FRLGилиEmerald). Оно задаёт имя папки вывода, поэтому несколько импортов могут жить рядом - Imported Projects — импорты, которые уже есть в этом проекте Unity
- Import Categories — переключатель для каждого типа данных
- Map Display Mode — рисовать импортированные карты в 2D (плоско, вид сверху) или в 2.5D (под наклонной камерой). Каждую карту можно изменить позже в Display Mode per Map
- Output Folder и Overwrite Existing Assets
Шаг 2: Выберите и просканируйте проект PE
Нажмите Browse и перейдите в папку вашего проекта Pokemon Essentials, затем нажмите Scan Project. Импортёр проверяет структуру папок, показывает определённую Version и сообщает, что нашёл:
PBS/pokemon.txt -- 898 species detected
PBS/moves.txt -- 740 moves detected
PBS/types.txt -- 19 types detected
PBS/abilities.txt -- 267 abilities detected
PBS/items.txt -- 693 items detected
PBS/pokemon_forms.txt -- 339 form overrides detected
PBS/trainers.txt -- 20 trainers detected
(Показанные числа взяты из реального проекта v21.1 2023-07-30, на котором проверялся импортёр.)
Сканирование также выполняет глубокое сканирование автотайлов проекта. Если все изображения, которые называет тайлсет, есть в проекте, сканирование завершается строкой [OK] Missing: 0 - All autotile images found!. Отсутствующее изображение пока не оценивается: это происходит, когда карты уже разобраны (см. примечание о коде возврата в разделе о командной строке и легенду журнала на шаге 5).
Шаг 3: Выберите, что импортировать
В Import Categories есть переключатель для каждого из пунктов: Species, Moves, Items, Abilities, Types, Trainers, Encounters, Maps, Sprites, Follower Sprites, Audio и Connections.
Для первого импорта мы рекомендуем импортировать по этапам:
- Первый проход: Types, Abilities, Moves, Species (только данные, без карт)
- Второй проход: Items, Trainers, Encounters
- Третий проход: Maps и Audio
- Четвёртый проход: проверьте события и интеграцию сцен (ниже)
Такой поэтапный подход позволяет проверить каждый слой данных, прежде чем строить на нём следующий.
Шаг 4: Запустите импорт
Мастер работает фазами, и у каждой есть собственная кнопка:
| Кнопка | Что она делает |
|---|---|
| PARSE DATA | Фазы 1–2: читает текстовые файлы PBS, а также карты и тайлсеты .rxdata в соответствии с определённой версией Essentials. В вашем проекте пока ничего не создаётся. |
| CONVERT TO MCE | Фаза 3: превращает разобранные данные в ScriptableObject и сцены MCE в папке вывода. Доступна после успешного разбора. |
| FULL IMPORT (Parse + Convert) | Разбор, преобразование и интеграция за один раз. |
| INTEGRATE SCENES (Phase 6) | Подключает импортированные сцены к рантайму MCE: регистрирует их в менеджере сцен, подключает каждый SceneInfo, размещает триггеры варпов, связывает наборы встреч и добавляет сцены в Build Settings. Запускайте после импорта (полный импорт уже делает это). |
Всё записывается в Assets/ImportedGames/<Project Name>/, а подробный журнал импорта показывает успехи, предупреждения и элементы, требующие внимания.
Шаг 5: Просмотрите журнал импорта
Журнал классифицирует результаты:
- [OK] — данные успешно преобразованы
- [WARN] — данные преобразованы, но с допущениями (например, эффект приёма без точного шаблона MCE, клонированный по категории), либо остаток, при котором ничего не теряется (тайлсет называет изображение автотайла, которого нет в проекте, но ни одна карта этот тайлсет не использует)
- [ERR] — данные, которые не удалось преобразовать автоматически (включая изображение автотайла, которое называет тайлсет, используемый хотя бы одной картой, и которого нет в проекте)