1Định hướng mỹ thuật
1.1 Bối cảnh & cảm xúc
Dev chốt hướng "đi xuống dưới (dungeon)" + "phong cách pixel … Tools/pixelfx". Deepstair là hầm ngục tối đi xuống theo cầu thang xoắn; mọi ánh sáng đến từ lửa, phép và đèn hồn trên nền tối (hub §1 suy luận → nay xác nhận). Ba cảm xúc theo độ sâu: S01–S03 tò mò, ấm lửa đuốc → S04–S07 ngột ngạt, kỳ dị → S08–S10 lạnh, trống rỗng, ánh vàng cuối cùng của Tâm Bình Minh.
| Nguyên tắc | Cụ thể |
|---|---|
| Ánh sáng kể chuyện | Nền tối scene-sky; vũng sáng dưới mỗi nguồn sáng; "càng sâu càng tối": hệ số ánh môi trường S01 1.00 → S10 0.55 (bảng §2) |
| Thứ bậc độ sáng (P5) | Nền L* ≤ 25 · sàn 15–30 · địch 30–75 · anh hùng 35–85 + mép sáng trên-trái · VFX/chữ chiến đấu tới 100. Anh hùng luôn là mảng tương phản cao nhất của nhân vật |
| Màu = thông tin | Màu bão hòa chỉ cho: chữ ký anh hùng, độ hiếm, nguyên tố, báo hiệu, ánh nhấn Địa Tầng. Địch không dùng ramp chính của anh hùng (INV-04) |
| Pixel thật | Một cỡ pixel, viền ink 1 px, ramp 4 tông hue-shift từ PAL, không AA/blur/gradient, dither Bayer chỉ cho mờ dần (hub §1) |
| Đọc ở thumbnail | Silhouette anh hùng nhận ra ở 128 px; làn chiến đấu sạch, chi tiết đặt ngoài làn (polish §8) |
| Cấm | Phong cách cartoon bóng của template BF (hub §10), sprite template UITemplate/AtlasSource/Lana Studio/Layer Lab làm tham chiếu, VFX particle mượt Hyper Casual FX, font PatchPixel |
1.2 Nguồn ảnh (thang image-generation)
| Bậc | Nguồn | Dùng cho Deepstair |
|---|---|---|
| 0 | Tái dụng | kit UI pixel, sheet pixelfx catalog (recolor bằng palette), sprite đã render (chân dung, icon Hồi Âm) |
| 1 | Code: pixelfx + Pillow | 100% nhân vật/địch/Boss/VFX (02), tile, dither nền, khung, pictogram, chữ chiến đấu, số |
| 2 | agy (.claude/scripts/agy-image.py, prompt từ art-style.py build) |
đạo cụ môi trường, vista xa, icon Hồi Âm chung/Di Vật/tiền tệ (master), minh họa Chiếu Nghỉ, key art store |
| 3 | bf-img (trả phí) |
chỉ khi owner cho phép từng đợt (D8); luồng tự động ghi need bf-img: <asset> |
Mọi ảnh AI: brief chỉ nội dung → py .claude/scripts/art-style.py build --type <icon|background|promo|ui-art|enemy|character> --brief-file … → snap lưới native_px → contact sheet art-style.py contact → subagent art-style-reviewer = pass → log Design/ArtPrompts/<Feature>/. Tối đa 3 lần/asset/bậc.
2Bảng màu theo Địa Tầng
| Id | Địa Tầng | Nền (PAL) | Sàn/tường (PAL) | Ánh nhấn (PAL) | Nguồn sáng | Ánh môi trường × | Sương | Giọng nhạc | Đạo cụ chính |
|---|---|---|---|---|---|---|---|---|---|
| S01 | Hầm Rượu Đổ Nát | night | wood + earth | fire | đuốc fire/torch, nến |
1.0 | #221d33 | D thứ | thùng rượu vỡ, kệ gỗ, xích treo |
| S02 | Hầm Mộ | night | stone + bone | holy | nến fire/candle, đèn lồng sọ |
0.95 | #1c1c24 | E Phrygian | hốc sọ, quan tài đá, mạng nhện |
| S03 | Hang Nấm Phát Quang | night | earth + leaf | cyber | nấm phát sáng, weather/fireflies |
0.9 | #08303a | F# Dorian | nấm khổng lồ, rễ, bào tử bay |
| S04 | Sảnh Ngập | night | stone + water | ice | water/drip, ánh nước phản chiếu |
0.85 | #0e2e5a | G thứ | cột đổ, vũng nước, thác nhỏ |
| S05 | Lò Rèn Hỏa Ngục | ember | metal + lava | fire | lò fire/brazier, dòng dung nham |
0.85 | #3d1012 | A Phrygian | đe, xích cẩu, khuôn đúc |
| S06 | Mạch Pha Lê | night | stone + arcane | neon | tinh thể ice/ice-crystal recolor |
0.8 | #2b1252 | B Lydian | cụm pha lê, khoáng mạch |
| S07 | Thánh Đường Xương | shadow | bone + blood | holy | kính màu, weather/god-rays |
0.75 | #3a0a14 | C# thứ hòa âm | trụ xương, ghế cầu nguyện, đàn ống |
| S08 | Vực Băng | night | ice + stone | water | băng phát quang, weather/snow |
0.7 | #162c5c | D# thứ | nhũ băng, xác đông, cầu băng |
| S09 | Mê Cung Bóng | shadow | night + shadow | arcane | đốm hồn critters/wisp, cổng tím |
0.6 | #0f0a18 | Locrian | tường ảo, gương vỡ, tay bóng |
| S10 | Tâm Rỗng | night | shadow + gold | gold | ánh Tâm Bình Minh (lõi vàng) | 0.55 | #0c0a18 | D thứ → D trưởng (kết) | cầu thang gãy, xích vàng, ngai rỗng |
- Mỗi Địa Tầng = 3 ramp
PAL(nền, sàn/tường, ánh nhấn) + token hubscene-*/floor*làm bậc tối nhất. Không tạo ramp song song (hub §2). - Ánh môi trường ×: nhân vào màu lớp nền (
BG_Far,BG_Mid,Room) qua vertex color theo bậc 1/16 (không nhân lên nhân vật/VFX) → càng sâu nền càng tối, nhân vật vẫn rõ. - Sương (hex) = màu dither phủ
BG_Far25% và vignette tiền cảnh. - Cổng Địa Tầng (đi xuống B10→B11…): 1 s dither chuyển ramp +
trans_stratum+stg_stratum_gate. - Ánh nhấn Địa Tầng dùng cho 1–2 nguồn sáng/phòng, mắt địch, chữ tên Địa Tầng ở HUD.
3Nhân vật
| Id | Mã | Anh hùng | Vũ khí (pixelfx) | Cell idle | Canvas đòn tối đa | Màu chữ ký | Ramp vật liệu | Hình dáng 1× | Phụ kiện costume |
|---|---|---|---|---|---|---|---|---|---|
| H01 | KAI | Kaito | katana + saya (mới) | 48×56 | 112×72 | #c8283c | da: PAL.dust sáng · tóc dài: PAL.stone sáng (bạc) · áo bó, quần, găng hở ngón, ủng: PAL.night · áo choàng dài rách, khăn cổ, vạt hông, dây quấn tay/chân: PAL.blood · giáp vai gai, giáp tay, gối, mũi ủng: PAL.metal tối · thắt lưng: PAL.wood + khóa PAL.metal · lưỡi katana cong: PAL.stone tối + ánh PAL.blood · chuôi quấn PAL.blood · tsuba PAL.metal | Mảnh, tóc bạc dài ngang vai bay ngược, giáp vai gai lớn một bên, áo choàng đỏ thẫm dài rách vạt bay sau lưng, khăn đỏ quấn cổ, katana lưỡi cong đỏ-đen thủ thấp một tay | tóc bạc dài · áo choàng rách 12 px (2 khung trễ) · khăn cổ · giáp vai gai |
| H02 | ALD | Aldric | sword + kiteshield (mới) | 48×56 | 96×64 | #f0c050 | giáp tấm: PAL.metal + viền PAL.gold · tabard, áo choàng dài, khăn cổ: PAL.electric tối (lam đậm) · găng, lớp lót giáp: PAL.night · khiên diều: mặt PAL.metal, vành PAL.gold, lõi PAL.electric tối, huy hiệu mặt trời PAL.holy · ngọc ngực & chuôi kiếm: PAL.electric · da: PAL.dust sáng · tóc vàng: PAL.gold · VFX: PAL.holy | Vai rộng giáp tấm bạc viền vàng, tóc vàng hất ngược (không mũ trụ), khiên diều cao quá nửa thân che nửa trái thân, kiếm thẳng lưỡi rãnh lam cầm thấp, áo choàng lam dài bay sau lưng | tóc vàng ngắn · khiên diều 14×22 · giáp vai · khăn cổ · áo choàng lam 8 px |
| H03 | VEX | Vex | dagger ×2 (có sẵn, lưỡi dài + dây cáp) | 48×56 | 80×64 | #3ad0b0 | da: PAL.dust sáng · tóc đuôi ngựa cao: PAL.gold + dây buộc PAL.electric tối · khăn cổ, thân áo, quần đùi, tất cao: PAL.electric tối (lam) · ngực áo: PAL.bone sáng (trắng) · giáp vai nhỏ: PAL.metal + viền PAL.gold · găng hở ngón, giáp tay, thắt lưng, ủng cao: PAL.wood (da thuộc) + viền PAL.gold · hộp máy hai bên hông + dây cáp: PAL.metal + đèn PAL.electric · dao lưỡi dài: PAL.metal + hộ thủ PAL.electric · VFX chữ ký: PAL.arcane (dư ảnh, khói chớp) + lõi vệt chém #3ad0b0 | Nhỏ, gọn, khom thấp như lò xo nén; tóc vàng buộc đuôi ngựa cao bung sau gáy, khăn cổ lam, hai dao lưỡi dài nối dây cáp chĩa xuống hai bên, hộp máy cơ khí hai bên hông | đuôi ngựa cao 8 px (2 khung trễ) · khăn cổ · hộp máy hông + dây cáp |
| H04 | BRN | Brann | greatsword (có sẵn, ramp riêng) | 56×64 | 128×80 | #e0702a | da: PAL.dust sáng · tóc vàng tro vuốt ngược: PAL.bone · áo khoác dài quý tộc: PAL.metal sáng (trắng) · lót áo, cổ đứng, gilê: PAL.electric tối (lam) · viền áo, khuy, nẹp giáp: PAL.gold · giáp vai, giáp tay, ống chân: PAL.metal · áo trong, quần, găng, ủng: PAL.night · thắt lưng: PAL.wood · lưỡi: PAL.metal + rãnh PAL.night + vệt nung PAL.ember · chắn tay: PAL.metal + ngọc PAL.electric · VFX: PAL.ember/PAL.lava | Vai rộng giáp vai bạc, tóc vàng tro vuốt ngược, áo khoác dài trắng cổ đứng lót lam vạt bay sau lưng, đại kiếm lưỡi thẳng bản rộng chúc mũi xuống trước | tóc vuốt ngược · vạt áo khoác dài · giáp vai bạc · scale 1.08 |
| H05 | LYR | Lyra | spear lưỡi kích đỏ (có sẵn + biến thể) | 48×64 | 144×88 | #58b8f0 | da: PAL.smoke sáng (tím xám hắc tiên) + vân PAL.neon tối trên ngực · tóc trắng: PAL.stone sáng · mắt: PAL.blood sáng · giáp gai (vai, tay, gối, ủng): PAL.night + cạnh PAL.metal + khe PAL.blood · áo hở ngực, quần: PAL.night · vạt vải rách ở hông: PAL.blood · cán giáo: PAL.night · lưỡi kích: PAL.blood + vành gai PAL.metal · mũi đuôi cán: PAL.metal · viền tích sét: PAL.electric · VFX: PAL.electric | Mảnh, tai nhọn, tóc trắng bù xù, da tím xám; giáp gai đen-đỏ thẫm hở ngực, vạt vải đỏ rách ở hông; ngọn giáo cán tối lưỡi kích đỏ thẫm ~65 px gần gấp đôi thân cầm chéo, lưỡi chúc xuống | tai nhọn · tóc trắng bù xù · giáp vai gai · vạt vải rách 10 px |
| H06 | ROK | Rook | gauntlet lửa ×1 tay phải (mới) | 48×56 | 80×64 | #e8a030 | da: PAL.earth sáng (rám nắng, thân trần) · mũ trùm: PAL.night + viền & huy hiệu trán PAL.gold · khăn che mặt, áo choàng rách vai trái, vạt hông: PAL.blood · giáp vai gai, giáp tay trái, đai, ủng: PAL.night + viền PAL.gold · ngọc đai: PAL.blood · quần, găng hở ngón tay trái: PAL.night · găng lửa tay phải: PAL.lava + vảy lửa PAL.fire + vành & mắt ngọc PAL.gold · Chân Khí: PAL.gold/PAL.volt · đá: PAL.stone/PAL.earth | Vai rộng thân trần cơ bắp, mũ trùm đen viền vàng, khăn đỏ che nửa mặt; một găng lửa đỏ-cam khổng lồ bọc cả cẳng tay phải (nắm đấm to gần bằng đầu), giáp vai gai đen-vàng bên trái kèm vạt áo choàng đỏ rách bay, thế thủ hai nắm đấm trước cằm | mũ trùm + khăn che mặt · vạt áo choàng rách · găng lửa 6×6 |
| H07 | MOR | Mora | scythe (có sẵn, ramp riêng) | 56×64 | 144×96 | #9a6ae0 | mũ trùm chỏm nhọn & áo choàng rách: PAL.blood (đỏ thẫm) · tóc bạc ngắn: PAL.stone sáng · mắt: PAL.blood sáng · da: PAL.dust sáng · váy corset, găng hở ngón, ủng: PAL.night + dây buộc & viền PAL.blood · thắt lưng chéo: PAL.wood + khóa PAL.metal · trâm tim & huy hiệu mũ: PAL.metal + ngọc PAL.blood · cán hái: PAL.night + đai PAL.metal · lưỡi: PAL.stone tối + vân PAL.blood, rìa PAL.metal · hồn + VFX chữ ký: PAL.cyber (lục ma) viền PAL.bone · vệt gặt: bóng #9a6ae0 | Mảnh, mũ trùm đỏ thẫm chỏm nhọn, tóc bạc ngắn ngang cằm, áo choàng đỏ rách thành dải bay ngược; lưỡi hái đen-đỏ to hơn người cầm ngang thân, lưỡi cong như trăng khuyết vươn cao phía trước — đọc rõ ở 1× | mũ trùm chỏm nhọn · vạt áo choàng rách 10 px · tóc bạc ngắn |
| H08 | SAB | Sable | kusarigama (mới, tạ lưỡi phi) + xích runtime | 48×56 | 112×72 | #5ad06a | da: PAL.dust sáng · tóc bù xù: PAL.blood tối (đỏ rượu) · mắt: PAL.blood sáng · áo khoác dài cổ đứng, áo trong, quần, găng hở ngón, ủng: PAL.night · lót áo, cổ tay áo, vạt trong: PAL.blood · viền áo, khóa, trâm, nẹp ủng: PAL.metal · thắt lưng: PAL.blood tối · liềm, tạ lưỡi phi & xích: PAL.metal tối + ngọc PAL.blood · vân độc trên lưỡi & VFX độc: PAL.poison | Gọn, tóc đỏ rượu bù xù dựng ngược, áo khoác dài đen lót đỏ thẫm vạt xẻ tới bắp chân, xích bạc vắt ngang hông; liềm ở tay gần, xích chùng thõng tới quả tạ lưỡi phi gai — vòng xích chùng là dấu nhận diện | áo khoác dài vạt xẻ · tóc bù xù · vòng xích chùng ≤ 12 px |
| H09 | ZER | Zerran | Song đại đao ma (xem chương H09 §12) | 56×64 | 144×80 | #e8384f | da: PAL.earth sáng (rám) · tóc: PAL.metal sáng gần trắng + bóng PAL.shadow tím nhạt · giáp & áo: PAL.night đen + viền PAL.gold · vải tạp dề & lót: PAL.blood · ngọc thắt lưng/ngực: PAL.fire đỏ · lưỡi: PAL.shadow đen + sống răng PAL.gold + lưỡi bén PAL.blood/#e8384f phát sáng · mắt: tím | Tóc trắng dựng gai rất to, vai giáp gai vàng cong như sừng, ngực trần, vạt tạp dề đỏ giữa hai chân, hai đại đao cong lưỡi đỏ dài gần bằng thân rủ chếch ra hai bên | theo chương anh hùng §12 |
| H10 | FEN | Feng | Tay không quấn băng (xem chương H10 §12) | 48×56 | 112×72 | #f8e020 | da: PAL.dust sáng · áo cộc tay: PAL.gold + hoa văn mây lửa PAL.night · quần: PAL.night + hoa văn PAL.gold · đai: PAL.blood · băng quấn tay/cổ chân: PAL.bone · bao cổ tay & dép: PAL.night viền PAL.gold · tóc: ink · vệt cước: #f8e020 | Thiếu niên gọn người, tóc đen dựng chéo ra trước, áo vàng cộc tay cổ đứng cài khuy đen, đai đỏ thắt nút hai vạt bay bên hông, quần đen ống túm, băng trắng quấn nắm tay và cổ chân, dép đen; thế nghiêng một nắm đấm trước ngực, nắm kia ở hông | theo chương anh hùng §12 |
| H11 | MOM | Momo | Kim côn co giãn (xem chương H11 §12) | 48×64 | 160×80 | #b8762a | lông & tóc: PAL.gold (vàng nâu) · mặt & tai: PAL.dust · giáp: PAL.gold + PAL.blood (đỏ son) · khăn: PAL.blood · áo lót & quần: PAL.night · bao tay: PAL.night + viền PAL.gold · ủng: PAL.gold viền PAL.blood · côn: cán PAL.blood, hai đầu bịt PAL.gold | Khỉ nhỏ tóc vàng dựng ngược như ngọn lửa đội vòng trán vàng chạm mây, tai khỉ, khăn đỏ, giáp vàng-đỏ có giáp vai và khóa đai hình mặt thú, đuôi khỉ dài cong; tay phải kéo cây côn cán đỏ hai đầu bịt vàng chúc mũi xuống sàn | theo chương anh hùng §12 |
| H12 | ISO | Isolde | Tinh thể Hàn Tinh (triệu hồi binh khí băng) (xem chương H12 §12) | 48×64 | 144×88 | #a8e8ff | da: PAL.dust sáng · tóc: PAL.ice nhạt (bạc-lam) · váy corset: PAL.night (lam hoàng gia) · tay áo/vạt trước: PAL.bone trắng + viền PAL.metal bạc · vương miện/tinh thể/binh khí: PAL.ice · ủng: PAL.night + PAL.metal | Thon cao, vương miện băng nhiều mũi nhọn, tóc bạc dài quá hông, tay áo trắng loe rộng, váy dài xẻ tà, tay trước ngửa nâng tinh thể lơ lửng | theo chương anh hùng §12 |
| H13 | AUR | Aurelle | Quyền trượng thánh (ngọc lam) + đôi cánh (xem chương H13 §12) | 56×64 | 144×96 | #fff2c0 | da: PAL.dust sáng · tóc: PAL.gold (vàng óng) · váy/tay áo: PAL.bone trắng + viền PAL.gold · lót áo choàng/băng đô: PAL.night (lam) · cánh: PAL.bone + bóng PAL.holy · quyền trượng: cán PAL.night, đầu PAL.gold, ngọc PAL.ice đậm (lam) · VFX: PAL.holy + lõi lam | Lơ lửng cao hơn mọi anh hùng 32 px với bóng tròn dưới sàn, tóc vàng dài gợn sóng, đôi cánh trắng nhỏ sau lưng + cánh nhỏ trên tóc, quyền trượng cao hơn người đầu càng trăng và ngọc lam | theo chương anh hùng §12 |
| H14 | SOR | Sorin | Song vuốt dài gắn giáp tay (xem chương H14 §12) | 48×56 | 112×72 | #8a1020 | da: PAL.dust sáng · tóc ngắn: PAL.stone sáng (bạc) · mắt: PAL.blood sáng · mũ trùm, áo bó, quần, găng, tất đùi, ủng: PAL.night (đen) · viền mũ, khăn cổ, vạt tabard, lót giáp tay: PAL.blood · giáp vai, ngực, đai, gối, mũi ủng, huy hiệu nanh trên mũ: PAL.metal tối · vuốt: PAL.metal + rãnh PAL.blood · VFX: vệt vuốt PAL.blood + lõi trắng nóng, Dấu Mồi #8a1020 | Nhỏ, khom thấp như thú rình; mũ trùm đen viền đỏ có huy hiệu nanh bạc, tóc bạc ngắn lòi ra, khăn đỏ; mỗi cẳng tay mọc ba lưỡi vuốt thép cong dài chúc xuống tới gối — đọc rõ ở 1× | theo chương anh hùng §12 |
| H15 | TSU | Tsubaki | Ô giấy đỏ + phù chú (xem chương H15 §12) | 48×64 | 128×80 | #ff4a6a | da: PAL.dust sáng · tóc: ink (PAL.night tối nhất) · áo trắng tay rộng: PAL.bone sáng · viền áo, hakama, băng đô, nơ: PAL.blood · hoa anh đào trên tay áo: PAL.candy nhạt · obi: PAL.shadow · chuông & khóa ô: PAL.gold · cán ô: PAL.wood tối · tán ô: PAL.blood + PAL.bone · phù: PAL.bone + mực PAL.blood · VFX ấn: PAL.holy viền #ff4a6a | Nhỏ, tóc đen thẳng dài tới hông, băng đô đỏ có nơ đỏ-trắng và tua bên trái, tay áo trắng rộng thõng, hakama đỏ ngắn, guốc đen; ô giấy đỏ-trắng mở tròn như chiếc đĩa gác vai (hoặc khép thành ngọn thương có chuông + tua đỏ) — đĩa tán tròn là dấu nhận diện ở 1× | theo chương anh hùng §12 |
| H16 | JUN | Juno | Đại pháo cầm tay (pháo ray) (xem chương H16 §12) | 56×64 | 176×80 | #b04aff | tóc: PAL.ember (đỏ cam dựng) · kính bảo hộ: khung PAL.gold, tròng PAL.arcane · da: PAL.dust · áo crop, găng, quần: PAL.shadow + mảng PAL.arcane tối · khăn quàng: PAL.arcane · đai, bao tay, khóa giày: PAL.wood + PAL.gold · vạch sơn mặt: PAL.arcane · pháo: thân PAL.arcane, khung PAL.metal, nòng PAL.shadow, khe sáng PAL.arcane sáng · VFX đạn: xuyên PAL.arcane+trắng, chùm PAL.ember, nổ PAL.fire | Thấp, chân dang rộng, tóc đỏ dựng tua tủa, kính bảo hộ gác trán, khăn tím; khẩu pháo tím to gần bằng người ôm ngang hông chĩa về trước — khối pháo nằm ngang với khung báng góc cạnh phía sau là dấu nhận diện ở 1× | theo chương anh hùng §12 |
| H17 | IGN | Ignis | Kiếm liễu (rapier) (xem chương H17 §12) | 48×56 | 112×72 | #b0b4c0 | da: PAL.dust sáng · tóc dài gợn sóng: PAL.gold · mắt: PAL.water · áo khoác dài (frock coat): PAL.bone (trắng ngà) + viền PAL.gold · giáp vai vỏ sò & gilê: PAL.gold · áo choàng: ngoài PAL.blood đậm (đỏ thẫm, owner chốt 2026-11-02) + viền PAL.gold, lót PAL.bone · ngọc cài cổ & bao cổ tay: PAL.water + PAL.gold · găng & quần: PAL.night · ủng: PAL.bone + mũi PAL.gold · lưỡi kiếm: PAL.metal + giỏ chuôi PAL.gold + rãnh lưỡi PAL.fire khi Nhịp ≥ 5 | Thanh mảnh, khối tóc vàng dài gợn sóng chạm lưng (đặc điểm nhận diện số 1), đứng nghiêng thế đấu kiếm, kiếm liễu mảnh duỗi chéo xuống trước mặt, áo khoác trắng dài với giáp vai vàng hình vỏ sò, áo choàng đỏ thẫm viền vàng phồng sau lưng | theo chương anh hùng §12 |
| H18 | ELO | Elowen | Cung trăng khuyết (xem chương H18 §12) | 48×64 | 176×80 | #3a5ad8 | da: PAL.dust sáng · tóc: PAL.ice nhạt pha tím (bạc-lam tím) · giáp ngực/váy/ủng: PAL.night (lam) + viền PAL.gold · giáp vai & phần trắng: PAL.metal sáng · lông vũ & ngọc cung: PAL.ice/PAL.electric lam · cung: PAL.night thẫm + viền & lưỡi trăng PAL.gold · tên ánh trăng & VFX: PAL.ice/PAL.holy lam | Thon nhỏ, đuôi ngựa bạc-tím rất dài quét tới gót, tai nhọn, lông vũ xanh cài đỉnh đầu, cây cung trăng khuyết dài gần bằng người với hai lưỡi trăng vàng ở hai đầu, ủng cao đùi | theo chương anh hùng §12 |
| H19 | KAZ | Kazane | Song quạt chiến (xem chương H19 §12) | 48×56 | 128×72 | #1f8f7a | da: PAL.dust sáng · tóc dài (búi cao + hai lọn dài + đuôi): PAL.night lục lam (pha #1f8f7a) · mắt: PAL.blood sáng · kimono đen trễ vai, tay áo rộng, tất đùi: PAL.night · cổ áo trong: PAL.bone sáng · obi, vạt váy, hoa văn lá phong, dây tua: PAL.blood · viền áo, trâm cài, khóa obi: PAL.gold · đế guốc: PAL.wood + quai PAL.blood · quạt: nan PAL.night + lụa PAL.blood + lá phong PAL.blood sáng + viền PAL.gold · VFX gió: lõi trắng + vệt #1f8f7a + lá phong PAL.blood | Mảnh, búi tóc lục lam cao cài trâm vàng hình vòng cung và hoa lá phong đỏ tua trắng, hai lọn tóc dài; kimono đen trễ vai tay áo rộng; hai quạt chiến đỏ-đen viền vàng mở như hai cánh hình thang hai bên hông — đọc rõ ở 1× | theo chương anh hùng §12 |
| H20 | TAU | Taurok | Đại chùy chiến (xem chương H20 §12) | 64×72 | 160×96 | #7a4a2a | da/lông thân: PAL.earth đỏ nâu · bờm/râu/đuôi: PAL.shadow nâu đen · sừng: PAL.dust kem + chóp PAL.blood + đai PAL.gold · giáp vai/đai/khố: PAL.blood đỏ + viền PAL.gold · đai da chéo & ống tay: PAL.wood · khoen mũi: PAL.gold · chùy: thân trụ PAL.shadow sắt đen + đai & gai PAL.gold + ký hiệu PAL.blood · VFX: bụi PAL.earth/PAL.dust, Thức Tỉnh PAL.fire/PAL.gold | Lớn nhất roster, lưng gù, đầu bò tót bờm xù với hai sừng cong lớn, khoen vàng ở mũi, giáp vai đỏ viền vàng, móng guốc chẻ, đuôi có chùm lông; đại chùy trụ kéo lê sau lưng | theo chương anh hùng §12 |
| H21 | VUL | Vulkar | Song liêm trăng khuyết nối xích (dung nham) (xem chương H21 §12) | 64×72 | 160×96 | #ff3d00 | thân đá bazan: PAL.shadow + PAL.stone · mặt nạ sọ, sừng, giáp vai gai: PAL.bone tối · vết nứt & lõi ngực & mắt: PAL.lava (lõi PAL.fire, light buffer) · xích & khoen: PAL.metal tối · liêm: rìa PAL.stone + lòng PAL.lava vân tổ ong · đá đai lưng: PAL.ember · VFX: PAL.fire/PAL.lava | To bè nhất roster (cell 64×72, scale 1.15), khom rộng, sừng cong lớn và mặt nạ sọ, vai gai đá, thân đá đen nứt dung nham; hai liêm trăng khuyết lớn treo trên xích dưới hai nắm đấm — hai vầng trăng cam hai bên hông là dấu nhận diện | theo chương anh hùng §12 |
- Bảng trên là mặc định chỉ đạo mỹ thuật;
palette.signature / ramps / silhouettetronghero_*.pylà nguồn thắng khi khác (H01–H08 đã khớp concept art chính thứcHeroes/H01.png … H08.png— nguồn thắng về ngoại hình). Màu chữ ký 8 anh hùng thuộc 8 họ màu khác nhau (đỏ, vàng, tím, cam, lam, lục, ngọc, hồng sen) để dải thẻ Hồi Âm phân biệt được. - Mỗi anh hùng có một chi tiết động đọc được ở 1× (áo choàng đỏ rách, áo choàng lam, đuôi ngựa vàng, vạt áo khoác trắng, vạt vải đỏ ở hông, vạt áo choàng đỏ + lửa găng, áo choàng mũ trùm đỏ rách, vòng xích) — điều khiển bằng
cw/cl(02 §3.2). - Mắt: 1 px màu ánh nhấn khi mặt hướng ra (theo concept art: Kaito xám bạc, Aldric/Vex/Brann/Rook xanh lam, Lyra/Mora/Sable đỏ; không anh hùng nào đeo mặt nạ che mắt).
- Đèn Hồn: đèn lồng 8×8 bên hông trái mọi anh hùng (
fire/spirit-flamerecolorholy, VFX gắn socket) — dấu hiệu chung của Lanternbound. - Thức Tỉnh (Tuyệt Truyền): hàng LUT
awaken(ramp vũ khí đổi sang màu chữ ký sáng, viền 1 px sáng) +awaken_aura.
4Địch, Thủ Vệ, Boss
| Lớp | Mô tả | Cao | Canvas tối đa | Cách làm | Clip |
|---|---|---|---|---|---|
| HUM-S | Người nhỏ (rig ×0.85) | ≈ 32 px | 48×48 | rig + costume | 3 đòn + 4 loco + 16 phản ứng |
| HUM-M | Người (rig ×1.0) | ≈ 38 px | 48×56 | rig + costume | 3 + 4 + 16 |
| HUM-L | Người to (rig ×1.25) | ≈ 48 px | 64×64 | rig + costume, bán kính thân 12 | 3 + 4 + 16 |
| CRT-S | Sinh vật nhỏ (dơi, chuột, đốm hồn) | 12–20 px | 32×32 | module critter | 2 + 3 + 5 |
| CRT-M | Sinh vật vừa (slime, nấm, nhện) | 24–32 px | 48×40 | module critter | 2 + 3 + 5 |
| CRT-L | Sinh vật lớn (sói xương, golem nhỏ) | 40–48 px | 72×56 | module critter | 3 + 3 + 6 |
| WARDEN | Thủ Vệ | 56–68 px | ≤ 160×112 | rig ×1.5–1.8 + vũ khí địch | 6 đòn + 4 loco + 8 phản ứng + 2 |
| BOSS | Boss | 76–96 px | ≤ 192×144 | rig ×2.0–2.5 hoặc module riêng | 10 đòn + 4 loco + 6 phản ứng + 4 |
| Id | Tên | Kích thước / cách làm | Ramp · vũ khí |
|---|---|---|---|
| WD01 | Răng Sỏi | rig ×1.6 ≈ 61 px | đá + earth; chùy đá (hammer biến thể) |
| WD02 | Kẻ Đào Mộ Hask | rig ×1.5 ≈ 57 px | bone + earth; xẻng (shovel mới) |
| WD03 | Thợ Săn Nấm | rig ×1.5 | leaf + neon; nỏ (crossbow mới) |
| WD04 | Thuyền Trưởng Chìm | rig ×1.7 ≈ 65 px | water + metal; mỏ neo (anchor mới) |
| WD05 | Đốc Công Lò | rig ×1.7 | lava + metal; kìm lửa (tongs mới) |
| WD06 | Kiếm Sĩ Pha Lê | rig ×1.5 | arcane + ice; sword ramp pha lê, gạt 35% |
| WD07 | Tu Sĩ Gai | rig ×1.6 | bone + blood; trượng gai (staff mới) |
| WD08 | Nữ Thợ Săn Sương | rig ×1.5 | ice + stone; spear + bow |
| WD09 | Sát Thủ Bóng | rig ×1.5 | shadow + neon; dagger ×2 |
| WD10 | Hiệp Sĩ Rỗng | rig ×1.8 ≈ 68 px | night + gold; greatsword + towershield |
| BS01 | Gorrak Kẻ Gác Cổng | rig ×2.2 ≈ 84 px | earth + metal; bụng ellipsoid; hammer ×2.2 |
| BS02 | Valcor Hiệp Sĩ Không Đầu | rig ×2.0 ≈ 76 px, không đầu | metal + spirit-flame cổ; greatsword |
| BS03 | Mẹ Bào Tử | module riêng 96 px | leaf + neon + poison; nấm mẹ, xúc tu |
| BS04 | Nereth Phù Thủy Triều | rig ×1.8 ≈ 68 px | water + ice; áo choàng dài, staff |
| BS05 | Brakka Vua Đe | rig ×2.5 ≈ 95 px | lava + metal + gold; búa đe |
| BS06 | Song Tử Lăng Kính | rig ×1.6 ×2 thân | arcane + ice; khúc xạ |
| BS07 | Giáo Chủ Morvane | rig ×2.0 ≈ 76 px | bone + blood + holy; mũ mitre, staff xương |
| BS08 | Hàn Long Skarn | module riêng (spline 16 đốt) 96 px | ice + water + metal; đầu, cổ, cánh |
| BS09 | Bóng Gương | dùng body-sheet anh hùng đang chơi | LUT hàng mirror (PAL.shadow + mắt PAL.neon) |
| BS10 | Vua Rỗng | rig ×2.5 ≈ 95 px, 2 pha | night + gold; lõi Tâm Bình Minh trong ngực |
- Bảng ánh xạ
EN01…EN20 → lớpnằm ở 04 (cộtart_classđề xuất). Mỗi Địa Tầng dùng ≤ 6 loại địch thường cùng lúc (giới hạn LUT 255 màu/Địa Tầng, 02 §8). - Ramp địch: vật liệu đất/xương/đá/kim loại bão hòa thấp + ánh nhấn Địa Tầng ở mắt/lõi; không dùng
palette.signaturecủa anh hùng làm màu chính. - Tinh Anh: viền 1 px theo affix (shader chế độ viền, 02 §6.5) +
elite_aura; màu viền 10 affix lấy từ 10 rampPALkhác nhau (04 định nghĩa), ưu tiên ramp không trùng báo hiệu đỏ. - Thủ Vệ/Boss: chân dung 64×64 (render pose
PORTRAIT), thẻ tên BossIntro (Tiny5 64 + danh hiệu 40 trên dảiink), nhạc riêng (§9).
5Môi trường
5.1 Phòng chiến đấu (một Địa Tầng = một bộ)
| Thành phần | Kích thước (art px) | Cách làm |
|---|---|---|
| Room plate (tường sau, vòm, trần y = 200) | 384 × 700 (phủ máy dài/rộng nhất) | tile 16×16 từ tileset Địa Tầng, ghép bằng script Pillow; vùng giữa yên tĩnh (polish §8) |
| Sàn | 384 × 3 hàng lát + nền tối | gạch 12×5, mạch lệch 6 (hub §2: floor-edge, floor, floor-dark, mortar) — ramp theo Địa Tầng |
| Tường ngoài | 16 px mỗi bên ngoài x = ±176 | cho iPad (02 §2.2) |
| Điểm spawn (01 §2) | cửa ngục 24×40 ở ±176 (mở 4 khung), khe tường x −90/+70 (vết nứt 3 bậc), lỗ trần x −40/+110 (miệng tối + đá rơi) | prop + VFX spawn_* |
| Cầu thang vào/ra | vào: chân thang xoắn sát tường trái x −150 (rơi từ trần); ra: miệng hầm x +150 | prop 48×64 |
| Nguồn sáng | 2–4/phòng: đuốc/lò/nến/tinh thể (bảng §2) | sheet pixelfx loop + vũng sáng dither nướng vào room plate |
| Đạo cụ | 8/Địa Tầng (bảng §2), 16–48 px | agy ui-art/background → snap native → reviewer; hoặc Pillow khi hình học đơn giản |
| Decal | 6/Địa Tầng: nứt sàn, nứt tường (dội tường), tro, máu tối (không đỏ tươi), cháy xém, vũng nước | Pillow, mờ sau 6 s |
5.2 Parallax (dọc 270×480 → 700)
| Lớp | Hệ số | Nội dung |
|---|---|---|
BG_Far |
×0.2 | vực sâu: bóng cầu thang xoắn khác, ánh xa, sương Địa Tầng (320×700) |
BG_Mid |
×0.5 | cột, vòm, xích (352×700), tối hơn room plate 2 bậc |
Room |
×1.0 | room plate §5.1 |
Foreground |
×1.25 | 2–3 cột/xích tối viền ngoài + vignette dither trên/dưới; không che làn chiến đấu (y 0…80 trên sàn) |
5.3 Cảnh đi xuống thang xoắn (EchoPick, 00 §5.2)
Trục dọc 270×(480…700): cột trụ giữa (24 px), bậc đá 32×8 xếp xoắn ốc (8 góc quay, bậc phía sau cột tối 2 bậc, phía trước sáng), camera trượt xuống 48 px/s; anh hùng chạy clip descent theo bậc (lật hướng mỗi nửa vòng), vũng sáng đèn hồn di chuyển theo anh hùng; bảng đá khắc số tầng (digit sprite khắc chìm) mỗi vòng; bụi rơi dust; mỗi 10 tầng đi qua cổng Địa Tầng (vòm đá + dither chuyển ramp). Phòng tầng trước mờ dần lên trên (dither 0.6 s).
5.4 Trạm Đầu Thang (Home)
Diorama 270×400 art px: miệng hang trên mặt đất dưới nhật thực (vòng tối, viền sáng mỏng — Dawnhold), lều vải, cờ Lanternbound, lửa trại fire/campfire, túi AFK, anh hùng đang chọn ngồi camp_idle, miệng thang xoắn tối bên phải. NPC trại (thương nhân, thợ rèn) là rig + costume (02), không AI.
6VFX
| Key | Kích hoạt | pixelfx | Palette | Lớp | Trạng thái | Ghi chú |
|---|---|---|---|---|---|---|
| hit_L | Hit lớp L | impacts/hit-spark | hero signature | front | recolor | nhỏ, 0.3 s |
| hit_M | Hit lớp M | impacts/hit-flash | hero signature | front | recolor | + hit-spark |
| hit_H | Hit lớp H | impacts/crit-hit | metal | front | recolor | + bụi dust |
| hit_H_blunt | Hit H vũ khí cùn (găng, đại kiếm sống) | impacts/blunt-hit | dust | front | recolor | |
| hit_F | Hit lớp F | impacts/crit-hit | gold | front | recolor | + camera punch 2 px |
| hit_K | Phản Đòn | impacts/parry | volt | front | recolor | → vệt phản đòn của anh hùng |
| hit_crit | Chí mạng | impacts/hit-flash | fire | front | recolor | số cam #ffa040 |
| hit_ground | Đập đất / SLAM | impacts/ground-slam | dust | back+front | recolor | vết nứt sàn 6 s |
| land_heavy | Tiếp đất nặng | impacts/heavy-landing | dust | back+front | reuse | |
| wall_bounce | Dội tường | impacts/blunt-hit | stone | front | recolor | + vết nứt tường (decal) |
| ground_bounce | Dội đất | explosions/dirt-explosion | dust | front | recolor | scale nhỏ |
| def_deflect | GẠT | impacts/parry | hero signature | front | recolor | hạt +2 mỗi bậc chuỗi |
| def_deflect_perfect | GẠT HOÀN HẢO | impacts/parry | gold | front | recolor | + nháy trắng 1 khung |
| def_flow | Dòng Chảy (chuỗi 5) | ds-fx/flow-aura | gold | back | new | viền vàng + tia lửa vàng 3 s |
| def_block | CHẶN | impacts/shield-block | metal | front | recolor | tia lửa nhỏ |
| def_guard_break | Vỡ Thủ | ice/ice-shatter | metal | front | recolor | mảnh khiên khí |
| def_evade | NÉ | arcane/blink-out | smoke | back | recolor | dư ảnh 3 bản |
| def_evade_perfect | NÉ HOÀN HẢO | arcane/time-stop | water | screen | rework | vòng chậm 0.3×, 270×480 |
| def_clash | VA KIẾM | impacts/parry | fire | front | recolor | ×2 + impacts/ricochet |
| def_clash_spark | Va Kiếm (tia bắn) | impacts/ricochet | fire | front | recolor | |
| def_area_dodge | Tránh Vùng | moves/dash-strike | smoke | back | rework | chỉ bụi lướt |
| def_enemy_offbal | Địch Mất Thăng Bằng | status/confused | gold | attach-head | rework | sao xoay trên đầu, không tô thân |
| posture_break | Vỡ Thế | ds-fx/posture-break | gold | front | new | vòng vỡ + chữ VỠ THẾ (UI) |
| broken_loop | Đang Vỡ Thế | ds-fx/broken-rim | white | attach | new | viền trắng nhấp nháy (shader) |
| exec_frame | Tuyệt Sát / Tuyệt Kỹ (khung va) | ds-screen/impact-frame-portrait | ink | screen | rework | re-author 270×480 từ impacts/impact-frame |
| exec_split | Địch tách đôi | spawn/shatter-death | hero signature | front | recolor | đường chéo 1 px |
| exec_letterbox | Letterbox | UI | ink | ui | new | dải 16 art px trên/dưới |
| st_burn | Bỏng | status/burning | fire | attach | rework | lửa nhỏ quanh viền, không tô thân |
| st_chill | Lạnh | ds-fx/chill-motes | ice | attach | new | bông tuyết 1 px rơi |
| st_freeze | Đóng Băng | ice/freeze | ice | front | rework | skin ice toàn thân (ngoại lệ có nghĩa) |
| st_freeze_shatter | Vỡ băng | ice/ice-shatter | ice | front | reuse | +60% hit H/F |
| st_shock | Điện Giật | lightning/electrified | electric | attach | rework | tia quanh viền |
| st_shock_chain | Lan điện | lightning/chain-lightning | electric | front | recolor | |
| st_venom | Độc | status/poisoned | poison | attach-head | rework | bong bóng trên đầu |
| st_bleed | Chảy Máu | status/bleeding | blood | attach | rework | giọt rơi, không tô thân |
| st_hemorrhage | Xuất Huyết | nature/acid-splash | blood | front | recolor | nổ 150% |
| st_hex | Ám Ấn | shadow/hex-sigil | shadow | attach-feet | recolor | ấn dưới chân |
| st_radiance | Thánh Quang | holy/halo | holy | attach-head | recolor | |
| st_sunder | Phá Giáp | ds-fx/sunder-crack | metal | attach | new | mảnh giáp rơi |
| st_marked | Đánh Dấu | ui/exclamation | blood | attach-head | rework | tâm ngắm 7×7 |
| st_stun | Choáng | status/stunned | gold | attach-head | reuse | |
| st_slow | Chậm | status/slowed | water | attach-feet | rework | |
| el_fire_burst | Nổ hỏa (burst) |
explosions/small-explosion | fire | front | reuse | |
| el_frost_burst | Nổ băng | ice/frost-nova | ice | back+front | reuse | |
| el_storm_burst | Nổ lôi | lightning/zap-hit | electric | front | reuse | |
| el_venom_burst | Nổ độc | nature/poison-cloud | poison | front | reuse | |
| el_shadow_burst | Nổ ám | shadow/dark-explosion | shadow | front | reuse | |
| el_radiant_burst | Nổ quang | holy/smite | holy | front | reuse | |
| el_wave | Sóng kiếm (wave) |
ds-fx/blade-wave | theo nguyên tố | front | new | trăng khuyết 20×12 bay |
| heal | Hồi máu | holy/heal | heal | attach | reuse | |
| shield_gain | Nhận khiên | holy/divine-shield | metal | back+front | recolor | |
| lifesteal | Hút máu | shadow/life-steal | blood | front | recolor | |
| afterimage | Dư ảnh (cờ ghost) | runtime | hero ramp | light | new | 3 bản, đời 0.16 s, shader PixelGhost |
| dust_step | Bụi chân/lướt | act.dust | dust | front | reuse | specks từ act |
| dash_trail | Vệt lướt | moves/dash-strike | hero signature | back | rework | chỉ vệt, bỏ thân dummy |
| jump_puff | Nhảy / tiếp đất | spawn/poof | dust | front | recolor | |
| spawn_door | Địch ra từ cửa ngục | spawn/spawn-portal | shadow | back | recolor | |
| spawn_wall | Trèo ra khe tường | explosions/dirt-explosion | stone | front | recolor | đá vụn |
| spawn_ceiling | Rơi từ lỗ trần | impacts/heavy-landing | dust | front | reuse | |
| death_normal | Địch chết (vật lý) | spawn/shatter-death | stone | front | recolor | theo nguyên tố hit cuối |
| death_burn | Địch chết (hỏa/ám) | spawn/dissolve-burn | fire | front | recolor | |
| death_elite | Tinh Anh chết | explosions/small-explosion | fire | front | reuse | + death_normal |
| death_boss | Boss chết | spawn/soul-rise | gold | back+front | recolor | + tro bay |
| ember_drop | Rơi Than Hồng | spawn/coin-drop | ember | front | recolor | |
| elite_aura | Hào quang Tinh Anh | ds-fx/elite-rim | theo affix | attach | new | viền shader + 2 tia |
| od_ready | Bộc Phá đầy | lightning/charge-up | volt | back | recolor | |
| od_ult_bg | Nền Tuyệt Kỹ | ds-screen/ult-dim | night | screen | new | tối 40% dither |
| awaken_aura | Thức Tỉnh | fire/spirit-flame | hero signature | back | recolor | 8 s |
| revive | Hồi sinh | holy/resurrection | fire | back+front | recolor | vòng lửa đèn hồn 64 px |
| downed | Gục | fire/candle | ember | attach | rework | đèn hồn chập chờn |
| lantern | Đèn Hồn anh hùng | fire/spirit-flame | holy | attach | rework | 8×8, hông trái |
| tele_area | Báo hiệu vùng | ds-fx/area-warn | #ff2040 dither | floor | new | nhấp nháy nhanh dần |
| tele_aim | Đường ngắm | runtime line | #ff2040 | floor | new | 1 px đứt |
| env_torch | Đuốc | fire/torch | fire | env | reuse | |
| env_brazier | Lò | fire/brazier | fire | env | reuse | |
| env_candle | Nến | fire/candle | ember | env | reuse | |
| env_campfire | Lửa trại (Home) | fire/campfire | fire | env | reuse | |
| env_drip | Giọt nước | water/drip | water | env | reuse | |
| env_fog | Sương tầng | weather/fog | smoke | env | rework | re-author 270×480 |
| env_godrays | Tia sáng | weather/god-rays | holy | env | rework | 270×480 |
| env_snow | Tuyết | weather/snow | ice | env | rework | 270×480 |
| env_fireflies | Bào tử sáng | weather/fireflies | cyber | env | rework | 270×480 |
| env_wisp | Đốm hồn | critters/wisp | arcane | env | recolor | |
| trans_floor | Chuyển tầng | ds-screen/slash-wipe-portrait | ink | screen | rework | từ transitions/slash-wipe |
| trans_boss | Vào Boss | ds-screen/iris-portrait | ink | screen | rework | từ transitions/iris |
| trans_stratum | Cổng Địa Tầng | ds-screen/burn-portrait | ember | screen | rework | từ transitions/burn-away |
| ui_claim | Nhận thưởng | pickups/collect-burst | gold | ui | reuse | kit sheet |
| ui_coin | Vàng | pickups/coin-spin | gold | ui | reuse | kit sheet |
| ui_gem | Kim Cương | pickups/gem-spin | water | ui | reuse | kit sheet |
| ui_soul_ash | Tro Hồn | pickups/xp-orb | cyber | ui | recolor | |
| ui_chest | Mở rương | pickups/chest-open | gold | ui | reuse | render theo feature (12 MB) |
| ui_loot_beam | Hồi Âm L / anh hùng L | pickups/loot-beam | gold | ui | recolor | |
| ui_card_flip | Lật thẻ Hồi Âm | ds-ui/card-flip-shine | theo độ hiếm | ui | new | 4 bản C/R/E/L |
| ui_rank_up | Lên hạng Phong Độ | ds-ui/rank-burst | theo hạng | ui | new | không chữ bake |
| ui_combo_mile | Mốc Combo | ds-ui/combo-burst | theo mốc | ui | new | |
| ui_summon | Triệu Hồi | arcane/magic-circle-cast | arcane | ui | recolor | + loot_beam theo độ hiếm |
| ui_levelup | Lên cấp/sao | holy/feather-burst | gold | ui | recolor | thay ui/level-up (chữ EN bake) |
- Trạng thái bảng:
reuse= sheet catalog nguyên bản;recolor= cùng effect,palette= rampPALghi ở cột Palette ("hero signature" = ramp chứa màu chữ ký anh hùng: Kaitometal/blood, Aldricgold/holy, Vexcyber/shadow, Brannember/fire, Lyraice/electric, Rookgold/earth, Moraarcane/shadow, Sablepoison/night— khớppalettetronghero_*.py(nguồn chuẩn));rework= sửa trên nhánhdeepstair(re-author 270×480 cho effect màn hình/thời tiết 320×180, bỏ phần vẽ lên thân dummy vì chỉ đúng với stock actor);new= effect mới theo AUTHORING (≥ 3 vòng render → nhìn → sửa,check.mjssạch). - VFX chữ ký anh hùng (~12/anh hùng):
hero-<code>/fx-*— vệt chém riêng (L, H, trên không), phản đòn, Kỹ Năng A/B, Tuyệt Kỹ (gồm 1 effect màn hình), Tuyệt Sát, đạn riêng (PJ_*), Thức Tỉnh. Id lấy từ cộtfxcủa MoveDef. - Phân lớp (polish §4): flash/tia lửa trên mục tiêu (
front), khói/dấu sàn dưới (back), VFX anh hùng không che thân anh hùng (vệt chém đặt trước vũ khí, không phủ mặt), VFX thế giới không vẽ đè UI. Trang sáng cộng chỉ cho lõi nóng. - Theo cấp độ: hit L < M < H < F < K < S < U < X — kích thước, số hạt, độ sáng tăng dần; độ hiếm Hồi Âm C < R < E < L cũng tăng mật độ hiệu ứng lật thẻ.
- Trạng thái kéo dài: emblem nhỏ gắn đầu/chân + viền màu (không tô cả thân); Đóng Băng là ngoại lệ có nghĩa (02 §6.5).
- Âm thanh đi cùng mỗi dòng VFX theo §9 (cùng hit-frame).
7Icon & UI art
7.1 Icon
| Nhóm | Số | Kích thước native → hiển thị | Cách làm (bậc) |
|---|---|---|---|
| Hồi Âm riêng (COMBO/TECH/SKILL/ART/EVO) | ~305 | 64×64, 8 khung → ×4 (256) | echo-icon.mjs từ body-sheet (1) |
| Hồi Âm chung ELEM/RESO | ~22 | 64×64, 8 khung | khung loop pixelfx (fire/fireball, ice/ice-crystal, lightning/ball-lightning, nature/poison-cloud, shadow/void-orb, holy/halo) crop 64 (0–1) |
| Hồi Âm chung còn lại (STAT/DEF/TRIG/SUST/ECON/PACT) | ~78 | 64×64 tĩnh | agy type icon lưới 3×3, master trung tính → biến thể bằng Pillow (2 + 1) |
| Di Vật | 24 | 32×32 → ×4 | agy master + khung độ hiếm RaritiesCurrency/1–6 bằng code |
| Tiền tệ / vật phẩm (Vàng, KC, Tro Hồn, Quyển Chiến, Chìa, Bụi, Ấn, Vé Hồi Sinh, Xu Vòng Quay, Kẹo, Mảnh Vạn Năng ×3) | 22 | 32×32 + 16×16 kit | Pillow trước (đồng xu, ngọc, tro); agy cho cuộn/ấn |
| Mảnh anh hùng | 12 | 32×32 | chân dung + khung mảnh vỡ (Pillow) |
| Chân dung anh hùng / địch / Thủ Vệ / Boss | 8×3 + 40 + 20 | 32/64 | portrait.mjs (0 AI) |
| Nút Cây Đèn Hồn | 40 | 16×16 ×4 | Pillow pictogram |
| Bậc Kinh Hoàng | 20 | 32×32 | sọ + số La Mã pixel (Pillow) |
| Minh họa Chiếu Nghỉ (LD00–LD08) | 9 | 270×110 | NPC rig + prop + nền tile (1); agy chỉ khi không đạt |
7.2 Mở rộng kit UI (build_ui_pixel_kit.py)
| Nhóm | Sprite mới | Native |
|---|---|---|
| Khung | px_card_echo (9-slice, viền độ hiếm), px_hud_panel, px_hud_strip, px_sheet (bottom sheet) |
16×18 họ px_popup |
| Huy hiệu độ hiếm Hồi Âm | tròn, thoi, lục giác, sao, sao + mũi tên, sao đôi, giọt (06 §3) | 16×16 |
| Thanh | px_bar_hp, px_bar_hp_boss, px_bar_guard, px_bar_posture, px_bar_od (vành 8 đoạn) |
8–10 cao |
| Nút | px_btn_od tròn 56 |
56×56 |
| Pictogram (34) | pause, build, ember, soul_ash, sigil, relic_key, relic_dust, revive, spin_coin, shard, heart, deflect, block, evade, counter, clash, execute, lantern, stair, campfire, dread, codex, hero, training, tree, relic, summon, pass, mail, quest, event, speed, auto, skip | 16×16 |
| Icon mini 8×8 | 8 loại lộ trình, 7 loại đòn, 8 vũ khí, 6 nguyên tố | 8×8 |
| Chiến đấu (thế giới, PPU 16) | digit S/M/L/XL/XXL (11 §3.3), chữ hạng D…SSS, chữ phòng thủ VI + EN (11 §3.3), nhãn Combo, glyph báo hiệu ×5 (9×9), px_shadow_s/m/l, px_chain_link 3×2, pip 6×6 |
— |
| Widget Cổng | 8 widget (11 §3.4) | ≤ 60×24 |
Chữ chiến đấu dùng bộ glyph hiển thị "DS Display" vẽ tay trong Pillow (chữ hoa cao 9 px, đủ chữ hoa tiếng Việt có dấu + A–Z + 0–9 + ! × ?), viền ink 1 px, ramp theo loại (Gạt gold, Chặn metal, Né water, Phản volt, Va Kiếm fire, MISS stone, Vỡ Thế gold+trắng). Mỗi chữ xuất 2 bản _vi, _en.
8Store assets
| Asset | Kích thước | Nội dung |
|---|---|---|
| Icon app | 1024×1024 (vẽ 128×128 native ×8 — ngoài game nên được ×8) | Kaito rút đao, vệt chém trắng, đèn hồn, nền trục thang tối; 3 phương án A/B (đỏ / vàng / tím nền ánh) |
| Feature graphic (Google Play) | 1024×500 (= 256×125 ×4) | 4 anh hùng trên cầu thang xoắn, logo DEEPSTAIR; vùng trống cho logo |
| Screenshot | 1080×1920 (×4), 1290×2796 (322×699 ×4 + đệm 1 px), 2048×2732 (512×683 ×4 — chế độ chụp riêng) | 8 cảnh: Gạt → Phản Đòn; Tuyệt Sát zoom 2×; chọn Hồi Âm khi đi xuống; combo trên không SSS; Boss; 8 anh hùng; Cây Combo; Trạm Đầu Thang. Dải chú thích trên 1080×320 (Tiny5 64, VI/EN) |
| Video 30 s | 1080×1920 | 0–3 s: Gạt đỏ → tia lửa → Phản Đòn → Tuyệt Sát; 3–8: chọn Hồi Âm, lộ trình mới xuất hiện ngay; 8–14: combo trên không, chữ hạng lên SSS; 14–20: 8 anh hùng 0.7 s mỗi người; 20–26: Boss Vỡ Thế → 10% Max HP; 26–30: logo + CTA |
Key art/icon: agy type promo (D8); bf-img chỉ khi owner cho phép. Không bake chữ vào key art (chú thích localize).
9Âm thanh
9.1 Định hướng
Dark chiptune × orchestral: giai điệu chip (pulse, triangle, noise kiểu 16-bit) trên nền dàn dây trầm, hợp xướng, đồng thau thấp và trống taiko/công nghiệp. Mỗi Địa Tầng một nhạc cụ dẫn (bảng nhạc), cùng một motif "Đèn Hồn" 4 nốt xuất hiện ở Home, cổng Địa Tầng và kết thúc B100 (đảo giọng ở Bóng Gương). Nhạc thích ứng 3 stem: base (đi lại/đi xuống) → combat (+trống, bass khi có địch) → style (+giai điệu chip khi Phong Độ ≥ S); lớp lyr_flow (trống dồn) khi Dòng Chảy. SFX: va chạm giòn, nhiều lớp (vụt + va + thân), kim loại sáng cho phòng thủ.
Nguồn & giấy phép: SFX từ Freesound qua MCP bf-sfx (chỉ CC0/CC-BY; ưu tiên CC0, CC-BY ghi Credits), foley + synth tự làm; nhạc làm in-house bằng tracker chip + thư viện dàn nhạc miễn phí có điều khoản cho phép dùng thương mại — lưu chứng từ ở Docs/Licenses/. Ngân sách mặc định $0; tùy chọn thuê soạn 3 track (Home, Boss chung, Vua Rỗng) nếu KPI D7 đạt (14).
9.2 Nhạc
| Id | Tên | Bối cảnh | BPM | Loop (s) | Stem |
|---|---|---|---|---|---|
| mus_home_camp | Trạm Đầu Thang | Home, Sảnh Anh Hùng, meta | 84 | 96 | pad · đàn lute · lửa trại |
| mus_descent | Thang Xoắn | EchoPick / đi xuống (lọc thấp + tiếng bước) | 70 | 64 | drone · chuông xa |
| mus_landing | Chiếu Nghỉ | Landing LD01–LD08 | 90 | 72 | hurdy-gurdy · pulse chip |
| mus_boss_gate | Cổng Boss | LD00, BossIntro trước stinger | 60 | 48 | drone · tim đập |
| mus_s01 | Hầm Rượu Đổ Nát | S01 B1–9 | 112 | 120 | base · combat · style |
| mus_s02 | Hầm Mộ | S02 | 108 | 120 | base · combat · style |
| mus_s03 | Hang Nấm Phát Quang | S03 | 116 | 120 | base · combat · style |
| mus_s04 | Sảnh Ngập | S04 | 104 | 128 | base · combat · style |
| mus_s05 | Lò Rèn Hỏa Ngục | S05 | 128 | 112 | base · combat · style |
| mus_s06 | Mạch Pha Lê | S06 | 120 | 120 | base · combat · style |
| mus_s07 | Thánh Đường Xương | S07 | 100 | 128 | base · combat · style |
| mus_s08 | Vực Băng | S08 | 118 | 120 | base · combat · style |
| mus_s09 | Mê Cung Bóng | S09 | 132 | 112 | base · combat · style |
| mus_s10 | Tâm Rỗng | S10 | 136 | 112 | base · combat · style |
| mus_boss_bs01 | Gorrak | B10 | 132 | 96 | phase1 · phase2 |
| mus_boss_bs02 | Valcor | B20 | 136 | 96 | phase1 · phase2 |
| mus_boss_bs03 | Mẹ Bào Tử | B30 | 124 | 96 | phase1 · phase2 |
| mus_boss_bs04 | Nereth | B40 | 128 | 96 | phase1 · phase2 |
| mus_boss_bs05 | Brakka | B50 | 140 | 96 | phase1 · phase2 |
| mus_boss_bs06 | Song Tử Lăng Kính | B60 | 144 | 96 | phase1 · phase2 |
| mus_boss_bs07 | Morvane | B70 | 120 | 104 | phase1 · phase2 |
| mus_boss_bs08 | Hàn Long Skarn | B80 | 146 | 96 | phase1 · phase2 |
| mus_boss_bs09 | Bóng Gương | B90 (motif anh hùng đảo) | 150 | 96 | phase1 · phase2 |
| mus_boss_bs10 | Vua Rỗng | B100 | 150 | 120 | phase1 · phase2 · finale |
| mus_abyss | Vực Không Đáy | B101+ | 140 | 128 | base · combat · style |
| mus_daily | Thử Thách Ngày | Daily Challenge | 126 | 112 | base · combat |
| lyr_flow | Lớp trống Dòng Chảy | chồng lên mọi track trận | — | — | 1 stem/track (theo BPM) |
| stg_boss_intro | Stinger Boss | BossIntro | — | 3 | — |
| stg_floor_clear | Stinger hạ tầng | FloorClear | — | 2 | — |
| stg_warden_clear | Stinger Thủ Vệ | hạ Thủ Vệ | — | 3 | — |
| stg_record | Kỷ lục mới | Kết Quả | — | 4 | — |
| stg_results_win | Kết Quả thắng | hạ Vua Rỗng / B100 | — | 8 | — |
| stg_results_lose | Kết Quả gục | Kết Quả | — | 6 | — |
| stg_stratum_gate | Qua Địa Tầng | B10/20/… đi xuống | — | 4 | — |
| stg_summon_l | Triệu Hồi Huyền Thoại | S25 | — | 4 | — |
Key Địa Tầng (bảng §2) quyết định cao độ gốc chuỗi Gạt (§9.4). Crossfade 1.0 s giữa track, stem vào/ra theo ô nhịp (quantize 1 beat); pause/resume đúng vị trí; Kết Quả dùng stinger rồi mus_home_camp.
9.3 SFX
Anh hùng sau ra mắt (H09–H21, 03 §9): mỗi người thêm ≈ 20 sfx_<code>_<move>, 3 vo_<code>_*, 2 sfx_gauge_<code>_* và 1 stinger ra mắt — sản xuất theo dây chuyền mùa (14 §5.9); bảng dưới là ngân sách ra mắt (H01–H08).
| Id | File | Nhóm | Bus | Mô tả |
|---|---|---|---|---|
| sfx_whoosh_light_[1-4] | 4 | Chiến đấu | SFX/Actor | vung nhẹ, pitch ±5% |
| sfx_whoosh_heavy_[1-3] | 3 | Chiến đấu | SFX/Actor | vung nặng |
| sfx_whoosh_spin_[1-2] | 2 | Chiến đấu | SFX/Actor | xoay |
| sfx_hit_light_[1-4] | 4 | Chiến đấu | SFX/Combat | hit L (01 §14.3) |
| sfx_hit_med_[1-4] | 4 | Chiến đấu | SFX/Combat | hit M |
| sfx_hit_heavy_[1-3] | 3 | Chiến đấu | SFX/Combat | hit H/F |
| sfx_hit_blunt_[1-3] | 3 | Chiến đấu | SFX/Combat | găng, sống kiếm, khiên |
| sfx_hit_crit_[1-2] | 2 | Chiến đấu | SFX/Combat | lớp chí mạng chồng |
| sfx_counter_[1-3] | 3 | Chiến đấu | SFX/Combat | hit K |
| sfx_launch_[1-2] | 2 | Chiến đấu | SFX/Combat | hất tung |
| sfx_air_hit_[1-3] | 3 | Chiến đấu | SFX/Combat | hit trên không |
| sfx_spike_[1-2] | 2 | Chiến đấu | SFX/Combat | đập xuống |
| sfx_wall_bounce_[1-2] | 2 | Chiến đấu | SFX/Combat | dội tường + đá vụn |
| sfx_ground_bounce_[1-2] | 2 | Chiến đấu | SFX/Combat | dội đất |
| sfx_body_fall_[1-3] | 3 | Chiến đấu | SFX/Combat | ngã |
| sfx_otg_[1-2] | 2 | Chiến đấu | SFX/Combat | đánh nằm |
| sfx_dash_[1-2] | 2 | Chiến đấu | SFX/Actor | lướt |
| sfx_jump | 1 | Chiến đấu | SFX/Actor | |
| sfx_land_[1-2] | 2 | Chiến đấu | SFX/Actor | |
| sfx_step_stone_[1-4] | 4 | Chiến đấu | SFX/Actor | bước đá |
| sfx_step_wet_[1-3] | 3 | Chiến đấu | SFX/Actor | S04 |
| sfx_step_crunch_[1-3] | 3 | Chiến đấu | SFX/Actor | S02, S07, S08 |
| sfx_deflect_[1-5] | 5 | Phòng thủ | SFX/Combat | keng, bậc chuỗi 1–5 = gốc +0…+4 bán cung |
| sfx_deflect_perfect | 1 | Phòng thủ | SFX/Combat | gốc +7 bán cung, ngân 0.6 s |
| sfx_flow_enter | 1 | Phòng thủ | SFX/Combat | hợp âm vào Dòng Chảy |
| sfx_flow_loop | 1 | Phòng thủ | SFX/Combat | ngân nhẹ 3 s |
| sfx_block_[1-3] | 3 | Phòng thủ | SFX/Combat | thịch kim loại |
| sfx_block_heavy | 1 | Phòng thủ | SFX/Combat | chặn đòn nặng |
| sfx_guard_break | 1 | Phòng thủ | SFX/Combat | vỡ thủ |
| sfx_evade_[1-3] | 3 | Phòng thủ | SFX/Combat | vụt gió |
| sfx_evade_perfect | 1 | Phòng thủ | SFX/Combat | vụt + chậm thời gian |
| sfx_sway_miss | 1 | Phòng thủ | SFX/Combat | MISS |
| sfx_clash_[1-2] | 2 | Phòng thủ | SFX/Combat | va kiếm lớn |
| sfx_enemy_offbalance | 1 | Phòng thủ | SFX/Combat | địch loạng choạng |
| sfx_enemy_deflect | 1 | Phòng thủ | SFX/Combat | địch gạt anh hùng |
| sfx_area_dodge | 1 | Phòng thủ | SFX/Actor | rời vùng |
| sfx_posture_break | 1 | Thế & Tuyệt Sát | SFX/Combat | vỡ thế |
| sfx_broken_loop | 1 | Thế & Tuyệt Sát | SFX/Combat | ù tai nhẹ khi đang Vỡ Thế |
| sfx_exec_zoom | 1 | Thế & Tuyệt Sát | SFX/Combat | hút vào zoom 2× |
sfx_exec_ |
8 | Thế & Tuyệt Sát | SFX/Combat | 1/anh hùng (01 §14.3) |
| sfx_exec_boss_hit | 1 | Thế & Tuyệt Sát | SFX/Combat | 10% Max HP Boss |
| sfx_rank_<D..SSS> | 7 | Phong Độ & Bộc Phá | SFX/UI | chime theo hạng, tăng dần |
| sfx_rank_down | 1 | Phong Độ & Bộc Phá | SFX/UI | |
| sfx_combo_mile_[1-5] | 5 | Phong Độ & Bộc Phá | SFX/UI | GOOD…LEGEND |
| sfx_od_full | 1 | Phong Độ & Bộc Phá | SFX/UI | Bộc Phá đầy |
| sfx_od_activate | 1 | Phong Độ & Bộc Phá | SFX/Combat | |
| sfx_awaken_start | 1 | Phong Độ & Bộc Phá | SFX/Combat | Thức Tỉnh |
| sfx_awaken_end | 1 | Phong Độ & Bộc Phá | SFX/Combat | |
| sfx_slowmo_in | 1 | Phong Độ & Bộc Phá | SFX/Combat | |
| sfx_slowmo_out | 1 | Phong Độ & Bộc Phá | SFX/Combat | |
sfx_gauge__gain / _full |
16 | Phong Độ & Bộc Phá | SFX/UI | Cổng cơ chế 8 anh hùng × 2 |
sfx__ |
160 | Chữ ký anh hùng | SFX/Combat | ≈ 20 id × 8 anh hùng; id thật lấy từ MoveDef.sfx |
| sfx_burn_apply / _tick | 2 | Nguyên tố | SFX/Combat | |
| sfx_chill_apply | 1 | Nguyên tố | SFX/Combat | |
| sfx_freeze / _shatter | 2 | Nguyên tố | SFX/Combat | |
| sfx_shock_apply / _chain | 2 | Nguyên tố | SFX/Combat | |
| sfx_venom_apply | 1 | Nguyên tố | SFX/Combat | |
| sfx_bleed_apply / _burst | 2 | Nguyên tố | SFX/Combat | Xuất Huyết |
| sfx_hex_apply | 1 | Nguyên tố | SFX/Combat | |
| sfx_radiance_apply | 1 | Nguyên tố | SFX/Combat | |
| sfx_sunder_apply | 1 | Nguyên tố | SFX/Combat | |
| sfx_stun_apply | 1 | Nguyên tố | SFX/Combat | |
| sfx_burst_ |
6 | Nguyên tố | SFX/Combat | 6 nguyên tố |
| sfx_heal / _shield / _lifesteal | 3 | Nguyên tố | SFX/Combat | |
| sfx_tele_light | 1 | Địch | SFX/Enemy | hơi thở/rít (01 §11.3) |
| sfx_tele_heavy | 1 | Địch | SFX/Enemy | 'rèn' ngắn |
| sfx_tele_unblock | 1 | Địch | SFX/Enemy | 'boong' trầm |
| sfx_tele_proj | 1 | Địch | SFX/Enemy | lên dây |
| sfx_tele_area | 1 | Địch | SFX/Enemy | ù tăng dần |
| sfx_en_ |
16 | Địch | SFX/Enemy | 8 họ: xương, thịt, slime, côn trùng, hồn, kim loại, pha lê, thú |
| sfx_en_ |
16 | Địch | SFX/Enemy | 8 họ |
| sfx_en_ |
8 | Địch | SFX/Enemy | 8 họ |
| sfx_proj_ |
12 | Địch | SFX/Enemy | 6 loại đạn PJ |
| sfx_spawn_door / _wall / _ceiling | 3 | Địch | SFX/Enemy | 05 §4 |
| sfx_elite_spawn | 1 | Địch | SFX/Enemy | |
| sfx_warden_ |
30 | Thủ Vệ & Boss | SFX/Enemy | 10 × 3 |
| sfx_boss_ |
50 | Thủ Vệ & Boss | SFX/Enemy | 10 × 5 |
| amb_s01 … amb_s10 | 10 | Môi trường | Ambience | loop 30–45 s |
| amb_torch / amb_brazier / amb_lava / amb_crystal | 4 | Môi trường | Ambience | nguồn sáng loop |
| sfx_drip_[1-2] | 2 | Môi trường | Ambience | |
| amb_stair_wind | 1 | Môi trường | Ambience | trục thang |
| sfx_stair_step_[1-3] | 3 | Môi trường | SFX/Actor | đi xuống |
| sfx_stratum_gate | 1 | Môi trường | SFX/World | |
| sfx_wave_start | 1 | Nhịp run | SFX/World | kèn đá ngắn |
| sfx_floor_clear | 1 | Nhịp run | SFX/World | |
| sfx_descent_start | 1 | Nhịp run | SFX/World | |
| sfx_landing_arrive | 1 | Nhịp run | SFX/World | |
| sfx_merchant_buy | 1 | Nhịp run | SFX/UI | |
| sfx_mimic_reveal | 1 | Nhịp run | SFX/World | |
| sfx_chest_ |
4 | Nhịp run | SFX/UI | C/R/E/L |
| sfx_ember_pickup_[1-3] | 3 | Nhịp run | SFX/UI | |
| sfx_soul_ash_pickup | 1 | Nhịp run | SFX/UI | |
| sfx_downed_heart | 1 | Nhịp run | SFX/World | tim đập khi Gục |
| sfx_lantern_flicker | 1 | Nhịp run | SFX/World | |
| sfx_revive | 1 | Nhịp run | SFX/World | |
| sfx_boss_gate | 1 | Nhịp run | SFX/World | |
| sfx_echo_c / _r / _e / _l | 4 | Hồi Âm | SFX/UI | lật thẻ theo độ hiếm |
| sfx_echo_evo / _reso / _pact | 3 | Hồi Âm | SFX/UI | |
| sfx_card_hold | 1 | Hồi Âm | SFX/UI | nhấn giữ |
| sfx_card_pick | 1 | Hồi Âm | SFX/UI | chọn |
| sfx_reroll / _banish / _skip | 3 | Hồi Âm | SFX/UI | |
| sfx_route_new | 1 | Hồi Âm | SFX/UI | lộ trình mới ra mắt |
| ui_tap_[1-2] / ui_back / ui_tab | 4 | UI | UI | |
| ui_popup_open / _close | 2 | UI | UI | |
| ui_toggle / ui_slider / ui_confirm | 3 | UI | UI | |
| ui_error / ui_locked | 2 | UI | UI | rung nút khóa |
| ui_purchase_ok | 1 | UI | UI | |
| ui_reward_fly / _land | 2 | UI | UI | giữ–lóe–bay |
| ui_count_tick | 1 | UI | UI | đếm số |
| ui_level_up / ui_star_up / ui_mastery_up | 3 | UI | UI | |
| ui_feature_unlock | 1 | UI | UI | |
| ui_summon_pull / _reveal_r / _e / _l | 4 | UI | UI | |
| ui_relic_open / reveal[1-6] | 7 | UI | UI | 6 độ hiếm |
| ui_pass_claim / ui_spin_tick / ui_spin_stop | 3 | UI | UI | |
| ui_notify / ui_countdown | 2 | UI | UI | |
vo__[effort|hurt|win] |
24 | Giọng (không lời) | Voice | 8 anh hùng × 3 tiếng hô ngắn |
| Σ | 564 | 116 họ |
Hero signature: id sfx_<code>_<tên> = cột sfx trong hero_*.py (Kaito đã có 20 id); mỗi id 1–2 biến thể. Tên gắn với 01 §14.3: sfx_hit_light_[1-4], sfx_hit_med_[1-4], sfx_hit_heavy_[1-3], sfx_counter_[1-3], sfx_exec_<hero>, sfx_deflect_[1-5], sfx_block, sfx_clash; 06 §3: sfx_echo_*.
9.4 Thang cao độ phòng thủ
| Sự kiện | Âm | Cao độ |
|---|---|---|
| Gạt bậc chuỗi 1–5 | sfx_deflect_[1-5] (keng kim loại, tail 0.3 s) |
gốc = tonic Địa Tầng quãng 8 trên (S01 D6) +0…+4 bán cung (01 §5.6) |
| Gạt Hoàn Hảo | sfx_deflect_perfect |
tonic +7 (quãng 5), tail 0.6 s, kèm sub "thump" |
| Vào Dòng Chảy | sfx_flow_enter |
hợp âm trưởng của tonic + lyr_flow vào ô nhịp kế |
| Chặn | sfx_block_[1-3] |
không đổi cao độ (thịch trầm) |
| Né / Né Hoàn Hảo | sfx_evade_* |
không đổi; Hoàn Hảo kèm hút âm 0.4 s |
| Phản Đòn | sfx_counter_[1-3] |
luôn sau keng 1 tick, cao hơn keng 2 bán cung |
| Va Kiếm | sfx_clash_[1-2] + ricochet |
tonic −12 (trầm, nặng) |
Anh hùng riêng (vd kai_deflect) |
thay timbre, giữ đúng thang |
Runtime: pitch = 2^((keyOffset + step)/12) trên sample đã render sẵn, keyOffset ∈ [−6, +6] theo Địa Tầng → không méo quá ±0.6 quãng 8.
9.5 Mix
| Luật | Giá trị |
|---|---|
| Bus | Master → Music · SFX (Combat, Actor, Enemy, World, UI, Voice) · Ambience (SoundManager template) |
| Độ lớn | −16 LUFS tích hợp, true peak −1 dBTP (limiter master); nhạc thấp hơn SFX combat ~8 dB khi trận |
| Ducking | Tuyệt Sát/Tuyệt Kỹ: nhạc −8 dB 1.2 s; BossIntro: cắt nhạc, stinger; EchoPick: nhạc low-pass 800 Hz −4 dB (→ mus_descent); slow-mo: low-pass 1.2 kHz |
| Giới hạn voice | tổng 24; Combat 10; cùng id cách ≥ 30 ms, ≤ 4 bản; ưu tiên: phòng thủ > Tuyệt Sát > hit H/F > hit L/M > vụt > bước chân |
| Tốc độ x2/x3 | không đổi cao độ; x3 bỏ bước chân + vụt nhẹ (giữ mọi hit, phòng thủ) |
| Hit-stop | âm phát đúng contact, không dừng theo freeze |
| Biến thể | pitch ngẫu nhiên ±5% (trừ thang phòng thủ: chính xác), xoay vòng file không lặp liền |
| Định dạng | SFX Vorbis q0.5 mono 44.1 kHz, Decompress On Load (< 200 KB); nhạc/ambience stream Vorbis q0.6 stereo |
| Rung | 11 §9 |
10Tổng số asset
| Hạng mục | Số | Cách làm | Nguồn |
|---|---|---|---|
| Clip anh hùng (8) | 1,645 | body-sheet; §10 02 | pixelfx act |
| Khung duy nhất anh hùng | 8,783 | sau dedupe | R8 index |
| Clip địch thường (20 loại) | 356 | 12 người × 23 + 8 sinh vật × 10 | rig/critter |
| Clip Thủ Vệ + Boss | 416 | BS09 dùng sprite anh hùng | rig ×1.5–2.5 / module |
| VFX dùng lại / recolor (bảng) | 61 | render.mjs --sheet | pixelfx catalog |
| VFX re-author (270×480, bỏ thân dummy…) | 21 | nhánh deepstair | pixelfx |
| VFX mới chung (ds-fx / ds-ui / ds-screen) | 15 | AUTHORING method | pixelfx |
| VFX chữ ký anh hùng (≈ 12/anh hùng) | 252 | hero-/fx-* |
pixelfx |
| Bộ môi trường (10 Địa Tầng) | 220 | 3 parallax + room plate + tileset + 8 props + 3 nguồn sáng + 6 decal | Pillow + agy |
| Icon Hồi Âm riêng (động 8 khung) | 835 | echo-icon.mjs từ body-sheet | 0 AI |
| Icon Hồi Âm chung | ≈ 100 | pictogram 64×64; ELEM động từ pixelfx | Pillow → agy |
| Icon Di Vật / tiền tệ / vật phẩm | 24 + 22 | 32×32 ×4; khung độ hiếm bằng code | agy master + Pillow |
| Pictogram kit mới (16×16) | 34 | build_ui_pixel_kit.py | Pillow |
| Chân dung anh hùng / địch / Boss | 8×3 + 40 + 20 | render từ sprite | 0 AI |
| Chữ chiến đấu sprite (VI + EN) | 22 | GẠT!/HOÀN HẢO!/CHẶN/NÉ/PHẢN!/VA KIẾM!/MISS/VỠ THẾ/… | Pillow |
| Nhạc (track + stinger) | 35 | stem: base/combat/style | §8 12 |
| SFX (file) | 564 | Freesound CC0/CC-BY + tự làm | §9 12 |
| Store | icon ×3 A/B, feature 1, screenshot 8 × 3 cỡ, video 30 s | agy + quay game |
11QA
- [ ] Mọi sprite/icon/nền: 1 cỡ pixel, viền ink kín, màu thuộc
PAL/token hub; contact sheet NEAREST ×4 quaart-style-reviewer=pass. - [ ] Không asset nào lấy từ thư mục template cartoon; không font PatchPixel.
- [ ] Mỗi Địa Tầng: ánh môi trường đúng bảng §2; nhân vật L* cao hơn nền ≥ 15 (đo ảnh chụp).
- [ ] Địch không dùng màu chữ ký anh hùng làm màu chính; Tinh Anh viền đúng affix.
- [ ] VFX: mỗi dòng bảng §6 có sheet,
check.mjssạch, sáng/màu tách; Low tier không nạp trang sáng. - [ ] Âm: mỗi hit có âm đúng tick; thang Gạt đúng cao độ theo Địa Tầng; ≤ 24 voice; −16 LUFS.
- [ ] Giấy phép: mọi SFX CC-BY có dòng Credits; chứng từ nhạc trong
Docs/Licenses/. - [ ] Store: icon đọc được ở 48 px; screenshot không chữ bake (dải chú thích localize).