스킨 직접 만들기 가이드
Manic EMU 스킨 제작 가이드에 오신 것을 환영합니다! 🎮 이 에뮬레이터의 스킨 시스템은 DeltaSkin 프레임워크 위에 있어 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 Skin Template 참고)
- 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은 시작 전 프레임입니다.end는 끝난 뒤 프레임입니다.
참고: begin과 end의 좌표는 부모 frame 기준입니다.
asset:
normal 외에 selected가 추가되었습니다. selected 상태일 때 해당 리소스를 보여 줍니다(현재 Switch Button만 지원).
inputs:
다른 컨트롤과 내용은 같지만, 여기에는 문자열만 넣을 수 있습니다. Switch Button에 묶인 기능으로 보면 됩니다. a, b, up, down 같은 표준 입력일 수도 있고, 다음 절의 Custom Function Buttons일 수도 있습니다.
참고: 일부 커스텀 기능 버튼은 상태 바인딩을 지원합니다. 예를 들어 inputs가 volume(음소거)이면, 스킨을 불러올 때마다 볼륨 상태를 읽어 묶인 Switch Button을 맞춥니다. 기본 Atari 2600 스킨의 tvType을 보세요.
상태 바인딩을 지원하는 Custom Function Buttons:
reverseScreensvolumetoggleControllstoggleAnalogtvTypeleftDifficultyrightDifficulty
selfRetracting: Switch Button이 자동으로 돌아가는지입니다. Atari 2600의 게임 리셋처럼, 누르면 튕겨 나와 순간 스위치를 흉내 냅니다.
⚙️ Custom Function Buttons
섹션 제목: “⚙️ Custom Function Buttons”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:마이크에 부는 동작 시뮬레이션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: AirPlay 중 다중 화면(NDS 등) 배치
v1.7.2 이상 추가:
gameplayManuals:Gameplay Manuals 열기
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로 이름을 바꿔 스킨 루트에 넣고, 함께 패키징하세요.
📦 스킨 패키징
섹션 제목: “📦 스킨 패키징”세 단계입니다:
- 모든 에셋을 한 층에 둡니다(상위 폴더 없음)
- 파일을 모두 골라 암호화하지 않은 ZIP으로 압축합니다
- 확장자를 고릅니다:
.manicskin또는.deltaskin
공식 템플릿을 쓰면 구조를 맞추기 쉽습니다.
🎨 공식 스킨 받기
섹션 제목: “🎨 공식 스킨 받기”지금 나만의 스킨을 그려 보세요. 🎨