Skip to content

แอนิเมชัน & ตัวนำเข้ารูป (Asset Importer)

ฟีเจอร์พรีเมียม

ทุกอย่างในหน้านี้ — คำสั่ง /gacha import, element ชนิด animation และ open-animation แบบ GLYPH — มีเฉพาะใน Premium เท่านั้น. เวอร์ชันฟรีเล่นได้แค่ open-animation แบบโมเดล 3D (BetterModel / ModelEngine).

เล่น แอนิเมชันแบบ GIF ที่ไหนก็ได้ในเมนู — ไอคอนหมุน, ปุ่มเรืองแสง, หรือฉาก "เปิดตู้" แทนโมเดล 3D — และเอารูปขึ้นเซิร์ฟเวอร์ได้ โดยไม่ต้องแตะ FTP เลย. ฟีเจอร์นี้มี 2 ส่วนที่ทำงานคู่กัน:

  • Asset Importer — ดึงรูป PNG หรือ GIF เข้าแพ็กในเกมด้วยคำสั่งเดียว. GIF จะถูกตัดเป็นเฟรมอัตโนมัติ.
  • Glyph Animation — element ในเมนูที่วนเฟรมเหล่านั้นทุกไม่กี่ tick. เรนเดอร์แยกต่อผู้เล่น, เล่นครั้งเดียวได้, และใช้ได้กับ ทุก provider รวมถึงโหมด vanilla.

รวมกันแล้วได้ตามสัญญา: สร้างแอนิเมชันครบจบในเกม ไม่ต้องแก้ไฟล์.

ทำไมใช้เฟรม glyph แทนโมเดล 3D?

ไม่ต้องมี ModelEngine, ไม่ต้อง BetterModel, ไม่ต้อง Java 25. มันคือการเรนเดอร์ฟอนต์ล้วน ๆ จึงทนต่อการอัปเวอร์ชัน และทุกเซิร์ฟใช้ได้. การสลับเฟรม = แพ็กเก็ตข้อความเล็ก ๆ 1 อัน และเมนูเห็นแค่เจ้าของ จึงเบามาก.


1. นำเข้ารูปหรือ GIF

/gacha import <url> [name]
  • url — ลิงก์ตรงไปยังไฟล์ PNG หรือ GIF (สูงสุด 2 MB).
  • name — id ที่จะบันทึก (a-z, 0-9, _). ไม่ใส่ก็ได้ (จะดึงจาก URL ให้).

ปลั๊กอินจะดาวน์โหลดนอกเธรดหลัก, ตรวจว่าเป็น PNG/GIF จริง, แล้วเขียนลง provider ที่คุณใช้อยู่ (ItemsAdder / Nexo / Oraxen / vanilla) พร้อมสั่ง rebuild แพ็กให้อัตโนมัติ.

  • PNG → รูปเดียวชื่อ name.
  • GIF → เฟรม name_0, name_1, name_2, … (สูงสุด 64) เพื่อให้แอนิเมชันเก็บอัตโนมัติตาม prefix ได้.

รูปที่นำเข้าจะโผล่ใน Library ของ Layout ทันที (แท็บ Custom + All Images).

เซิร์ฟไม่มีอินเทอร์เน็ตขาออก?

วางไฟล์ไว้ที่ plugins/CradGacha/import/ แล้วรัน:

/gacha import file <filename> [name]

หลังนำเข้า ให้ เข้าเกมใหม่ (rejoin) หรือรอแพ็กส่งใหม่ เพื่อให้ไคลเอนต์โหลดรูปใหม่.


