ข้ามไปยังเนื้อหา

คู่มือทำสกินเอง

ยินดีต้อนรับสู่คู่มือสร้างสกินของ Manic EMU! 🎮 ระบบสกินของเอมูเลเตอร์นี้สร้างบนเฟรมเวิร์ก DeltaSkin จึงเข้ากันได้เต็มที่กับรูปแบบพื้นฐานของ 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 เพิ่มมา (ขณะนี้รองรับเฉพาะปุ่มสวิตช์) animation:

  • type กำหนดประเภทเส้นโค้งแอนิเมชัน ขณะนี้รองรับเฉพาะ spring
  • begin กำหนดเฟรมก่อนแอนิเมชันเริ่ม
  • end กำหนดเฟรมเมื่อแอนิเมชันจบ

หมายเหตุ: พิกัดใน begin และ end สัมพันธ์กับ frame แม่

asset: นอกจากแอสเซ็ต normal แล้วยังมีแอสเซ็ต selected ทำให้คอนโทรลแสดงทรัพยากรที่ตรงเมื่ออยู่ในสถานะ selected (ขณะนี้รองรับเฉพาะปุ่มสวิตช์)

inputs: เนื้อหาสอดคล้องกับคอนโทรลอื่น แต่ที่นี่ส่งได้เฉพาะสตริง เข้าใจได้ว่าเป็นฟังก์ชันที่ผูกกับปุ่มสวิตช์ อาจเป็นคำสั่งอินพุตมาตรฐาน เช่น a, b, up, down… หรือเป็น ปุ่มฟังก์ชันกำหนดเอง ที่แนะนำในส่วนถัดไป

หมายเหตุ: ปุ่มฟังก์ชันกำหนดเองบางตัวรองรับการผูกสถานะ เช่น ถ้า inputs ตั้งเป็น volume (ควบคุมปิดเสียง) ระบบจะสอบสถานะเสียงทุกครั้งที่โหลดสกิน แล้วอัปเดตปุ่มสวิตช์ที่ผูกให้ตรงสถานะ ดูเอฟเฟกต์ tvType ในสกิน Atari 2600 เริ่มต้นเป็นตัวอย่าง

ปุ่มฟังก์ชันกำหนดเองที่รองรับการผูกสถานะ ได้แก่:

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

selfRetracting: ระบุว่าปุ่มสวิตช์จะรีเซ็ตอัตโนมัติหรือไม่ ดูปุ่มรีเซ็ตเกมบน 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:โหลด Amiibos สำหรับ 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

แนะนำให้ใช้เทมเพลตทางการของเราเพื่อให้โครงสร้างถูกต้อง



เริ่มออกแบบสกินที่เป็นเอกลักษณ์ของคุณได้เลย! 🎨