Перейти к содержимому

Гайд по созданию скинов

Добро пожаловать в гайд по созданию скинов Manic EMU! 🎮 Система скинов этого эмулятора построена на фреймворке DeltaSkin и полностью совместима с его базовым форматом. Если хотите сначала освоить основы DeltaSkin, рекомендуем официальный туториал. Если проектируете в Figma, загляните в наш RetroSkinner. Он помогает превратить макеты Figma сразу в файлы скинов.

Но у Manic EMU есть и свои фишки! ✨ Например анимация нажатий, свободное масштабирование, переворот экрана и другое. Разберём, как пользоваться этими эксклюзивными возможностями:


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

Задайте скине глобально уникальный идентификатор! Дубликаты имён могут привести к сбою загрузки или проблемам с кэшем.


Хотите живую отдачу кнопок? Два шага:

  1. Разделение слоёв: отделите фон кнопки от переднего плана (см. шаблон скина 3DS)
  2. Конфигурация 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.

Пользовательские функциональные кнопки с привязкой состояния:

  • reverseScreens
  • volume
  • toggleControlls
  • toggleAnalog
  • tvType
  • leftDifficulty
  • rightDifficulty

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 для 3DS
  • homeMenu:вернуться в 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: настроить масштаб игрового экрана во время AirPlay
  • airPlayLayout: выбрать раскладку многоэкранных игр (например, 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:открыть страницу настроек J2ME
  • dosSettings:открыть страницу настроек ядра DOS
  • insertDisc:вставить диск

Новое в 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 и положите его в корень скина перед упаковкой.


Упакуйте скин в три шага:

  1. Положите все ассеты плоско (без родительских папок)
  2. Выделите все файлы и сожмите в незашифрованный ZIP
  3. Выберите расширение: .manicskin или .deltaskin

Рекомендуем официальные шаблоны — так структура будет правильной.



Начинайте проектировать свой уникальный скин прямо сейчас! 🎨