跳到內容

自製皮膚指南

歡迎來到 Manic EMU 皮膚製作指南!🎮 這款模擬器的皮膚系統建立在 DeltaSkin 框架上,因此與 DeltaSkin 的基礎格式完全相容。若想先了解 DeltaSkin 基礎,建議先看官方教學。若你用 Figma 設計,可以試試我們的 RetroSkinner,能把 Figma 設計直接轉成皮膚檔。

不過 Manic EMU 還有更酷的功能!✨ 例如按壓動畫自由縮放畫面翻轉等。下面說明這些專屬功能怎麼用:


遊戲類型識別碼(gameTypeIdentifier

Section titled “遊戲類型識別碼(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

請為皮膚指定全域唯一的識別碼!名稱重複可能導致載入失敗或快取異常。


想要動態按鍵回饋?只要兩步:

  1. 圖層分離:把按鍵背景與前景拆開(見 3DS Skin Template
  2. JSON 設定:在 info.json 的按鍵加上 asset 欄位

範例:為 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 定義動畫開始前的 frame。
  • end 定義動畫結束時的 frame。

注意: beginend 內的座標是相對於其父層 frame

asset: 除了 normal 資源,還新增了 selected 資源。可讓控制項在 selected 狀態顯示對應素材(目前僅支援 Switch Button)。

inputs: 內容與其他控制項一致,但此處只能傳字串。可理解為 Switch Button 綁定的功能。可以是一般操作指令,例如 abupdown…,也可以是下一節介紹的 自訂功能按鈕

注意: 部分自訂功能按鈕支援狀態綁定。例如把 inputs 設為 volume(靜音控制),每次載入皮膚時系統會查詢音量狀態,並把綁定的 Switch Button 更新到對應狀態。可參考預設 Atari 2600 皮膚中的 tvType 效果。

支援狀態綁定的自訂功能按鈕包括:

  • 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:為 3DS 載入 Amiibos
  • homeMenu:回到 3DS 的 Home Menu

v1.4.2 及以上新增:

  • toggleControlls:隱藏/顯示控制項
  • blowing:模擬對麥克風吹氣
  • palette:GB GBC VB 的色盤

v1.5.0 及以上新增:

  • swapDisk:換到下一片光碟,或為 FDS 翻面

v1.5.5 及以上新增:

  • shake:搖晃模擬

v1.6.0 及以上新增:

  • toggleAnalog:切換輸入裝置模式,例如在 PS1 上改成 PlayStation Controller 或 DualShock。

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

建議使用官方範本,確保結構正確。



現在就開始設計你的專屬皮膚吧!🎨