2. สร้างแอนิเมชันใน /gacha layout

  1. รัน /gacha layout แล้วเปิด Library (ปุ่ม Library บนแถบเครื่องมือ).
  2. คลิก [ 🎬 Animation ] เพื่อเข้าโหมดเลือกเฟรม.
  3. คลิกรูปทีละอันตามลำดับที่ต้องการให้เล่น. ส่วนหัวจะบอกจำนวนเฟรมและ id ล่าสุดที่เพิ่ง เพิ่ม. [ ⤺ Undo ] เอาเฟรมสุดท้ายออก.
  4. ตั้งความเร็วด้วย [ ⏱ Nt ] (จำนวน tick ต่อเฟรม) และการเล่นด้วย [ ⟳ mode ]:
    • loop — เล่นวนไม่รู้จบ.
    • once — เล่นจบรอบเดียวแล้วหยุด.
    • hold — เล่นรอบเดียวแล้วค้างที่เฟรมสุดท้าย.
  5. คลิก [ ✔ Create ]. แอนิเมชันจะติดเคอร์เซอร์ — คลิกเพื่อวาง, ปรับขนาดด้วยแถบเครื่องมือของ element, แล้ว Save.

ระบบจะเขียน element ชนิด animation ลง theme ให้. อัตราเฟรมจำกัดที่ 20/วินาที (interval 2 ≈ 10 fps ให้ความรู้สึกเหมือน GIF ทั่วไป).

สิ่งที่ถูกเขียนลง theme.yml

yaml
elements:
  my_spin:
    type: animation
    frames: [ spin_0, spin_1, spin_2, spin_3 ]
    interval-ticks: 2        # ticks ต่อเฟรม (2 = 10 fps)
    mode: loop               # loop | once | hold
    scale: 0.4
    x: 0.0
    y: 0.5

หรือชี้ไปที่ชุดเฟรมแบบมีเลขต่อท้ายโดยไม่ต้องพิมพ์ทุกเฟรม:

yaml
    frames-prefix: spin_     # เก็บ spin_0..spin_(N-1) อัตโนมัติ
    frame-count: 8
    frame-start: 0           # ไม่ใส่ก็ได้ (ค่าเริ่ม 0)

3. GIF แทนโมเดล 3D ตอนเปิดตู้

เฟรมชุดเดียวกันเล่นเป็น แอนิเมชันเปิดตู้ ได้ — ฉากที่โชว์บนเวทีก่อนการ์ดจะปรากฏ — เซิร์ฟที่ไม่มี ModelEngine ก็ได้จังหวะ "เครื่องกำลังเปิด" เหมือนกัน.

ใน config.yml:

yaml
model:
  enabled: true
  provider: GLYPH            # แอนิเมชันเฟรมฟอนต์ — ไม่ต้องมีปลั๊กอินโมเดล
  glyph:
    scale: 2.5               # ขนาดบนจอ
    interval-ticks: 2        # 2 = 10 fps
    mode: hold               # ค้างเฟรมสุดท้ายจนการ์ดโผล่ | loop | once
    frames: [ open_0, open_1, open_2, open_3 ]
    frames-by-rarity:        # ไม่ใส่ก็ได้: ชุดเฟรมต่างกันตามความหายากสูงสุดที่สุ่มได้
      LEGENDARY: [ leg_0, leg_1, leg_2, leg_3 ]
  duration-ticks: 40         # เล่นนานแค่ไหนก่อนการ์ดจะปรากฏ

นำเข้า GIF เปิดตู้ก่อน (/gacha import <url> open) จะได้ open_0..open_N แล้วค่อยเอามาใส่ตรงนี้.


เคล็ดลับ & ข้อจำกัด

  • จำนวนเฟรม จำกัดที่ 64 และขนาดไฟล์ 2 MB — ทำ GIF ให้สั้นและเล็ก.
  • ทุกเฟรมใช้ขนาดเดียวกัน (ยึดตามเฟรมแรก) เพื่อให้เรียงตรงกัน. export GIF ที่ขนาดที่จะเรนเดอร์จริง.
  • โหมด vanilla เก็บ glyph ที่นำเข้าไว้ใน plugins/CradGacha/imported-glyphs.yml และต่อเข้ากับแพ็กที่ โฮสต์เอง; การ re-zip + ส่งใหม่ทำอัตโนมัติตอนนำเข้า.
  • ถ้าเฟรมขึ้นเป็น กล่อง แปลว่าไคลเอนต์ยังไม่โหลดแพ็ก — เข้าเกมใหม่ หรือรัน /gacha doctor เพื่อเช็กสถานะแพ็ก.

ดูเพิ่ม