自制皮肤指南

欢迎来到Manic EMU皮肤制作指南!🎮 本模拟器的皮肤系统基于DeltaSkin框架,因此基础格式与DeltaSkin完全兼容。如果你想先学习DeltaSkin的基础知识,推荐访问官方教程哦~

不过,Manic EMU还提供了更多炫酷功能!✨ 比如按压动效自由缩放屏幕翻转等。下面将为你逐一揭秘这些特色功能的使用方法:


📁 info.json配置详解

游戏类型标识符(gameTypeIdentifier)

Manic EMU使用独立的游戏类型标识符:

  • 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
  • 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
  • FDS: public.aoshuang.game.fds
  • SNES: public.aoshuang.game.snes

💡 小贴士:若希望皮肤同时兼容Delta和Manic EMU,可直接使用DeltaSkin的标识符,系统会自动转换兼容。
另外由于有部分平台可以使用兼容的控制器,所以在Manic EMU中部分平台皮肤也可以进行兼容混合使用:

  • GB GBC
  • MD MCD 32X
  • MS GG SG-1000
  • NES FDS

皮肤唯一标识(identifier)

请为你的皮肤设置全局唯一的标识符!如果与其他皮肤重名,可能会导致加载失败或缓存异常哦~


🎮 按压动效实现

想让按钮按下时有酷炫反馈?只需两步:

  1. 图层分离:将按钮背景与前景图层分开(参考3DS皮肤模板
  2. JSON配置:在info.json中为按钮添加asset字段

示例:为A键添加按压效果

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"asset": {
"normal": "a_button.pdf"
// 预留其他状态 将来会进行扩充
},
"frame": {
"height": 48,
"width": 48,
"x": 545,
"y": 552
},
"inputs": ["a"]
}

🎚️ 带动画的开关实现(Switch Button)

可以实现开关的功能,而且还可以实现状态记忆,效果实现可以参看雅达利2600的默认皮肤

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
"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 动画开始前的frame
  • end 动画结束时的frame

注意 beginend的坐标都是以其父frame作为基准

asset:
除了normal的资源外,还新增了selected的资源,可以让控件处于selected状态时展示对应的资源(目前仅支持Switch Button)

inputs:
内容与其他控件的一致,只不过这里只能传入字符串,可以理解为Switch Button绑定的功能,可以是一般的操作指令输入,如a,b,up,down… 也可以是下一节中介绍的 自定义功能按键

注意部分自定义按键支持状态绑定,如将inputs设置为volume静音控制,则每次展示皮肤的时候系统会查询volume的状态,并且将绑定的Switch Button更新到对应的状态,可以参看雅达利2600默认皮肤中的tvType效果

支持状态绑定的自定义功能按键有:

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

selfRetracting:
表示该Switch Button是否会自动复位,可以参看雅达利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:3DS游戏加载Amiibo
  • homeMenu:3DS游戏回到Home Menu

v1.4.2及以上版本新增:

  • toggleControlls:隐藏/显示按钮
  • blowing:模拟对mic吹气
  • palette:调色板

v1.5.0及以上版本新增:

  • swapDisk:切换光盘或者FDS的软盘翻面

v1.5.5及以上版本新增:

  • shake:模拟摇晃设备

v1.6.0及以上版本新增:

  • toggleAnalog:切换输入模式,如PS1切换PlayStation Controller或DualShock

v1.7.0及以上版本新增:

  • retroAchievements:打开复古成就页面

v1.7.1及以上版本新增:

  • fastForward2x:长按以2x倍速快进
  • fastForward3x:长按以3x倍速快进
  • fastForward4x:长按以4x倍速快进
  • airPlayScaling:设置AirPlay时游戏画面的缩放模式
  • airPlayLayout:设置多屏游戏(如NDS)AirPlay时游戏画面的布局样式

v1.7.2及以上版本新增:

  • gameplayManuals:打开游戏手册

v1.7.3及以上版本新增:

  • triggerPro:切换triggerPro配置

v1.8.3及以上版本新增:

  • tvType:雅达利2600的彩色和黑白模式的切换
  • leftDifficulty:雅达利2600左边难度选择
  • rightDifficulty:雅达利2600右边难度选择

示例:添加重启游戏按钮

1
2
3
4
5
{
"asset": { "normal": "button.pdf" },
"frame": { ... },
"inputs": [ "restart" ]
}

⚠️ 重要提醒
请避免为单个按钮分配多个功能!例如下方配置可能会导致意外行为:

1
2
3
4
// ❌ 危险示范!
{
"inputs": [ "restart", "quit" ]
}

📦 皮肤打包指南

只需三步完成打包:

  1. 将所有资源文件平铺存放(不要使用文件夹进行包裹)
  2. 选中所有文件压缩为非加密ZIP文件
  3. 选择你喜欢的后缀:.manicskin.deltaskin 均可

推荐参考我们的官方模板,确保层级结构正确~


🎨 官方皮肤下载


现在就开始设计你的专属皮肤吧!🎨