Гайд по созданию скинов
Добро пожаловать в гайд по созданию скинов Manic EMU! 🎮 Система скинов этого эмулятора построена на фреймворке DeltaSkin и полностью совместима с его базовым форматом. Если хотите сначала освоить основы DeltaSkin, рекомендуем официальный туториал. Если проектируете в Figma, загляните в наш RetroSkinner. Он помогает превратить макеты Figma сразу в файлы скинов.
Но у Manic EMU есть и свои фишки! ✨ Например анимация нажатий, свободное масштабирование, переворот экрана и другое. Разберём, как пользоваться этими эксклюзивными возможностями:
📁 Гайд по конфигурации info.json
Заголовок раздела «📁 Гайд по конфигурации info.json»Идентификатор типа игры (gameTypeIdentifier)
Заголовок раздела «Идентификатор типа игры (gameTypeIdentifier)»Manic EMU использует собственные идентификаторы типов игр:
- Wii:
public.aoshuang.game.wii - NGC:
public.aoshuang.game.ngc - Amiga:
public.aoshuang.game.amiga - C64:
public.aoshuang.game.c64 - NGP:
public.aoshuang.game.ngp - PCE:
public.aoshuang.game.pce - Symbian:
public.aoshuang.game.symbian - DOS:
public.aoshuang.game.dos - J2ME:
public.aoshuang.game.j2me - DOOM:
public.aoshuang.game.doom - JAGUAR:
public.aoshuang.game.jaguar - LYNX:
public.aoshuang.game.lynx - 7800:
public.aoshuang.game.7800 - 5200:
public.aoshuang.game.5200 - 2600:
public.aoshuang.game.2600 - Arcade:
public.aoshuang.game.arcade - DC:
public.aoshuang.game.dc - PS1:
public.aoshuang.game.ps1 - PM:
public.aoshuang.game.pm - VB:
public.aoshuang.game.vb - N64:
public.aoshuang.game.n64 - SS:
public.aoshuang.game.ss - MD:
public.aoshuang.game.md - MCD:
public.aoshuang.game.mcd - 32X:
public.aoshuang.game.32x - MS:
public.aoshuang.game.ms - GG:
public.aoshuang.game.gg - SG-1000:
public.aoshuang.game.sg1000 - MD:
public.aoshuang.game.md - PSP:
public.aoshuang.game.psp - 3DS:
public.aoshuang.game.3ds - NDS:
public.aoshuang.game.ds - GBA:
public.aoshuang.game.gba - GBC:
public.aoshuang.game.gbc - GB:
public.aoshuang.game.gb - NES:
public.aoshuang.game.nes - SNES:
public.aoshuang.game.snes
💡 Совет: чтобы скин работал и в Delta, и в Manic EMU, используйте идентификаторы DeltaSkin напрямую — система сама выполнит преобразование.
Кроме того, часть платформ может пользоваться совместимыми геймпадами, поэтому в Manic EMU некоторые скины платформ можно смешивать:
- GB GBC
- MD MCD 32X
- MS GG SG-1000
- NES FDS
- DOS DOOM
Уникальный идентификатор скина (identifier)
Заголовок раздела «Уникальный идентификатор скина (identifier)»Задайте скине глобально уникальный идентификатор! Дубликаты имён могут привести к сбою загрузки или проблемам с кэшем.
🎮 Анимация нажатий
Заголовок раздела «🎮 Анимация нажатий»Хотите живую отдачу кнопок? Два шага:
- Разделение слоёв: отделите фон кнопки от переднего плана (см. шаблон скина 3DS)
- Конфигурация JSON: добавьте поле
assetк кнопке вinfo.json
Пример: эффект нажатия для кнопки A
{ "asset": { "normal": "a_button.pdf" // Reserve for future state expansions }, "frame": { "height": 48, "width": 48, "x": 545, "y": 552 }, "inputs": ["a"]}🎚️ Анимированная кнопка-переключатель
Заголовок раздела «🎚️ Анимированная кнопка-переключатель»Включает переключение с сохранением состояния. Для наглядности смотрите стандартный скин Atari 2600.
Пример
{ "asset": { "normal": "fuction_button.pdf", "selected": "fuction_button.pdf" }, "frame": { "height": 40, "width": 20, "x": 30, "y": 569 }, "animation": { "type": "spring", "begin": { "height": 20, "width": 20, "x": 0, "y": 2 }, "end": { "height": 20, "width": 20, "x": 0, "y": 18 } }, "inputs": "menu", "selfRetracting": true}Добавлен новый объект animation (сейчас поддерживается только для Switch Button).
animation:
typeзадаёт тип кривой анимации. Сейчас поддерживается толькоspring.beginзадаёт кадр до начала анимации.endзадаёт кадр в конце анимации.
Примечание: координаты внутри begin и end относительны родительскому frame.
asset:
Помимо ресурса normal добавлен ресурс selected. Он позволяет показывать соответствующий ассет в состоянии selected (сейчас только для Switch Button).
inputs:
Содержимое такое же, как у других контролов, но сюда можно передать только строки. Это функция, привязанная к Switch Button. Это может быть обычная команда ввода — a, b, up, down… — или пользовательские функциональные кнопки из следующего раздела.
Примечание: некоторые пользовательские функциональные кнопки поддерживают привязку состояния. Например, если inputs задан как volume (управление звуком), система при каждой загрузке скина запросит состояние громкости и обновит привязанный Switch Button. Пример эффекта tvType — в стандартном скине Atari 2600.
Пользовательские функциональные кнопки с привязкой состояния:
reverseScreensvolumetoggleControllstoggleAnalogtvTypeleftDifficultyrightDifficulty
selfRetracting: Показывает, сбрасывается ли Switch Button сам. Смотрите кнопку сброса игры на Atari 2600: она отскакивает после нажатия и имитирует мгновенный переключатель.
⚙️ Пользовательские функциональные кнопки
Заголовок раздела «⚙️ Пользовательские функциональные кнопки»Manic EMU поддерживает множество быстрых действий (смотрите требования к версии):
Поддерживается в v1.2.3 и новее:
flex: открыть настройки раскладки скина
Добавлено в v1.2.4 и новее:
quickSave: быстрое ручное сохранениеquickLoad: быстрая ручная загрузкаfastForward: удерживайте для максимального ускоренияtoggleFastForward: нажмите, чтобы циклически менять скоростьreverseScreens: поменять основной и дополнительный экраныvolume: управление звукомsaveStates: открыть список состоянийcheatCodes: открыть список читовskins: открыть список скиновfilters: открыть список фильтровscreenshot: сделать скриншотhaptics: настроить вибрациюcontrollers: открыть список геймпадовorientation: изменить настройки поворотаfunctionLayout: открыть конфигурацию раскладкиrestart: сбросить игруresolution: задать разрешение игрыquit: выйти из игрыamiibo:загрузить Amiibo для 3DShomeMenu:вернуться в Home Menu 3DS
Добавлено в v1.4.2 и новее:
toggleControlls:скрыть/показать элементы управленияblowing:имитировать дуновение в микрофонpalette:палитра для GB GBC VB
Добавлено в v1.5.0 и новее:
swapDisk:сменить диск на следующий или перевернуть сторону для FDS
Добавлено в v1.5.5 и новее:
shake:имитация тряски
Добавлено в v1.6.0 и новее:
toggleAnalog:переключить режим устройства ввода — например, на PlayStation Controller или DualShock на PS1.
Добавлено в v1.7.0 и новее:
retroAchievements:открыть страницу RetroAchievements.
Новое в v1.7.1 и новее:
fastForward2x: удерживайте для ускорения 2×fastForward3x: удерживайте для ускорения 3×fastForward4x: удерживайте для ускорения 4×airPlayScaling: настроить масштаб игрового экрана во время AirPlayairPlayLayout: выбрать раскладку многоэкранных игр (например, NDS) во время AirPlay
Новое в v1.7.2 и новее:
gameplayManuals:открыть руководства по игре
Новое в v1.7.3 и новее:
triggerPro:переключить конфигурации TriggerPro
Новое в v1.8.3 и новее:
tvType: переключение цветного и чёрно-белого режимов для Atari 2600.leftDifficulty: левый переключатель сложности Atari 2600.rightDifficulty: правый переключатель сложности Atari 2600.
Новое в v1.9.0 и новее:
screenScaling:переключить режим растяжения экранаj2meSettings:открыть страницу настроек J2MEdosSettings:открыть страницу настроек ядра DOSinsertDisc:вставить диск
Новое в v2.0.0 и новее:
coreSettings:открыть настройки ядраrewind:удерживайте для перемотки назад
Пример: кнопка перезапуска
{ "asset": { "normal": "button.pdf" }, "frame": { ... }, "inputs": [ "restart" ]}⚠️ Критически важно Не назначайте одной кнопке несколько функций! Например:
// ❌ Dangerous Example!{ "inputs": [ "restart", "quit" ]}🎵 Звуковые эффекты
Заголовок раздела «🎵 Звуковые эффекты»Начиная с V1.9.0 Manic EMU поддерживает звуки кнопок скина. Конвертируйте аудио в формат CAF, переименуйте файл в sound.caf и положите его в корень скина перед упаковкой.
📦 Гайд по упаковке скина
Заголовок раздела «📦 Гайд по упаковке скина»Упакуйте скин в три шага:
- Положите все ассеты плоско (без родительских папок)
- Выделите все файлы и сожмите в незашифрованный ZIP
- Выберите расширение:
.manicskinили.deltaskin
Рекомендуем официальные шаблоны — так структура будет правильной.
🎨 Скачать официальные скины
Заголовок раздела «🎨 Скачать официальные скины»Начинайте проектировать свой уникальный скин прямо сейчас! 🎨