# Kartu karakter: Status: TEMPLATE — isi semua placeholder. Salin ke assets//character.md. Acuan bersama berada di guide/gameplay-standard.md dan guide/character-workflow.md; angka koreksi ARCO tidak otomatis berlaku untuk karakter ini. ## Identitas terkunci | Field | Isi | | --- | --- | | ID folder / nama tampilan | / | | Kelas | Mecha / Demi-Human / kelas lain yang diminta | | Ciri anatomi dan siluet | | | Palet dan outline | | | Tangan/sisi aksesori | | | Base terpilih | base/base-selected.png | | Base job ID / model | / gpt_image_2_5, sunburst, high, 2k | | Referensi gaya | | | Pembeda dari roster | | | Ciri roster yang dilarang di prompt | | | Persetujuan / tanggal | | | Facing / chroma | RIGHT / | | Prompt dan provenance | generation-log.json / selected-sources.json | ## Format sprite - Request: request.json, disalin dari guide/templates/sprite-request.json. - Baseline 14 state / 50 frame: idle, walk, run, crouch, attack1–3, skill1, skill2, ultimate, hurt, down masing-masing 4; jump dan doublejump masing-masing 1. - Cell awal 320×288, safe margin (10,8), anchor (160,280). Catat bila cell perlu lebih besar. - Tinggi badan idle target sekitar 180 px. Ukur anatomi, bukan memaksa ujung telinga/tanduk/senjata masuk target tinggi dengan mengecilkan tubuh. - Strip 4 pose: 21:9, guide 4 slot; pose tunggal: 1:1. - Semua state memakai base baru yang sama sebagai identitas. Efek, bayangan, teks, dan debris terpisah dari sprite. ## Ukuran yang harus diisi dari hasil ukur | Ukuran / file | Hasil | | --- | --- | | Tinggi idle final / range frame | | | Kepala / leher→sabuk / sabuk→kaki | | | Aksesori yang dikecualikan dari ukuran anatomi | | | Calibration target / pitch | | | Rel per state/pose | | | Integer curation shifts | | | Pivot jump / tuck | | | Walk / run stride | | | Hit range / titik efek | | | Atlas checksum | | ## Kemampuan dan aset pendukung | Slot | Nama / mekanik | Damage / cooldown awal | Gerak dilepas kapan? | Aset dan titik efek | | --- | --- | --- | --- | --- | | Space | <3 gesture combo> | 6 / 8 / 12 | | | | I | | 16 / 3 s | | | | O | | 24 / 6 s | | | | P | | | | | Angka tersebut adalah titik awal perbandingan, bukan izin menggandakan damage karena mengganti jumlah VFX. Untuk kemampuan baru, catat jumlah sumber damage dan validasi totalnya. - Portrait khusus: , hasil generasi baru; bukan crop atlas. - Kontrak avatar: close-up kepala80–90%, export384×384, kanonis menghadapKANAN; `portrait-image` + `data-portrait-side=player/enemy` menentukan flip UI. Semua bentuk transformasi mengikuti aturan yang sama. - Cut-in khusus: , gambar tanpa teks; judul/UI ditambahkan terpisah. - Ikon setiap slot: . - Prop/summon: , dimensi final, pivot/muzzle terukur. - Voice ultimate bila diminta: . Catat hasil audisi dan integrasi mute/volume/pause/reset; jangan menganggap kandidat sudah dipasang. - Announcer sistem wajib Grady sesuai voice lock: generate `!` dan ` wins!` terpisah, daftarkan file/durasi/trigger dan tes. Voice ultimate tidak menggantikan announcer. - Sifat kelas yang unik: . ## Checklist selesai - [ ] Base terkunci; original setiap versi dan log lengkap disimpan. - [ ] Base jelas berbeda dari roster lama; bukan recolor atau karakter lama ditambah ciri ras. - [ ] Jumlah pose, facing, celah, anggota tubuh, dan konsistensi aksesori diperiksa. - [ ] Skala kepala **dan badan/recovery** dibandingkan dengan idle; invalid match ditandai. - [ ] Normalisasi satu kali dari original; curation hanya integer translation. - [ ] Canonical extraction/compose berhasil; tidak ada per-frame fit paksa. - [ ] Atlas final tanpa frame kosong, tepi terpotong, atau chroma terlihat. - [ ] Jump atletis dan tuck dapat dibedakan; putaran tidak mengganti ukuran tubuh. - [ ] Efek keluar dari alat/telapak/muzzle yang benar setelah normalisasi. - [ ] File atlas, manifest, wrapper JS, dan metrics sinkron. - [ ] Tes kontrol, hit, cooldown/recharge, HP berlapis, cast release, pause/reset dijalankan. - [ ] Browser dilihat pada keyframe penting; loop yang belum ditonton tidak diklaim mulus. - [ ] Path loader diperbarui secara sengaja; karakter/aset lama tidak tertimpa. - [ ] qa-notes.md memisahkan hasil angka, pengamatan render, dan batas yang belum diverifikasi.