1Định danh & tiểu sử
- Danh hiệu
- Trưởng Phường Kèn
- Vũ khí
- kèn đưa tang (kèn dăm kép thân gỗ mun, loa đồng xỉn)
- Nhóm vai
RHYTHM_SUMMON— nhịp, phường triệu hồi- Độ khó
- 5/5
- Mở khoá
END_BELL_TOLL· Đạt kết END_BELL_TOLL hoặc END_ASH_CROWN (hạ BS_FINAL ở STANDARD), rồi trả 16 Mảnh Vọng ở ST_FORGE cho Lão Grem. · Mảnh Vang: 16- Mốc
- 1.0 14.99 USD MS07
- Verb tag
- Combo COMBO · Lướt DASH · Đáp ANSWER · Phản COUNTER · Kỹ năng SKILL · Tài nguyên: Nhịp RES:BEAT
Trục độ khó (doc 12 §4, 0–2)
Tiểu sử
Chưa tới hai mươi đã cầm trịch Phường Kèn, thổi tiễn trăm đám chưa lạc một phách. Đêm Câm nuốt cả phường; anh chết ôm kèn, chỉ thức khi Đại Chuông ngân lần đầu. Phường giờ là bóng ma, chỉ hiện khi anh giữ đúng nhịp. Lắm lời, hay cười, sợ im lặng hơn sợ chết. Bodan khiêng quan, Ambrin thổi: hai người đã tiễn nửa xứ. Dov là đứa duy nhất dám thi ồn với anh. Calla nói tiếng kèn của anh làm đò nổi. "Người chết không đi một mình. Có phường tôi." "Lạc một phách thì đứng dậy, thổi lại từ phách một."
Câu nói
Ghi chú lệch có chủ đích
2026-11-07 — lệch/giả định so với brief doc 12 §11.12 (ghi để duyệt): (1) Thưởng đúng phách ×1.3 sát thương cho cú combo/khúc (lãnh thổ rhythm_window) — coef brief 1.0/2.5–3.5 với máy nhịp cố định 2 cú/s chỉ cho 2.75 coef/s; ×1.3 + Phường trung vị đưa kit ST 56.4 (59 −4%), HD 737 (683 +8%) [ASSUMED Phường trung vị: Trống luôn, Chũm Chọe 70%, Cờ Phướn 40%, Kèn Phụ 25%]. (2) COMBO_A = Phách 1–3 + Khúc Dồn (finisher); 5 khúc còn lại slot HEAVY (owner_ref H12_FIN_DON), cùng luật đòn kết phách 4. Ô nhịp thay luật reset 27 tick: khúc giữ tới hết phách 4. (3) Cờ Phướn/UL3 'tốc đánh' nhân vào coef (máy nhịp không đổi tốc). Cú tự nối khi giữ Đánh: ×1.0, +0 Nhịp, không phạt. (4) Kèn Phụ ngoài +50 Dư Âm còn thổi LINE 160 × 16 0.6 coef ở phách 2 và 4; Kèn Phụ ngân lại cần ≥ 40 cú đúng phách [ASSUMED] để giữ Dư Âm 45–55 s. (5) Nốt Ngân theo Bible §5.1 / DEC-2026-11-07-10 (canon thắng doc 11): vòng r60 giữ đạn Y đứng yên (≤ 6; viên thứ 7 đẩy viên cũ nhất phóng sớm), phách kế (≤ 0.5 s) phóng ra thành nốt ×1.0 [ASSUMED] theo hướng ngắm; không % chậm (bỏ bản chậm 50% trùng H04 Kẻ Vòng); không giữ đạn tím; hold_key hold.held_note, defense_effect CATCH_RELEASE (doc 12 §10.3b) ghi trong defense.hold.params vì schema chưa có field riêng. 2026-11-07 - defense.hold.mechanic = CATCH (enum hero.schema đã thêm CATCH theo DEC-2026-11-07-10); bỏ placeholder STANCE + params.mechanic_canon. H12_SK04 đổi thành hoá nốt tức thì về kẻ bắn để không lặp verb giữ (Bible #38). (6) Thêm để vào dải ngân sách doc 17 §4.2: SK01 STS_DREAD 1.5 s + dạt 16 px (1.02); SK02 phách 4 nốt trầm vỡ r40 1.2 + STS_SHOCK (1.08; cơ cấu CLEAR chỉ 43% từ aoe ≥ 1.6 vì đạn xuyên 1 theo brief — VÀNG cơ cấu); SK03 3.0 coef + STS_DREAD (0.91); SK04 vòng bám r80 chậm 25% + nổ 2.0 + nốt trả ×1.5 sàn 2.2 coef về kẻ bắn (0.84 XANH ở 6 đạn hoá nốt; R2 0.90; R3 1.20 tính STS_DREAD lên 3 kẻ bắn; giá trị phụ thuộc đạn địch, 0 đạn còn vòng chậm + nổ 0.27); SK05 1.0/1.2/1.4 + 9.6 (0.85); SK06 3 nhịp dội 2.5 r72 (0.84; vai DUEL nhưng aoe 2.0 — thủ vùng theo brief); SK07 dậm r40 1.5 khi Lướt đúng phách (0.84); SK08 nhạc công hạ xuống r64 2.0 (0.92, đời Trống 16 s). 1 Nhịp ≈ 0.6 coef-tương-đương [ASSUMED]. (7) UL1 DE 97.0 (sóng 40.4 + Phường ×2 25 s còn lại phòng 56.6) — cơ cấu ≥ 60% aoe ≥ 2.0 chỉ đạt ~45%: lý do brief đặt giá trị chính ở Phường ×2; UL2 thêm 7 phách 6.0 coef tăng dần để đạt sàn đơn mục tiêu ≥ 55 (77.3) → DE 84.5; UL2 nhịp phách 13 tick (8 phách trong 1.8 s); 2026-11-07 - UL1 sóng cách 26 tick (tick 16/42/68/94, 16 + 4 × 26 = 120) thay vì 30 tick theo phách 120 BPM để 4 sóng nằm trong clip 2.0 s; mọi move UL1/UL2 có clip chạy tới hết Ult và invuln_ticks phủ cả clip ([0,120] / [0,108]) theo doc 10 Q10, doc 12 §2.5 (INV-11); UL3 thêm hợp âm phách 4 RING r120 4.0 × 5 → DE 99.2. (8) Mã Then Chốt/EVO trong vfx_list (E37 funeral_escort, E38 band_echo, E39 last_call, E40 eternal_wake, EVO1 grand_drum, EVO2 thunder_cymbal, EVO3 white_banner, EVO4 awaken) là slug đặt trước cho agent nâng cấp. (9) music_stem schema nhận 1 id: ghi MUS_b1_grave_hill_h12; 3 bộ còn lại (MUS_b2_shroud_marsh_h12, MUS_b3_mute_foundry_h12, MUS_b4_hanging_city_h12) chọn theo biome. (10) 2026-11-07 - SK06 cd 11, SK08 cd 12 ngoài dải nhóm doc 17 §4.2 (tay đôi 5–8 / nhịp độ 3–8; doc 12 §2.4 7–10 / 4–8): SK06 Vòng Tang Ca là vùng DR_ZONE −25% chia cho cả Phường, cd 11 giữ thời gian phủ ≤ 55% (6 s / 11 s) để vòng không thành chỗ đứng mãi; SK08 Gọi Phường giá trị chính là nhảy Nhịp lên mốc kế (gọi ngay 1 nhạc công, ~19.6 coef-tương-đương với Trống sống 16 s), cd 8 làm Phường luôn đủ mà không cần đánh đúng phách (phá bài kiểm nhịp) và tỉ lệ lên ~1.58 ĐỎ; DE giữ ở cd hiện tại: SK06 0.84, SK08 0.92. (11) 2026-11-07 - visual.clips đồng bộ số frame/hit với av/H12__actor_sfx.json (AV thắng: nguồn sản xuất sprite); band_drum_play hit f8. Mastery: bỏ MR13/MR14/MR17/MR19 (id mỹ phẩm chưa định nghĩa trong canon), MR20 chỉ còn SKN_H12_4; danh hiệu MR20 giữ ở title_mr20_vi.
2Hình ảnh & bảng màu
- Màu slot
- #2ec0e8 hue 192°
- Vòng chân
- #2ec0e8 r 12 px
- Sprite
- 37 px cao
- Chân dung
- bust 128/128 · body 192/192 · viền #66e6ff
- Trang phục pixelfx
Tools/pixelfx/src/fx/heroes/_ambrin.js
Skin
Clip hoạt ảnh (44) — số khung
| Clip | Khung | Lặp | Khung trúng | Hướng |
|---|---|---|---|---|
| idle | 48 | có | — | 5+3 |
| run | 18 | có | — | 5+3 |
| dash | 10 | — | — | 5+3 |
| attack1 | 30 | — | 8 | 5+3 |
| attack2 | 30 | — | 8 | 5+3 |
| attack3 | 30 | — | 8 | 5+3 |
| attack4 | 36 | — | 12 | 5+3 |
| attack5 | 36 | — | 12 | 5+3 |
| attack6 | 36 | — | 11 | 5+3 |
| dash_attack | 28 | — | 6 | 5+3 |
| answer | 12 | — | 1 | 5+3 |
| answer_hit | 18 | — | 3 | 5+3 |
| hold_in | 9 | — | — | 5+3 |
| hold_loop | 18 | có | — | 5+3 |
| hold_out | 8 | — | — | 5+3 |
| counter | 30 | — | 5 | 5+3 |
| sk01 | 40 | — | 10 | 5+3 |
| sk02 | 60 | có | 6 | 5+3 |
| sk03 | 36 | — | 9 | 5+3 |
| sk04 | 45 | có | 8 | 5+3 |
| sk05 | 40 | — | 10 | 5+3 |
| sk06 | 36 | — | 9 | 5+3 |
| sk07 | 30 | — | 6 | 5+3 |
| sk08 | 36 | — | 12 | 5+3 |
| ul1 | 60 | — | 8/23/38/53 | 5+3 |
| ul2 | 54 | — | 5/11/18/24/31/37/44/50 | 5+3 |
| ul3 | 30 | — | 14 | 5+3 |
| hurt | 10 | — | — | 5+3 |
| broken | 27 | có | — | 5+3 |
| death | 60 | — | — | 5+3 |
| revive | 36 | — | — | 5+3 |
| wake | 30 | — | — | 5+3 |
| victory | 45 | — | — | 5+3 |
| victory_idle | 36 | có | — | 5+3 |
| hub_idle | 60 | có | — | 5+3 |
| select | 48 | có | — | 1 |
| as2_fin | 36 | — | 11 | 5+3 |
| as3_fin | 36 | — | 11 | 5+3 |
| band_drum_play | 15 | có | 8 | 5+3 |
| band_cymbal_clash | 18 | — | 8 | 5+3 |
| band_flag_wave | 15 | có | — | 5+3 |
| band_horn_blow | 24 | có | 8 | 5+3 |
| band_arrive | 18 | — | — | 1 |
| band_vanish | 12 | — | — | 1 |
3Chỉ số & khung vai trò
| Chỉ số | Tên | Giá trị | Đơn vị | So max roster | Roster min–max | Nhóm min–max |
|---|---|---|---|---|---|---|
HP_MAX | HP tối đa | 115 | HP | 115 | 100 – 160 | 115 – 115 |
MOVE_SPEED | Tốc chạy | 138 | px sàn/s | 138 | 130 – 145 | 138 – 138 |
ACCEL_TIME | Thời gian tăng/giảm tốc | 0.06 | s | 0.06 | 0.06 – 0.06 | 0.06 – 0.06 |
POWER | Lực | 10 | điểm | 10 | 10 – 10 | 10 – 10 |
DMG_INC | Sát thương | 0 | +% | 0 | 0 – 0 | 0 – 0 |
ATK_SPEED | Tốc đánh | 1 | × | 1 | 1 – 1 | 1 – 1 |
CRIT_CHANCE | Tỉ lệ chí mạng | 5 | % | 5 | 5 – 5 | 5 – 5 |
CRIT_MULT | Hệ số chí mạng | 2 | × | 2 | 2 – 2 | 2 – 2 |
AREA | Cỡ vùng | 1 | × bán kính | 1 | 1 – 1 | 1 – 1 |
PROJ_SPEED | Tốc đạn hero | 1 | × | 1 | 1 – 1 | 1 – 1 |
DURATION | Thời lượng hiệu ứng hero (vùng, triệu hồi, buff) | 1 | × | 1 | 1 – 1 | 1 – 1 |
CDR | Giảm thời gian hồi chiêu kỹ năng | 0 | % | 0 | 0 – 0 | 0 – 0 |
DASH_CHARGES | Lượt Lướt | 2 | lượt | 2 | 2 – 2 | 2 – 2 |
DASH_RECHARGE | Nạp 1 lượt Lướt | 0.7 | s | 0.7 | 0.7 – 0.7 | 0.7 – 0.7 |
ANSWER_WINDOW | Cửa sổ ĐÁP | 0.16 | s | 0.16 | 0.15 – 0.18 | 0.16 – 0.16 |
POISE_MAX | Thế hero | 100 | điểm | 100 | 100 – 100 | 100 – 100 |
POISE_REGEN | Hồi Thế | 40 | điểm/s | 40 | 40 – 40 | 40 – 40 |
DR | Giảm sát thương nhận | 0 | % | 0 | 0 – 0 | 0 – 0 |
ELITE_DMG | Sát thương lên M/L/XL | 0 | +% | 0 | 0 – 0 | 0 – 0 |
STATUS_POWER | Uy lực trạng thái (sát thương DoT + số của trạng thái hero gây) | 0 | +% | 0 | 0 – 0 | 0 – 0 |
HEAL_MULT | Hệ số hồi phục HP | 1 | × | 1 | 1 – 1 | 1 – 1 |
PICKUP_R | Bán kính hút XP/cầu máu | 50 | px | 50 | 50 – 50 | 50 – 50 |
ULT_GAIN | Hệ số nạp Dư Âm | 1 | × | 1 | 1 – 1 | 1 – 1 |
RES_GAIN | Hệ số nạp tài nguyên hero | 1 | × | 1 | 1 – 1 | 1 – 1 |
KNOCKBACK | Lực đẩy | 1 | × | 1 | 1 – 1 | 1 – 1 |
SHIELD_CAP | Trần khiên | 50 | % HP tối đa | 50 | 50 – 50 | 50 – 50 |
dash_px | — | 80 | — | 80 | 72 – 90 | 80 – 80 |
4Tài nguyên & nội tại
- Tài nguyên
- Nhịp BEAT · kiểu
CLOCK - Khoảng
- 0 – 16 (bắt đầu 0)
- Suy giảm
- sau 2 s: −2/s, sàn 0
- Khi trúng đòn
- −2
- ĐÁP
- 2
- Né hoàn hảo
- 1
- Sự kiện đầy
- res_full
- HUD
- CLOCK · HUD_BOTTOM_LEFT_BESIDE_HP
- Liên kết Dư Âm
- Kèn Phụ ngân +50 Dư Âm: lần đầu trong run khi Nhịp chạm 16; sau đó mỗi khi Nhịp = 16 và đã có ≥ 40 cú đúng phách kể từ lần ngân trước (bộ đếm giữ qua phòng). Cộng chung: ĐÁP +4, Né Hoàn Hảo +4. Nhảy Nhịp bằng H12_SK08 không kích ngân.
| Sự kiện | Lượng | Trần/s | Ghi chú |
|---|---|---|---|
| attack | 1 | 2 | Mỗi cú combo/khúc trúng ≥ 1 mục tiêu và được bấm đúng phách ±0.12 s (Thương Xót ±0.16 s; đo theo đồng hồ DSP lúc bấm, sau hiệu chỉnh trễ). Cú tự nối khi giữ Đánh: +0, không chia đôi. |
| dash_attack | 1 | 2 | Kèn Lướt Rước bấm đúng phách. |
| answer | 2 | — | Thổi Dội đúng phách +2, lệch phách +1; ĐÁP không bao giờ chia đôi Nhịp. |
| answer_proj | 2 | — | Như ĐÁP cận chiến: đúng phách +2, lệch +1. |
| perfect_dodge | 1 | — | Né Hoàn Hảo +1 (doc 11 §3.1). |
Tiêu
| Hành động | Giá | Thiếu vẫn dùng | Ghi chú |
|---|---|---|---|
| OFFBEAT_HIT | 0 | có | Cú combo/khúc bấm lệch phách: Nhịp = floor(Nhịp / 2) (AS2 đổi thành −2). Cú vẫn ra đủ sát thương. |
| Hợp Âm Thu H12_SK04 | 2 | không | Hợp Âm Thu: thiếu 2 Nhịp → kỹ năng bị từ chối. |
| Vòng Tang Ca H12_SK06 | 4 | không | Vòng Tang Ca: thiếu 4 Nhịp → kỹ năng bị từ chối. |
Trạng thái theo ngưỡng
Trống Sóng ≥ 4
Chũm Chọe ≥ 8
Cờ Phướn ≥ 12
Nội tại: Phường Theo Nhịp
5Phòng thủ: ĐÁP · Giữ · Phản · Lướt
ĐÁP: Thổi Dội
Kết quả chung (S choáng 1.0 s + đẩy; M −45 / L −40 / XL −35 Thế) + sóng âm r44 đẩy mọi S trong vòng 30 px; mở Phản 1.0 s.
Đạn Y dội ngược theo hướng tâm Ambrin → ra ngoài, thành đạn của Ambrin ×2 sát thương gốc, không bẻ hướng; không mở Phản.
Bấm đúng phách: cửa sổ 0.20 s (12 tick, Thương Xót kẹp 0.24 s) và ô phách đó được tính là nốt ♪ cho khúc của ô nhịp (Thổi Dội ở phách 4 kích luôn đòn kết khúc); +2 Nhịp đúng phách / +1 lệch.
- window_s
- 0.16
- res_gain
- 2
- needs_resource
- không
Giữ: Nốt Ngân
Không tốn Thế, không tốn Nhịp; giữ tối đa 4.0 s (8 phách); hồi 0.5 s sau khi thả; Đánh/Lướt/kỹ năng huỷ ngay (đạn đang giữ phóng hết theo hướng ngắm lúc huỷ).
Đòn tím trúng thường (Nốt Ngân không chặn/giảm sát thương nên không Vỡ Thế); đạn tím đi xuyên vòng, không bị giữ.
- mechanic
- CATCH
- armor_tier
- NONE
- move_mult
- 0.6
- max_s
- 4
- cooldown_s
- 0.5
Lướt
- dash_px
- 80
- anim
- dash
- afterimage
- có
- trail_vfx
- VFX_H12_dash_trail
Ghi đè input (input_override)
- attack_hold_ticks
- 12
- attack_hold_action
- AUTO_CHAIN
- aim_rotate_max
- 720
- rhythm_clock
- có
- Kiểu bấm kỹ năng
- H12_SK01
TAP· H12_SK02TAP· H12_SK03TAP· H12_SK04TAP· H12_SK05TAP· H12_SK06TAP· H12_SK07TAP· H12_SK08TAP
6Bộ đòn & frame data
| Đòn | Slot | Khởi t | Hiệu lực t | Hồi t | Tổng s | Coef | Lớp đòn | Hitbox | Mục tiêu | Thế | Hitstop s | Trauma | Giáp | Huỷ vào | Cờ | Ghi chú |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Phách Một H12_BEAT_1 | COMBO_A | 4 | 4 | 14 | 0.367 | 1 | LIGHT | ARC r 56 arc 120 | 48 | 6 | 0.035 | 0 | NONE | COMBO_A@22/HEAVY@22 | — | Thổi một hơi ngắn, sóng âm cung 120° r56 trước mặt. Bấm trong ±0.12 s quanh phách 1 của ô nhịp: ×1.3 sát thương, +1 Nhịp; lệch: ×1.0, Nhịp chia đôi (làm tròn xuống). Phách nghỉ (không bấm) không phạt; cú lệch được gán vào phách gần nhất để xác định khúc. |
| Phách Hai H12_BEAT_2 | COMBO_A | 4 | 4 | 14 | 0.367 | 1 | LIGHT | ARC r 56 arc 120 | 48 | 6 | 0.035 | 0 | NONE | COMBO_A@22/HEAVY@22 | — | Thổi một hơi ngắn, sóng âm cung 120° r56 trước mặt. Bấm trong ±0.12 s quanh phách 2 của ô nhịp: ×1.3 sát thương, +1 Nhịp; lệch: ×1.0, Nhịp chia đôi (làm tròn xuống). Phách nghỉ (không bấm) không phạt; cú lệch được gán vào phách gần nhất để xác định khúc. |
| Phách Ba H12_BEAT_3 | COMBO_A | 4 | 4 | 14 | 0.367 | 1 | LIGHT | ARC r 56 arc 120 | 48 | 6 | 0.035 | 0 | NONE | COMBO_A@22/HEAVY@22 | — | Thổi một hơi ngắn, sóng âm cung 120° r56 trước mặt. Bấm trong ±0.12 s quanh phách 3 của ô nhịp: ×1.3 sát thương, +1 Nhịp; lệch: ×1.0, Nhịp chia đôi (làm tròn xuống). Phách nghỉ (không bấm) không phạt; cú lệch được gán vào phách gần nhất để xác định khúc. |
| Khúc Dồn H12_FIN_DON | COMBO_A | 8 | 4 | 18 | 0.5 | 2.5 | HEAVY | RING r 80 r_in 64 band 16 | 48 | 25 | 0.07 | 0.28 | NONE | COMBO_A@23 | shieldbreak/finisher | Khúc Khúc Dồn (♪ ♪ ♪ ♪). Bốn phách liền: Ambrin xoay một vòng thổi dài, vòng âm RING r80 (dày 16) nổ quanh thân; S trúng văng 24 px ra ngoài. Đòn kết phách 4 = HEAVY, shieldbreak; đúng phách ×1.3. |
| Khúc Hụt Hơi H12_FIN_HUT | HEAVY | 8 | 4 | 18 | 0.5 | 3.5 | HEAVY | LINE len 160 w 24 p0 0/0 p1 160/0 | 48 | 25 | 0.07 | 0.28 | NONE | COMBO_A@23 | shieldbreak/finisher/pierce | Khúc Khúc Hụt Hơi (♪ ♪ — ♪). Nghỉ phách 3 để lấy hơi: phách 4 thổi thẳng một luồng LINE 160 × 24 xuyên mọi mục tiêu. Đòn kết phách 4 = HEAVY, shieldbreak; đúng phách ×1.3. |
| Khúc Vấp H12_FIN_VAP | HEAVY | 8 | 4 | 18 | 0.5 | 3 | HEAVY | CIRCLE r 64 | 48 | 25 | 0.07 | 0.28 | NONE | COMBO_A@23 | shieldbreak/finisher | Khúc Khúc Vấp (♪ — ♪ ♪). Nhịp vấp: dậm chân + thổi xuống đất, CIRCLE r64 quanh thân, đẩy S 40 px. Đòn kết phách 4 = HEAVY, shieldbreak; đúng phách ×1.3. |
| Khúc Muộn H12_FIN_MUON | HEAVY | 8 | 4 | 18 | 0.5 | 3 | HEAVY | ARC r 72 arc 200 | 48 | 25 | 0.07 | 0.28 | NONE | COMBO_A@23 | shieldbreak/finisher | Khúc Khúc Muộn (— ♪ ♪ ♪). Vào muộn một phách: phách 4 quét kèn nửa vòng ARC 200° r72. Đòn kết phách 4 = HEAVY, shieldbreak; đúng phách ×1.3. |
| Khúc Chờ H12_FIN_CHO | HEAVY | 8 | 4 | 18 | 0.5 | 3 | HEAVY | LINE len 240 w 32 p0 0/0 p1 240/0 | 48 | 30 | 0.07 | 0.28 | NONE | COMBO_A@23 | shieldbreak/finisher/pierce | Khúc Khúc Chờ (♪ — — ♪). Hai phách nghỉ nén hơi: LINE 240 × 32 xuyên, coef ×(1 + 0.25 × số phách nghỉ) = ×1.5 → 4.5. Đòn kết phách 4 = HEAVY, shieldbreak; đúng phách ×1.3. |
| Khúc Lẻ H12_FIN_LE | HEAVY | 8 | 4 | 18 | 0.5 | 2.8 | HEAVY | ARC r 64 arc 90 | 48 | 25 | 0.07 | 0.28 | NONE | COMBO_A@23 | shieldbreak/finisher | Khúc Khúc Lẻ (— ♪ — ♪). Phách lẻ: thổi trước rồi quặt kèn ra sau, 2 ARC 90° r64 (trước + sau), mỗi mục tiêu trúng 1 lần. Đòn kết phách 4 = HEAVY, shieldbreak; đúng phách ×1.3. |
| Bước Đưa Tang H12_DASH | DASH | 0 | 9 | 3 | 0.2 | 0 | LIGHT | NONE | 48 | 0 | 0 | 0 | NONE | — | — | Lướt chung INV-12: 80 px / 9 tick, bất tử 12 tick, 2 lượt nạp tuần tự 42 tick; Ambrin lướt thấp, khăn tang bay ngược. Né Hoàn Hảo +1 Nhịp. Lướt KHÔNG làm lệch phách (máy nhịp vẫn chạy). |
| Kèn Lướt Rước H12_DASH_ATTACK | DASH_ATTACK | 3 | 4 | 12 | 0.317 | 1.2 | LIGHT | ARC r 48 arc 180 | 48 | 8 | 0.04 | 0.12 | NONE | COMBO_A@19 | atk_speed_scales | Đánh trong 9 tick cuối Lướt/≤ 9 tick sau: quét kèn ARC 180° r48 khi trượt tới. Tính là phách đang tới của ô nhịp (đúng phách +1 Nhịp, ×1.3) — Lướt vào phách 1 rồi đánh = mở khúc. |
| Thổi Dội H12_ANSWER | ANSWER | 0 | 10 | 9 | 0.317 | 1 | ANSWER | CIRCLE r 44 | 48 | 0 | 0.08 | 0.25 | NONE | — | — | Cửa sổ 10 tick (đúng phách 12 tick): một tiếng kèn cụt, sóng âm CIRCLE r44 quanh thân. Cận chiến: kết quả chung + đẩy S 30 px, mở Phản. Đạn Y: dội ra ngoài theo hướng tâm → đạn, ×2 sát thương gốc. +2 Nhịp đúng phách / +1 lệch. |
| Nốt Ngân H12_HOLD | HOLD | 9 | 240 | 8 | 4.283 | 0 | LIGHT | CIRCLE r 60 | 128 | 0 | 0 | 0 | NONE | — | — | hold_in 9 tick → ngân một nốt dài, vòng âm r60 bám thân: đạn Y chạm vòng đứng yên trong vòng (≤ 6 viên; viên thứ 7 đẩy viên cũ nhất phóng sớm); phách kế (≤ 0.5 s ở 120 BPM) mỗi viên phóng ra thành nốt của Ambrin theo hướng ngắm, sát thương = gốc viên đạn ×1.0 [ASSUMED] (VFX_H12_note_bolt). Không % chậm; đạn tím đi xuyên, không bị giữ; không chặn cận chiến. Nhịp không giảm, ô nhịp bị khoá (vị trí phách giữ nguyên tới khi thả). Tối đa 240 tick; thả → hold_out 8 tick, đạn còn giữ phóng hết. |
| Hồi Kèn Tiễn H12_COUNTER | COUNTER | 6 | 5 | 18 | 0.483 | 18 | COUNTER | LINE len 140 w 40 p0 0/0 p1 140/0 | 48 | 30 | 0.12 | 0.45 | NONE | — | shieldbreak/pierce | Trong 60 tick sau Thổi Dội cận chiến: bước 24 px, chĩa loa thẳng, thổi hồi kèn tiễn LINE 140 × 40 xuyên; coef 18 = 180 ở POWER 10, −30 Thế, bất tử từ input tới hết active. |
| Trống Sóng H12_BAND_DRUM | PASSIVE | 0 | 3 | 27 | 0.5 | 1 | SKILL | CIRCLE r 60 | 48 | 4 | 0 | 0.1 | NONE | — | — | Nhạc công Trống (Nhịp ≥ 4): đúng phách 4 mỗi ô nhịp nện trống, sóng CIRCLE r60 tâm Ambrin, đẩy S 16 px. |
| Chũm Chọe Xoảng H12_BAND_CYMBAL | PASSIVE | 0 | 3 | 21 | 0.4 | 0.8 | SKILL | CIRCLE r 90 | 48 | 15 | 0 | 0.12 | NONE | — | — | Nhạc công Chũm Chọe (Nhịp ≥ 8): mỗi 8 phách xoảng một tiếng, CIRCLE r90 tâm Ambrin: choáng S 1.0 s / M 0.4 s; L/XL −15 Thế. |
| Kèn Phụ Họa H12_BAND_HORN | PASSIVE | 0 | 4 | 26 | 0.5 | 0.6 | SKILL | LINE len 160 w 16 p0 0/0 p1 160/0 | 48 | 2 | 0 | 0 | NONE | — | pierce | Nhạc công Kèn Phụ (Nhịp 16): phách 2 và 4 thổi LINE 160 × 16 xuyên về quái gần nhất trong 240 px. |
| Đám Rước H12_SK01_MARCH | SKILL | 10 | 60 | 10 | 1.333 | 1.5 | SKILL | RECT len 240 w 48 | 48 | 8 | 0.03 | 0.15 | NONE | COMBO_A@20/SKILL@20 | — | Thổi hiệu rước (Ambrin rảnh từ tick 20): cả Phường xếp hàng một, thiếu bao nhiêu thì bù bấy nhiêu bóng tạm (lõi 40% alpha) cho đủ 4, diễu thẳng 240 px theo hướng ngắm trong 2 phách; mỗi thành viên đi qua gây 1.5 coef + đẩy dạt 16 px sang 2 bên, S dính STS_DREAD 1.5 s; xong diễu thành viên thật quay về vòng r48, bóng tạm tan. |
| Tấu Khúc Bay H12_SK02_VOLLEY | SKILL | 6 | 4 | 20 | 0.5 | 1 | SKILL | LINE len 260 w 8 p0 0/0 p1 260/0 | 48 | 0 | 0.02 | 0.05 | NONE | — | pierce | Tấu 4 phách (120 tick, đi ×0.7): mỗi phách thổi 3 giọt nốt song song (cách 12 px) thẳng hướng ngắm, tầm 260, tốc 520 px/s, xuyên 1; mục tiêu trúng lần đầu dính STS_SHOCK. |
| Nốt Trầm Vỡ H12_SK02_LOW | SKILL | 6 | 4 | 20 | 0.5 | 1.2 | SKILL | CIRCLE r 40 | 48 | 6 | 0.04 | 0.12 | NONE | — | — | Phách 4: 3 nốt là nốt trầm, vỡ CIRCLE r40 coef 1.2 ở mục tiêu đầu hoặc cuối tầm. |
| Kèn Xua H12_SK03_BLAST | SKILL | 9 | 5 | 16 | 0.5 | 3 | SKILL | RECT len 200 w 96 | 48 | 30 | 0.06 | 0.25 | NONE | COMBO_A@19/SKILL@19 | — | Chĩa loa thổi một hồi xua đuổi: sóng RECT 200 × 96 trước mặt, đẩy mọi S 80 px ra xa, STS_DREAD 1.5 s; bấm đúng phách: S khựng thêm 0.6 s sau khi bị đẩy. M/L/XL −30 Thế. |
| Hợp Âm Thu H12_SK04_CHORD | SKILL | 8 | 120 | 10 | 2.3 | 2 | SKILL | CIRCLE r 80 | 128 | 0 | 0 | 0.05 | NONE | COMBO_A@18/SKILL@18 | — | Thổi một hợp âm vang: vòng r80 bám thân Ambrin 2 s; đạn Y chạm vòng lập tức hoá nốt bay ngược về kẻ bắn (không giữ, không cần phách; trần 12 nốt, thừa thì đi tiếp), quái trong vòng chậm 25%; đạn tím đi xuyên. Hết giờ vòng nổ CIRCLE r80 2.0 coef. |
| Nốt Trả H12_SK04_RELEASE | SKILL | 0 | 6 | 14 | 0.333 | 2.2 | SKILL | LINE len 320 w 12 p0 0/0 p1 320/0 | 1 | 0 | 0.03 | 0.15 | NONE | — | — | Mỗi đạn Y chạm vòng Hợp Âm Thu hoá ngay 1 nốt bay ngược đuổi kẻ bắn (tầm 320, 600 px/s), sát thương = gốc viên đạn ×1.5 (sàn 2.2 coef), không xuyên; kẻ bắn đã chết → nốt bay thẳng ngược hướng tới. Hạng III: kẻ bắn trúng nốt bị STS_DREAD 1.5 s. |
| Cao Trào — phách dồn H12_SK05_BEAT | SKILL | 4 | 3 | 23 | 0.5 | 1 | SKILL | LINE len 72 w 24 p0 0/0 p1 72/0 | 1 | 10 | 0.04 | 0.1 | NONE | — | — | Khoá 1 mục tiêu trong 120 px, áp sát ≤ 48 px; phách 1–3 mỗi cú 1.0 coef × (1 + cộng dồn); mỗi cú đúng phách +20% cộng dồn, cú lệch xoá cộng dồn. |
| Cao Trào — phách chốt H12_SK05_FINAL | SKILL | 8 | 4 | 18 | 0.5 | 6 | SKILL | LINE len 96 w 32 p0 0/0 p1 96/0 | 1 | 30 | 0.1 | 0.4 | NONE | — | shieldbreak/finisher | Phách 4: một nốt cao chót vót xuyên mục tiêu, 6.0 coef × (1 + cộng dồn ≤ 0.6) = tối đa 9.6; shieldbreak, −30 Thế. |
| Vòng Tang Ca H12_SK06_RING | SKILL | 10 | 360 | 12 | 6.367 | 2.5 | SKILL | CIRCLE r 72 | 48 | 10 | 0.03 | 0.1 | NONE | COMBO_A@22/SKILL@22 | — | Cắm cờ tang, hát một khúc tang ca: vòng r72 cố định 6 s; Ambrin và nhạc công đứng trong vòng −25% sát thương nhận, Thế Ambrin hồi ×2; mỗi phách 4 vòng dội 2.5 coef lên quái trong vòng (3 lần). |
| Nhịp Bước Tang H12_SK07_STEP | SKILL | 4 | 120 | 6 | 2.167 | 0 | SKILL | NONE | 48 | 0 | 0 | 0 | NONE | COMBO_A@4/SKILL@4 | — | 4 phách (120 tick) bước theo nhịp trống: +35% tốc chạy (trần ×1.40); mỗi Lướt bắt đầu đúng phách +2 Nhịp. |
| Bước Dậm Tang H12_SK07_FOOTFALL | SKILL | 0 | 3 | 0 | 0.05 | 1.5 | SKILL | CIRCLE r 40 | 48 | 4 | 0.02 | 0.08 | NONE | — | — | Lướt đúng phách trong Nhịp Bước Tang: điểm dừng dậm CIRCLE r40 1.5 coef, đẩy S 12 px (tối đa 2 lần/lượt). |
| Gọi Phường H12_SK08_CALL | SKILL | 12 | 4 | 14 | 0.5 | 2 | SKILL | CIRCLE r 64 | 48 | 10 | 0.05 | 0.2 | NONE | COMBO_A@16/SKILL@16 | — | Thổi hiệu gọi phường: Nhịp nhảy ngay lên mốc kế (4/8/12/16), nhạc công của mốc đó hiện tức thì, hạ xuống tạo CIRCLE r64 2.0 coef đẩy S 24 px. Nhảy lên 16 bằng kỹ năng này không kích Kèn Phụ ngân +50 Dư Âm. |
| Đại Nhạc — gọi phường H12_UL1_CALL | ULT | 0 | 12 | 108 | 2 | 0 | ULT | NONE | 128 | 0 | 0 | 0.5 | NONE | — | — | Thổi hiệu đại tang: cả 4 nhạc công hiện cùng lúc (chưa có thì gọi mới), chỉ số ×2 (HP 80, sát thương ×2, mất sau 6 đòn) tới hết phòng, không tan khi Nhịp về 0. Không kích Kèn Phụ ngân. |
| Đại Nhạc — sóng tống táng H12_UL1_WAVE | ULT | 16 | 82 | 22 | 2 | 3 | ULT | RING r 150 r_in 0 band 150 | 128 | 20 | 0.08 | 0.8 | NONE | — | shieldbreak | 4 phách dồn (tick 16/42/68/94, nhịp 26 tick để cả 4 sóng nằm gọn trong clip 120 tick: 16 + 4 × 26 = 120), cả Phường cùng tấu: mỗi phách sóng RING lan từ tâm ra r150 trong 10 tick, 3.0 coef, đẩy 40 px. |
| Kèn Tiễn — phách dồn H12_UL2_BEAT | ULT | 10 | 80 | 18 | 1.8 | 6 | ULT | LINE len 96 w 32 p0 0/0 p1 96/0 | 1 | 15 | 0.05 | 0.3 | NONE | — | shieldbreak | Khoá 1 quái M/L/XL (không có thì S nhiều HP nhất), áp sát ≤ 60 px; 7 phách nhanh (mỗi 13 tick), mỗi phách 6.0 coef × (1 + 0.15 × số phách đã qua), tự đúng phách. |
| Kèn Tiễn — phách tám H12_UL2_FINAL | ULT | 101 | 4 | 3 | 1.8 | 8 | ULT | LINE len 140 w 40 p0 0/0 p1 140/0 | 1 | 40 | 0.12 | 0.8 | NONE | — | shieldbreak/execute | Phách 8 (tick 101): một hồi kèn tiễn dài, 8.0 × 2.05 = 16.4 coef; mục tiêu ≤ 20% HP chết ngay (XL: ×1.5 sát thương thay vì kết liễu). |
| Ban Nhạc Bất Tận — khai tấu H12_UL3_ACTIVATE | ULT | 0 | 28 | 2 | 0.5 | 0 | ULT | NONE | 128 | 0 | 0 | 0.5 | NONE | — | — | Khai tấu 30 tick bất tử: cả 4 nhạc công hiện, vòng nhịp quanh chân sáng cả 4 vạch. |
| Ban Nhạc Bất Tận — hợp âm phách 4 H12_UL3_CHORD | ULT | 0 | 4 | 26 | 0.5 | 4 | ULT | RING r 120 r_in 0 band 120 | 128 | 15 | 0.05 | 0.4 | NONE | — | shieldbreak | Trong dạng, mỗi phách 4 cả Phường tấu hợp âm: RING lan r120, 4.0 coef, đẩy 24 px (5 lần trong 10 s). |
| Loa Lớn Đẩy H12_AS2_FIN | ASPECT | 8 | 4 | 18 | 0.5 | 1.5 | HEAVY | RECT len 120 w 64 | 48 | 15 | 0.06 | 0.25 | NONE | — | shieldbreak | Dạng Rèn Loa Lớn: mọi đòn kết phách 4 kèm sóng đẩy RECT 120 × 64 trước mặt, 1.5 coef, đẩy S 48 px. |
| Lá Xương Quạt Nốt H12_AS3_FIN | ASPECT | 8 | 4 | 18 | 0.5 | 0.9 | HEAVY | LINE len 220 w 8 p0 0/0 p1 220/0 | 48 | 6 | 0.04 | 0.2 | NONE | — | pierce | Dạng Rèn Lá Xương: mọi đòn kết phách 4 kèm 5 nốt xương quạt 60°, tầm 220, 0.9 coef, xuyên 1. |
78 kỹ năng
Đám Rước
skill.procession_marchHạng III: Hạng III: giữa đường (sau phách 1) đám rước rẽ tối đa 90° theo cần ngắm, vẽ thành chữ L — quét được góc phòng; cùng sheet VFX_H12_SK01_procession.
Đòn: · SKILL H12_SK01_MARCH · Tag: Kỹ năng SKILL · Triệu hồi SUMMON
Tấu Khúc Bay
skill.note_volleyHạng III: Hạng III: nốt xuyên 2 và tự lượn ≤ 20° về quái gần nhất trong đường bay; cùng sheet VFX_H12_note_bolt.
Đòn: · SKILL H12_SK02_VOLLEY · · SKILL H12_SK02_LOW · Tag: Kỹ năng SKILL · Phóng PROJ
Kèn Xua
skill.push_waveHạng III: Hạng III: sóng dài 240, đẩy 96 px; S bị đẩy đập tường/vật cản choáng 1.0 s; cùng sheet VFX_H12_SK03_shoo_wave kéo dài.
Đòn: · SKILL H12_SK03_BLAST · Tag: Kỹ năng SKILL · Khiếp STS_DREAD
Hợp Âm Thu
skill.convert_projectileHạng III: Hạng III: kẻ bắn trúng nốt trả bị STS_DREAD 1.5 s; trần 16 nốt; cùng sheet VFX_H12_SK04_chord_hold.
Đòn: · SKILL H12_SK04_CHORD · · SKILL H12_SK04_RELEASE · Tag: Kỹ năng SKILL · Vùng Sàn ZONE
Cao Trào
skill.crescendoHạng III: Hạng III: cộng dồn chưa xả (tối đa +72%) chuyển sang đòn kết khúc đầu tiên trong 2 s sau đó; cùng sheet VFX_H12_SK05_crescendo.
Đòn: · SKILL H12_SK05_BEAT · · SKILL H12_SK05_FINAL · Tag: Kỹ năng SKILL · Combo COMBO
Vòng Tang Ca
skill.zone_buffHạng III: Hạng III: vòng r80 sống 7 s; nhạc công trong vòng hồi 10 HP mỗi phách 4 (không vượt HP 40); cùng sheet VFX_H12_SK06_dirge_ring.
Đòn: · SKILL H12_SK06_RING · Tag: Kỹ năng SKILL · Vùng Sàn ZONE
Nhịp Bước Tang
skill.rhythm_windowHạng III: Hạng III: kéo dài 6 phách; Lướt đúng phách đầu tiên hoàn 1 lượt Lướt; cùng sheet VFX_H12_SK07_march_step.
Đòn: · SKILL H12_SK07_STEP · · SKILL H12_SK07_FOOTFALL · Tag: Kỹ năng SKILL · Di chuyển MOVE
Gọi Phường
skill.summon_bandHạng III: Hạng III: sau khi gọi, Nhịp không bị trừ do nghỉ trong 4 s (giữ Phường qua lúc né đòn lớn); cùng sheet VFX_H12_SK08_call_band.
Đòn: · SKILL H12_SK08_CALL · Tag: Kỹ năng SKILL · Triệu hồi SUMMON
83 tuyệt kỹ (Ult)
Đại Nhạc Tống Táng
ult.minion_empowerGọi đủ 4 nhạc công, tấu 4 phách: mỗi phách sóng r150 3 coef; Phường ×2 chỉ số tới hết phòng.
Kèn Tiễn Một Người
ult.crescendo8 phách nhanh lên 1 quái M/L/XL: mỗi phách 6 coef, +15%/phách; phách 8 8 coef, kết liễu ≤ 20% HP.
Ban Nhạc Bất Tận
ult.attack_speed_burst10 s: đủ 4 nhạc công không mất; cửa sổ phách ±0.16 s; tốc đánh ×1.4; mọi khúc tính đúng phách; phách 4 hợp âm r120 4 coef.
Ghi đè khi biến hình
- band_full
- có
- band_immortal
- có
- beat_window_s
- 0.16
- atk_coef_mult
- 1.4
- all_on_beat
- có
- res_decay
- paused
- offbeat_penalty
- none
- horn_ult_gain
- 0
93 Dạng Rèn
Kèn Đưa Tang
Kèn gỗ mun loa đồng xỉn: phách 1–3 cung 120° r56; lệch phách Nhịp chia đôi; mốc Phường 4/8/12/16.
- Combo
- tempo_mult 1, arc_add 0, range_add 0
- Luật tài nguyên
- giữ gốc
- Lệch độ khó
- —
- mechanic_key
- —
Đòn: FIN_DON · COMBO_A H12_FIN_DON
Kèn Đồng Loa Lớn
Loa đồng to: cung 150° r72, coef ×1.2; lệch phách −2 Nhịp; đòn kết kèm sóng đẩy 120 × 64, 1.5 coef, đẩy 48 px.
- Combo
- tempo_mult 1, arc_add 30, range_add 16
- Luật tài nguyên
- cú lệch phách trừ 2 Nhịp thay vì chia đôi
- Lệch độ khó
- axis R, delta −1
- mechanic_key
- passive.push_wave
Đòn: · ASPECT H12_AS2_FIN
Kèn Lá Xương
Kèn xương nhỏ: r44, coef ×0.9; Phường ở 3/7/11/16 Nhịp; đòn kết kèm 5 nốt quạt 60°, tầm 220, 0.9 coef.
- Combo
- tempo_mult 1, arc_add 0, range_add −12
- Luật tài nguyên
- nhạc công ở 3/7/11/16 Nhịp (cùng hiệu ứng mốc gốc 4/8/12/16)
- Lệch độ khó
- axis V, delta 1
- mechanic_key
- passive.note_volley
Đòn: · ASPECT H12_AS3_FIN
10Nâng cấp: Edge · Cộng Hưởng · Tiến Hoá
Then Chốt (LEGENDARY)
Đoàn Đưa Không Dứt
Lướt đúng phách khi Nhịp ≥ 8: hoàn lượt (hồi 1 s), Phường diễu theo đường Lướt, mỗi nhạc công 10 sát thương; Phường ×1.3.
dash.summon_band + dash_through.minion_empowerCả Phường Thổi Dội
ĐÁP đúng phách: mọi nhạc công Thổi Dội r44 (S choáng 1 s, đạn ×2); giữ Nốt Ngân thì nhạc công cũng giữ đạn Y chạm vòng r40 của mình.
answer.summon_band + answer_proj.push_waveHồi Kèn Cuối
Phản lên quái Vỡ Thế: 4 phách Kèn Tiễn, mỗi phách 30 +15%/phách, kết liễu ≤ 12% HP; tiêu 4 Nhịp → +10 Dư Âm.
broken.crescendo + counter.res_to_ultĐám Tang Không Tàn
Ở 16 Nhịp: cú đúng phách tích Vang, đủ 4 Vang Kèn Phụ hợp âm r120 gây 25; khúc kết ×1.3.
res_full.res_overflow + combo_end.summon_bandHướng build Combo · 6 Edge
Cộng Hưởng: Phách Đều Tay Kèn H12_RS1 · Combo COMBO
Cửa sổ đúng phách của cú combo/khúc nới từ ±0.12 s lên ±0.14 s (Thương Xót ±0.16 s giữ nguyên, không cộng); thay bậc I. Không chạm cửa sổ ĐÁP.
Đúng Nhịp Dày Tiếng
Combo đúng phách: sát thương +14/25/35%.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
on_beat_inc | 14 | 25 | 35 |
passive.rhythm_windowLoa Mở Cung Phách
Combo: cung +20/35/50°, bán kính +10/18/25%.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
arc_add | 20 | 35 | 50 |
radius_inc | 10 | 18 | 25 |
passive.arc_widenKhúc Chốt Đanh Tiếng
Khúc kết đúng phách: chí mạng +12/21/30%, bán kính +12/21/30%.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
crit_add | 12 | 21 | 30 |
radius_inc | 12 | 21 | 30 |
combo_end.rhythm_windowKhúc Vỡ Thành Nốt
Khi khúc kết trúng, Tấu Khúc Bay bắn 3 nốt gây 8/13 sát thương, xuyên 1 (hồi 4 s).
| tham số | H1 | H2 |
|---|---|---|
coef | 0.8 | 1.28 |
dmg | 8 | 13 |
combo_end.note_volleyDồn Dập Lên Cao
Mỗi cú đúng phách liền nhau: chí mạng +4/6% (tối đa 4 lớp); lệch phách mất hết lớp.
| tham số | H1 | H2 |
|---|---|---|
crit_add | 4 | 6 |
attack.crescendoVọng Khúc Đôi
Khúc kết đúng phách vọng lại ở phách 1 ô kế: 60% sát thương; khúc gốc ×1.15.
heavy.rhythm_windowHướng build Lướt · 6 Edge
Cộng Hưởng: Bước Đưa Đều Chân H12_RS2 · Lướt DASH
Lướt không còn làm hỏng khúc: phách bị Lướt (hoặc Kèn Lướt Rước) chiếm, nếu bấm đúng phách, được tính là nốt ♪ cho mẫu khúc của ô nhịp; thay bậc I.
Kèn Rước Dạt Đường
Kèn Lướt Rước: sát thương +50/88/125%, bán kính +15/26/38%.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
dmg_inc | 50 | 88 | 125 |
radius_inc | 15 | 26 | 38 |
dash_attack.push_waveDậm Chân Đưa Tang
Nhịp Bước Tang: dậm bán kính +8/14/20 px, sát thương +30/53/75%.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
r_add | 8 | 14 | 20 |
dmg_inc | 30 | 53 | 75 |
dash.rhythm_windowNé Theo Tiếng Trống
Khi Né Hoàn Hảo, Trống đập sóng tại chỗ: nổ r60 gây 15/27/38 sát thương.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
coef | 1.5 | 2.65 | 3.75 |
dmg | 15 | 27 | 38 |
perfect_dodge.summon_bandPhường Hạ Theo Bước
Gọi Phường: nhạc công hạ tại điểm đáp Lướt kế (1.5 s), sát thương hạ xuống +40/64%.
| tham số | H1 | H2 |
|---|---|---|
dmg_inc | 40 | 64 |
dash_end.summon_bandBước Nhảy Ban Nhạc
Ban Nhạc Bất Tận: Lướt đúng phách hoàn 1 lượt (hồi 1 s); hợp âm phách 4 +30/48%.
| tham số | H1 | H2 |
|---|---|---|
dmg_inc | 30 | 48 |
dash.attack_speed_burstĐoàn Rước Theo Chân
Nhịp Bước Tang: Lướt đúng phách kéo Phường diễu theo đường Lướt, mỗi nhạc công gây 12 sát thương (hồi 1 s).
dash_through.procession_marchHướng build Đáp · 6 Edge
Cộng Hưởng: Tiếng Dội Ngân Vang H12_RS3 · Đáp ANSWER
Nốt Ngân tách khỏi tay: mỗi ĐÁP đúng phách đặt 1 vòng Nốt Ngân r60 đứng tại chỗ 2 phách (1.0 s), Ambrin vẫn đánh/Lướt tự do; vòng không khoá phách, không chặn cận chiến; thay bậc I.
Tiếng Dội Lan Xa
Thổi Dội: bán kính +15/26/38%, đẩy thêm 6/10/16 px.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
radius_inc | 15 | 26 | 38 |
kb_add | 6 | 10 | 16 |
answer.push_waveNốt Ngân Dày Hơi
Nốt Ngân: bán kính +8/14/20 px, giữ thêm 1/2/3 đạn.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
r_add | 8 | 14 | 20 |
catch_cap_add | 1 | 2 | 3 |
hold_start.hold_shape_growDội Điện Loa Đồng
Khi ĐÁP thành công, gây Điện Giật 2 s (30/53/75%) lên quái trong sóng.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
chance | 30 | 53 | 75 |
answer.apply_shockVòng Tang Đáp Lời
Khi ĐÁP thành công trong Vòng Tang Ca, vòng dội ngay 60/96% sức phách 4 (hồi 1 s).
| tham số | H1 | H2 |
|---|---|---|
pct | 60 | 96 |
answer.zone_buffHợp Âm Ôm Chặt
Hợp Âm Thu: trần +4 đạn, nổ +25/40% sát thương.
| tham số | H1 | H2 |
|---|---|---|
dmg_inc | 25 | 40 |
skill.convert_projectileNốt Ngân Bắt Đạn
Nốt phóng từ Nốt Ngân ×1.5 sát thương, xuyên +2, Điện Giật 2 s.
hold_end.convert_projectileHướng build Phản · 6 Edge
Cộng Hưởng: Tiễn Đưa Trọn Lễ H12_RS4 · Phản COUNTER
Hồi Kèn Tiễn đúng phách thành đầu đoàn rước: Phường xếp hàng diễu LINE 140 × 40 theo hướng Phản (như Đám Rước, không bù bóng tạm); thay bậc I.
Kèn Tiễn Dài Hơi
Hồi Kèn Tiễn: dài +20/36/50 px, sát thương +25/44/63%.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
len_add | 20 | 36 | 50 |
dmg_inc | 25 | 44 | 63 |
counter.push_waveCả Phường Thổi Theo
Khi Phản trúng, mỗi nhạc công bắn 1 nốt theo hướng Phản gây 8/14/20 sát thương, xuyên 1.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
coef | 0.8 | 1.4 | 2 |
dmg | 8 | 14 | 20 |
counter.summon_bandPhản Mở Cao Trào
Khi Phản trúng, Cao Trào kế trong 4 s: phách chốt +30/53/75%.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
dmg_inc | 30 | 53 | 75 |
counter.crescendoTiễn Đúng Tên Người
Kèn Tiễn Một Người: ngưỡng kết liễu +3/5%, mỗi phách thêm +3/5%.
| tham số | H1 | H2 |
|---|---|---|
execute_add | 3 | 5 |
inc_add | 3 | 5 |
ult.crescendoPhường Dồn Một Mối
Khi Phản trúng, Phường dồn đánh mục tiêu Phản 4 s, sát thương Phường lên nó +30/48%.
| tham số | H1 | H2 |
|---|---|---|
inc | 30 | 48 |
counter.minion_empowerTiễn Ba Hồi Kèn
Hồi Kèn Tiễn thổi tiếp 2 phách kế, mỗi phách 40% sát thương Phản; phách cuối đẩy 40 px.
counter.rhythm_windowHướng build Kỹ năng · 6 Edge
Cộng Hưởng: Bản Tấu Liền Hơi H12_RS5 · Kỹ năng SKILL
Kỹ năng vào máy nhịp: dùng kỹ năng đúng phách (±0.12 s) hoàn 15% hồi chiêu (trần doc 13 §15.3) và phách đó tính là nốt ♪ của ô nhịp; thay bậc I.
Đám Rước Dài Đường
Đám Rước: dài +24/42/60 px, rộng +8/14/20 px.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
len_add | 24 | 42 | 60 |
w_add | 8 | 14 | 20 |
skill.procession_marchKhúc Bay Vượt Sông
Tấu Khúc Bay: tầm +30/52/76 px, sát thương +12/21/30%.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
range_add | 30 | 52 | 76 |
dmg_inc | 12 | 21 | 30 |
skill.note_volleyKèn Xua Hồn Vía
Khi Kèn Xua trúng, gây thêm Khiếp 1/1.6 s; quái đang Khiếp nhận +20/32% từ sóng.
| tham số | H1 | H2 |
|---|---|---|
duration_s | 1 | 1.6 |
dmg_inc | 20 | 32 |
skill_hit.apply_dreadTang Ca Ngân Dài
Vòng Tang Ca: sống +1/1.6 s, phách 4 dội +25/40%.
| tham số | H1 | H2 |
|---|---|---|
dur_add | 1 | 1.6 |
dmg_inc | 25 | 40 |
skill.zone_buffHợp Âm Tìm Người
Hợp Âm Thu: đạn trả lượn ≤ 25° về quái gần nhất, sàn sát thương 20/32.
| tham số | H1 | H2 |
|---|---|---|
coef | 2 | 3.2 |
dmg | 20 | 32 |
skill_hit.convert_projectileCao Trào Không Gãy
Cao Trào: lệch phách chỉ mất 1 lớp thay vì về 0; phách chốt ×1.2.
skill_hit.crescendoHướng build Tài nguyên: Nhịp · 6 Edge
Cộng Hưởng: Phường Đủ Mặt H12_RS6 · Tài nguyên: Nhịp RES:BEAT
Phường thôi đợi máy nhịp: Trống đập ngay khi khúc kết của Ambrin trúng (thay vì cứ phách 4), Chũm Chọe xoảng mỗi 4 phách thay 8; thay bậc I.
Phường Thật Bước Nặng
Đám Rước: nhạc công thật +20/35/50% sát thương, Khiếp +0.3/0.55/0.75 s.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
dmg_inc | 20 | 35 | 50 |
dread_add | 0.3 | 0.55 | 0.75 |
skill_hit.procession_marchLời Gọi Gấp Gáp
Gọi Phường: hồi chiêu −8/14/20%, hạ xuống +25/44/63% sát thương.
| tham số | H1 | H2 | H3 |
|---|---|---|---|
cd_pct | 8 | 14 | 20 |
dmg_inc | 25 | 44 | 63 |
skill.summon_bandXua Bằng Cả Nhịp
Khi dùng Kèn Xua, tiêu thêm 2 Nhịp nếu đủ: sóng dài +40/64 px, sát thương +30/48%.
| tham số | H1 | H2 |
|---|---|---|
len_add | 40 | 64 |
dmg_inc | 30 | 48 |
res_spend.push_waveĐại Nhạc Dồn Nhịp
Đại Nhạc Tống Táng: sóng r +20/32 px; xong ult, Nhịp lên 12 nếu đang thấp hơn.
| tham số | H1 | H2 |
|---|---|---|
r_add | 20 | 32 |
ult.minion_empowerPhường Không Bỏ Đám
Nhịp tụt không xoá Phường ngay: mỗi 2 phách rời 1 nhạc công; nhạc công vỡ quay lại sau 4 phách nếu Nhịp còn đủ mốc.
res_spend.summon_bandHợp Tấu Phách Bốn
Nhịp ≥ 12: phách 4 mọi nhạc công đánh cùng 1 frame tại Ambrin, gộp 1 nổ r96 ×1.2.
res_threshold.minion_empowerTiến Hoá
Trống Cái Tống Táng
Giữ Phường Hạ Theo Bước (+64%) và Đại Nhạc Dồn Nhịp (r +32). Đại Nhạc Tống Táng hạ Trống Cái: +2 phách sóng; tới hết phòng Trống đập r96 1.6 coef mỗi 2 phách.
- Cần Edge
- Phường Hạ Theo Bước H12_E10 · Đại Nhạc Dồn Nhịp H12_E34
- Điều kiện
RESONANCEPhường Đủ Mặt H12_RS6 = 2 — Cộng Hưởng Phường Đủ Mặt đạt bậc II- Mở
- 4/8 kỹ năng (SK01, SK03, SK05, SK07) · UL1 · AS1 · 24/40 Ed… MR01
- mechanic
- ult.summon_band
Chũm Chọe Gọi Sấm
Giữ Hợp Âm Ôm Chặt (+4 đạn, +40%) và Hợp Âm Tìm Người (sàn 32). Hợp Âm Thu nổ thành xoảng sấm r112: Điện Giật 3 s, S choáng 1 s; đạn trả mang Điện Giật, xuyên +2.
- Cần Edge
- Hợp Âm Ôm Chặt H12_E17 · Hợp Âm Tìm Người H12_E29
- Điều kiện
SKILL_RANKHợp Âm Thu H12_SK04 = 3 — Hợp Âm Thu đạt hạng III- Mở
- 4/8 kỹ năng (SK01, SK03, SK05, SK07) · UL1 · AS1 · 24/40 Ed… MR01
- mechanic
- skill_max_rank.convert_projectile
Phướn Trắng Cao Trào
Giữ Dồn Dập Lên Cao (+6%/lớp, 4 lớp) và Phản Mở Cao Trào (+75%). Cao Trào cắm Phướn Trắng tại mục tiêu 4 s: mỗi đòn Phường đúng phách +1 lớp; phách chốt luôn chí mạng.
- Cần Edge
- Dồn Dập Lên Cao H12_E05 · Phản Mở Cao Trào H12_E21
- Điều kiện
LEVEL= 14 — đạt cấp 14 trong run- Mở
- 4/8 kỹ năng (SK01, SK03, SK05, SK07) · UL1 · AS1 · 24/40 Ed… MR01
- mechanic
- crit.crescendo
Kèn Thức Tỉnh Gọi Đò
Thức Tỉnh Vũ Khí: loa đồng bừng xanh. Phách 1–3 cung 150° r64, Khúc Dồn r96; cú đúng phách gây Điện Giật 1.5 s, khúc kết gây Khiếp 1 s (cùng frame gốc, không anim mới).
- Cần Edge
- —
- Điều kiện
BOSS_KILLEDThợ Cả Đúc Chuông BS_B3 = BS_B3 — 2 Cộng Hưởng hero bậc II bất kỳ + đã hạ trùm Hồi III trong run- Mở
- Công thức EVO4 hiện ở ST_FORGE (mở khoá sức mạnh cuối của T… MR12
- mechanic
- passive.weapon_awaken
Mẫu câu (17)
| ID | Câu |
|---|---|
| TPL_H12_echo_finale | Mệnh đề khúc kết: khúc kết bấm đúng phách được vọng lại ở phách 1 của ô nhịp kế — cùng hình hitbox, cùng frame active, tại vị trí khúc gốc, không cần bấm, không chiếm phách (phách 1 vẫn nhận cú của người chơi); sát thương vọng = % của hàng; khúc gốc nhân MORE của hàng. Vọng không kích trigger ON_HIT (độ sâu 1). VFX: VFX_H12_fin_ring / VFX_H12_fin_lance biến thể tint slot α 0.5, scale 1.0 (doc 31 variant, không sheet mới). |
| TPL_H12_dash_procession | Mệnh đề Lướt: trong lúc Nhịp Bước Tang bật, Lướt bấm đúng phách kéo mọi nhạc công Phường đang có (không bù bóng tạm) xếp hàng diễu theo đúng đoạn đường Lướt 80 px (LINE rộng 32), mỗi nhạc công trúng mỗi quái 1 lần, sát thương theo hàng; hồi theo hàng. Phường quay về vòng r48 sau 0.5 s. |
| TPL_H12_held_catch | Mệnh đề Nốt Ngân (nâng cú phóng, không đổi luật giữ canon): Nốt Ngân vẫn giữ đạn Y như gốc — vòng r60, ≤ 6 viên + phần giữ thêm của Nốt Ngân Dày Hơi; viên vượt trần đẩy viên cũ nhất phóng sớm; đạn tím không bị giữ; không % chậm; Nhịp không giảm, khoá phách; không chặn cận chiến. Mọi nốt phóng ra từ Nốt Ngân (phóng ở phách kế, ≤ 0.5 s ở 120 BPM, và viên bị đẩy phóng sớm) theo hướng ngắm: sát thương = gốc viên × hàng (thay ×1.0 canon), xuyên thêm 2 quái, gây STS_SHOCK theo hàng (2 s). Nhóm loại trừ với Cả Phường Thổi Dội. |
| TPL_H12_band_focus | Mệnh đề Phản: mục tiêu trúng Hồi Kèn Tiễn bị Phường khoá: mọi đòn nhạc công (Trống sóng, Chũm Chọe xoảng, Kèn Phụ thổi) ưu tiên hướng/điểm vào nó trong thời gian của hàng, sát thương Phường lên nó cộng INC theo hàng. Không giữ token địch (Bible Phường). |
| TPL_H12_triple_farewell | Mệnh đề Phản: Hồi Kèn Tiễn ra cú 1 như gốc rồi tự thổi thêm số phách của hàng, mỗi cú rơi đúng phách kế của máy nhịp (0.5 s/phách), cùng hitbox LINE 140 × 40 theo hướng Phản, % sát thương theo hàng, −0 Thế; cú cuối đẩy theo hàng. Ambrin đánh/Lướt tự do giữa các cú (cú tự ra từ loa đặt tại điểm Phản). Ghi đè bởi Then Chốt Hồi Kèn Cuối (cùng nhóm loại trừ). |
| TPL_H12_band_stays | Mệnh đề Nhịp: khi Nhịp tụt (lệch phách, nghỉ, trúng đòn) xuống dưới mốc, Phường không mất ngay: nhạc công mốc cao nhất rời sau số phách của hàng, rồi tới người kế; Nhịp lên lại mốc trước khi rời → giữ nguyên. Nhạc công vỡ (3 đòn) quay lại ở HP 40 sau số phách của hàng nếu Nhịp còn ≥ mốc của nó. Nhịp = 0 vẫn xoá toàn Phường (canon). |
| TPL_H12_band_unison | Mệnh đề Phường: khi Nhịp ≥ ngưỡng hàng, ở phách 4 mỗi ô nhịp mọi nhạc công đang có dồn đòn của mình về Ambrin và đánh cùng 1 frame: gộp thành 1 nổ RING bán kính hàng, coef = tổng coef các đòn đã gộp (Trống 1.0, Chũm Chọe 0.8 nếu tới lượt, Kèn Phụ 0.6), nhân MORE của hàng; choáng của Chũm Chọe giữ nguyên. VFX: VFX_H12_band_drum scale 1.6 + VFX_H12_fin_ring tint slot. |
| TPL_H12_lp37 | THEN CHỐT Đoàn Đưa Không Dứt — Lướt đúng phách khi Nhịp ≥ ngưỡng hàng hoàn lượt Lướt vừa dùng (trần doc 13 §15.3: 1 lượt/1.0 s); mọi nhạc công Phường diễu theo đường Lướt như đoàn đưa (LINE theo quãng Lướt, rộng 40), mỗi nhạc công gây sát thương theo hàng lên quái trên đường; sát thương Phường nhân MORE của hàng khi đang diễu và 2 s sau. Ghi đè Đoàn Rước Theo Chân (cùng nhóm loại trừ). |
| TPL_H12_lp38 | THEN CHỐT Cả Phường Thổi Dội — ĐÁP bấm đúng phách: mỗi nhạc công Phường thổi 1 Thổi Dội tại chỗ (sóng r44: S choáng theo hàng + đẩy, đạn Y trong sóng dội ×hàng, không mở Phản cho nhạc công). Khi Ambrin giữ Nốt Ngân, mỗi nhạc công ngân 1 vòng r40 quanh mình: đạn Y chạm vòng bị giữ đứng như Nốt Ngân gốc (gộp chung trần 6 viên của Ambrin; viên vượt trần đẩy viên cũ nhất phóng sớm), phóng cùng phách kế theo hướng ngắm của Ambrin, sát thương = gốc viên ×1.0; đạn tím không bị giữ; không % chậm, không chặn cận chiến. Nhóm loại trừ với Nốt Ngân Bắt Đạn. |
| TPL_H12_lp39 | THEN CHỐT Hồi Kèn Cuối — Hồi Kèn Tiễn trúng quái đang Vỡ Thế (M/L/XL): thay bằng Kèn Tiễn rút gọn — khoá mục tiêu, tấu số phách của hàng ở nhịp nhanh 13 tick/phách, mỗi phách sát thương theo hàng +INC cộng dồn/phách; phách cuối kết liễu quái dưới ngưỡng HP (không lên Boss: Boss chỉ nhận sát thương). Mỗi lần kích tiêu Nhịp theo hàng (nếu đủ) đổi thành Dư Âm theo hàng (trần +10/s, khoá nạp sau ult giữ nguyên). Ghi đè Tiễn Ba Hồi Kèn. |
| TPL_H12_lp40 | THEN CHỐT Đám Tang Không Tàn — khi Nhịp = 16, mỗi cú đúng phách không phí: tích 1 Vang (tối đa theo hàng, hiện trên HUD vòng nhịp); đủ Vang thì Kèn Phụ ngân hợp âm RING bán kính hàng, sát thương theo hàng, Vang về 0 (không cộng Dư Âm, Dư Âm vẫn theo luật Kèn Phụ canon). Khúc kết ra khi Nhịp = 16 nhân MORE của hàng. Nhóm loại trừ với Vọng Khúc Đôi. |
| TPL_H12_rs4_march | Mệnh đề Cộng Hưởng Phản bậc II: Hồi Kèn Tiễn bấm đúng phách khiến Phường đang có xếp hàng diễu LINE 140 × 40 theo hướng Phản, coef/nhạc công theo hàng, không bù bóng tạm; Phản nhân MORE. |
| TPL_H12_rs6_tempo | Mệnh đề Cộng Hưởng Nhịp bậc II: Trống đập sóng r60 ngay frame khúc kết của Ambrin trúng (thay vì cứ phách 4; ô nhịp không có khúc → không đập); Chũm Chọe xoảng mỗi số phách của hàng; sát thương Phường nhân MORE. |
| TPL_H12_build_phuong_dong | HƯỚNG BUILD Phường Đông (RES:BEAT + SUMMON, SRS06 SUMMON; kỹ năng hợp SK08, SK01; RS6 → RS2): lõi E31 E32 E33 E34 E35 E36 + E09 E10 E20 E23 + Then Chốt E37/E40; Tiến Hoá EVO1 Trống Cái Tống Táng. Chơi: giữ phách lên 16 Nhịp, Gọi Phường nhảy mốc, Đám Rước quét đường. Yếu: lệch phách → Nhịp/2, Phường rơi. |
| TPL_H12_build_dung_phach | HƯỚNG BUILD Đúng Phách (COMBO + CRIT, SRS01 CRIT; kỹ năng hợp SK05, SK07; RS1 → RS4): lõi E01 E02 E03 E04 E05 E06 + E08 E12 E21 E22 E30 + Then Chốt E40/E39; Tiến Hoá EVO3 Phướn Trắng Cao Trào. Chơi: mọi cú ±0.12 s, khúc kết chí mạng, Cao Trào chốt phách 4. Yếu: nhịp lừa của địch. |
| TPL_H12_build_not_ngan | HƯỚNG BUILD Nốt Ngân (ANSWER + STS_SHOCK, SRS10 SHOCK+ROT; kỹ năng hợp SK04, SK06, SK03; RS3 → RS5): lõi E13 E14 E15 E16 E17 E18 + E27 E28 E29 E33 + Then Chốt E38; Tiến Hoá EVO2 Chũm Chọe Gọi Sấm. Chơi: Thổi Dội đúng phách, vòng âm r60 hãm đạn, trả đạn Điện Giật. Yếu: cận chiến xuyên vòng. |
| TPL_H12_notes | GHI CHÚ 2026-11-07: (1) hướng Nốt Ngân theo doc 13 §14 (ANSWER + STS_SHOCK, SRS10) thay vì doc 12 §11.12 (ANSWER + ZONE) — doc 13 sở hữu bảng hướng build. (2) Ngân sách PI ước theo doc 17 §4.4 với tỉ phần kit [ASSUMED]: phách 1–3 25%, khúc 20%, Kèn Lướt Rước 5%, Phường 18%, kỹ năng 25%, Phản 5% (tay đôi 8%), ult 8%; mọi hàng nằm trong dải rarity. (3) Mọi VFX dùng id có sẵn trong av.vfx_list H12 hoặc thư viện SHARED; đổi nhỏ = biến thể tint/scale doc 31, không sheet mới; không đổi heroes/H12.json. |
11Thông Thạo (mastery)
Thử thách Thông Thạo
| Thử thách | Điều kiện | Thưởng |
|---|---|---|
| ĐÁP {answers} tell vàng trong 1 run. TT1 | on_beat_answers 30, tell Y | khung bia mộ loa kèn |
| Đầy tài nguyên riêng {fills} lần trong 1 run. TT2 | full_events 10, full Nhịp 16 đủ 4 nhạc công | khung bia mộ phường bốn bóng |
| Hạ 1 boss Hồi mà không trúng đòn tím nào ({hits_allowed} tr… TT3 | offbeat_hits 0, target boss Hồi bất kỳ | khung bia mộ vòng nhịp |
| Qua Hồi II chỉ dùng {skills} kỹ năng. TT4 | act II, band_lost 0 | khung bia mộ khăn tang trắng |
| Hạ BS_FINAL ở Độ Tang ≥ {do_tang_min}. TT5 | boss BS_FINAL, do_tang_min 8, title Kẻ Thức Tang Ambrin | — |
- Danh hiệu MR20
- Người Thổi Tiễn Cả Xứ
- Mốc thoại MR11
- Con thổi tiễn cả xứ. Ngày ta đi, con thổi bài chậm thôi nhé. DLG_ULLA_H12_011
- Mốc thoại MR15
- Kèn của ngươi giờ ngân cả khi im. Ta nghe qua đe. DLG_GREM_H12_015
- Bia mộ
- TMB_H12
12VFX spec
SIGNATURE · 14
luôn bật khi chơi H12 (world cue resource.hud): frame = floor(pha ô n…
Vòng nhịp dưới chân: 4 vạch là 4 phách của ô nhịp 2 s; vạch sắp tới sáng dần đúng 0.12 s — nhìn chân là bấm đúng phách giữa bầy.
Chi tiết spec
- Kích hoạt
- luôn bật khi chơi H12 (world cue resource.hud): frame = floor(pha ô nhịp 2.0 s × 30); sáng mạnh khi bật H12_SK07 (4 phách), phản hồi cú đúng phách của H12_E01 / H12_RS1 / H12_RS5; t = 0 = phách 1 của ô nhịp
- Canvas
- 32×20 gốc 16/10
- Pha (s)
- antic −0.12/0 · impact 0/0.033 · dissipate 0.033/2
- Easing
- curve linear, freeze_s 0
- Hạt
- —
- Hitbox
- shape none, match không gây sát thương — không đo, wave none
- Nguồn
- new src/fx/heroes/h12-beat-ring.js (costume _ambrin.js; floorRing + 4 floorLine vạch phách, runtime chọn frame theo đồng hồ DSP)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay không áp dụng (không gây sát thương), art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.12 | vạch phách sắp tới (Đông = phách 1) sáng dần #2389ae → #dafbff trong 0.12 s = cửa sổ đúng phách |
| 0 | phách 1: vạch Đông 1 frame #fff6f0, vành r12 nhấp 1 px ra ngoài rồi về |
| 0.5 | phách 2 vạch Nam (gần người xem); 1.0 phách 3 vạch Tây; 1.5 phách 4 vạch Bắc dày 2 px |
| 1.88 | vạch phách 1 kế tiếp bắt đầu sáng; loop liền mạch tại 2.0 s |
attack1/2/3 hit (H12_BEAT_1..3, startup 4 tick, active 4 tick, hit_fr…
Phách 1–3: mỗi hơi kèn là một cung sóng âm 3 lớp đúng r56 — đúng phách thêm lớp thứ 4 và mép trắng, nhìn là biết cú ăn ×1.3.
Chi tiết spec
- Kích hoạt
- attack1/2/3 hit (H12_BEAT_1..3, startup 4 tick, active 4 tick, hit_frame 8); cũng H12_FIN_MUON (arc 200 r72), H12_FIN_LE (twin 90° r64 trước + sau), H12_DASH_ATTACK (arc 180 r48), Dạng Rèn AS1, H12_E02, H12_EVO4; t = 0 = frame chạm
- Canvas
- 96×96 gốc 16/56
- Pha (s)
- antic −0.067/0 · impact 0/0.067 · dissipate 0.067/0.4
- Easing
- curve outQuart, freeze_s 0
- Hạt
- kind MOTE, count 6, speed 60, life_s 0.3, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape sector r56 a120, match floorArc r56 trùng biên P(φ) ±2 px; hình phủ ≥ 92% rẻ quạt, vượt ≤ 4 px (MUON r72 a200, LE 2 × r64 a90, DA r48 a180 cùng luật), wave none
- Nguồn
- new src/fx/heroes/h12-sound-arc.js (costume _ambrin.js; swing toolkit đổi lưỡi thành 3 band sóng âm, knob arc|radius|twin)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay sector r56 a120 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.067 | má Ambrin phồng; 3 giọt âm tụ trong loa (muzzle), loa sáng #66e6ff |
| 0 | cung sóng 3 lớp bật ra từ loa: lớp ngoài trùng r56 trên sàn (floorArc) + cùng cung ở h 14; mép trước 1 px #fff6f0, thân #2ec0e8 fill 40% |
| 0.033 | đúng phách: thêm 1 frame #ffffff mép ngoài + lớp thứ 4; lệch phách: không có, gọi VFX_H12_offbeat_crack |
| 0.067 | 3 lớp trượt ra ngoài 4 px rồi đứng, nguội #66e6ff → #2389ae |
| 0.25 | lớp trong tan dither từ tâm ra |
| 0.4 | rỗng |
attack4 hit (H12_FIN_DON Khúc Dồn ♪♪♪♪, startup 8 tick, active 4 tick…
Khúc Dồn: bốn phách liền dồn thành một vành âm r80 nổ quanh thân — vành dày 16 đúng chỗ hitbox, bầy S văng ra như bị thổi bay.
Chi tiết spec
- Kích hoạt
- attack4 hit (H12_FIN_DON Khúc Dồn ♪♪♪♪, startup 8 tick, active 4 tick, hit_frame 12); cũng vọng H12_E06 (α 0.5), hợp tấu H12_E36 (r96, tint slot), H12_EVO4 (r96); t = 0 = frame chạm
- Canvas
- 184×120 gốc 92/68
- Pha (s)
- antic −0.133/0 · impact 0/0.067 · dissipate 0.067/0.6
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind MOTE, count 12, speed 90, life_s 0.35, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape ring r80 w16, match vành ngoài r80 / trong r64 trên sàn (elip 160×80 / 128×64) lệch ≤ 2 px; phủ ≥ 95% vành; bậc 1.7/2.2 (r > 112) chuyển vành thủ tục, sheet chỉ giữ hạt, wave none
- Nguồn
- new src/fx/heroes/h12-fin-ring.js (costume _ambrin.js; floorRing kép + band vòng h 12, knob r|w|alpha)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay ring r80 w16 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.133 | Ambrin xoay 1 vòng, loa quét quanh thân; vòng mảnh r16 #66e6ff thu vào chân |
| 0 | 1 frame #ffffff: vành âm bật từ r24 tới đúng vành r64–r80 trong 2 frame (elip 160×80 ngoài, 128×64 trong) |
| 0.067 | vành giữ dày 16 (8 px màn ở Bắc/Nam), fill #2ec0e8 40%, mép ngoài 1 px #fff6f0; 3 sóng phụ mảnh ở h 6/12/18 chồng lên vành |
| 0.2 | S trúng văng ra 24 px; vành nguội #2389ae, sóng phụ tan từ trên xuống |
| 0.45 | vành tan dither từ trong ra |
| 0.6 | rỗng |
attack5 hit: H12_FIN_HUT Khúc Hụt Hơi (LINE 160 × 24) và H12_FIN_CHO …
Khúc Hụt Hơi / Khúc Chờ: nhịn phách để dồn một luồng hơi thẳng tắp xuyên cả hàng quái — càng nghỉ lâu tia càng dài, càng dày.
Chi tiết spec
- Kích hoạt
- attack5 hit: H12_FIN_HUT Khúc Hụt Hơi (LINE 160 × 24) và H12_FIN_CHO Khúc Chờ (LINE 240 × 32, 2 phách nghỉ); vọng H12_E06 (α 0.5); startup 8 tick, active 4 tick, hit_frame 12; t = 0 = frame chạm
- Canvas
- 256×56 gốc 8/36
- Pha (s)
- antic −0.133/0 · impact 0/0.067 · dissipate 0.067/0.5
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind STREAK, count 10, speed 300, life_s 0.25, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape line L160 W24, match vệt sàn L160 × W24 (Khúc Chờ L240 × W32) trùng hitbox ±2 px; dài màn theo §2.1 (e/w 160, n/s 80, chéo 126); vượt đầu ≤ 6 px, wave none
- Nguồn
- new src/fx/heroes/h12-fin-lance.js (costume _ambrin.js; beam + glowLine sàn + vòng âm trượt dọc tia, knob len|w)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay line L160 W24 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.133 | Ambrin ngả người lấy hơi, loa chĩa thẳng; giọt âm hút vào loa |
| 0 | 1 frame #ffffff: tia âm bắn thẳng từ loa (h 16) tới hết L; vệt sàn glowLine rộng W trùng hitbox |
| 0.033 | lõi tia 4 px #fff6f0, thân #2ec0e8 rộng W/2 màn; 4 vòng âm (elip đứng 8×12) trượt dọc tia 520 px/s |
| 0.12 | tia mỏng dần từ gốc tới ngọn, vòng âm cuối nở tại đầu tia |
| 0.35 | vệt sàn nguội #1a556b |
| 0.5 | rỗng |
Nhịp vượt mốc 4/8/12/16 (AS3: 3/7/11/16) — enter_fx BAND_DRUM/CYMBAL/…
Phường hiện: khăn tang trắng bung lên rồi quấn thành bóng nhạc công 24 px — mỗi mốc Nhịp là một người trong phường thức dậy.
Chi tiết spec
- Kích hoạt
- Nhịp vượt mốc 4/8/12/16 (AS3: 3/7/11/16) — enter_fx BAND_DRUM/CYMBAL/FLAG + Kèn Phụ; H12_SK01 (bóng tạm α 0.4), H12_SK08, H12_UL1_CALL (4 cùng lúc), H12_RS6, H12_E35 quay lại; t = 0 = frame nhạc công hiện đủ
- Canvas
- 40×48 gốc 20/42
- Pha (s)
- antic −0.2/0 · impact 0/0.067 · dissipate 0.067/0.8
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind MOTE, count 8, speed 30, life_s 0.6, hex #a3f4ff, gravity −40, shadow không
- Hitbox
- shape none, match không gây sát thương — không đo, wave none
- Nguồn
- new src/fx/heroes/h12-band-summon.js (costume _ambrin.js; floorRing + khăn tang bung + bóng nhạc công mọc, knob member:drum|cymbal|flag|horn|temp)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay không áp dụng (không gây sát thương), art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.2 | tại ô quỹ đạo r48 quanh Ambrin (Trống 225°, Chũm Chọe 315°, Cờ Phướn 135°, Kèn Phụ 45°): vòng sàn r10 #2389ae, 4 vạch phách xoay vào |
| 0 | 1 frame #fff6f0: dải khăn tang trắng bung thẳng lên cao 24 px, bóng nhạc công 24 px hiện (lõi #fff6f0 α 70% + viền slot 1 px) |
| 0.1 | khăn rơi quấn quanh đầu bóng, 2 đuôi buông; nhạc cụ sáng 1 nhịp |
| 0.5 | vòng sàn tan dither |
| 0.8 | rỗng — thân nhạc công giao cho actor H12_BAND |
H12_BAND_DRUM (Nhịp ≥ 4): đúng phách 4 mỗi ô nhịp, CIRCLE r60 tâm Amb…
Trống Sóng: cứ phách 4 nhạc công nện trống, một sóng sàn r60 lan từ chân Ambrin — Phường giữ nhịp thay anh.
Chi tiết spec
- Kích hoạt
- H12_BAND_DRUM (Nhịp ≥ 4): đúng phách 4 mỗi ô nhịp, CIRCLE r60 tâm Ambrin, active 3 tick, đẩy S 16 px; cũng H12_E09 (tại điểm Né Hoàn Hảo), H12_EVO1 Trống Cái (r96 mỗi 2 phách), H12_E36 hợp tấu (scale 1.6 = r96); t = 0 = frame dùi chạm mặt trống
- Canvas
- 136×76 gốc 68/38
- Pha (s)
- antic −0.067/0 · impact 0/0.05 · dissipate 0.05/0.5
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind DUST, count 8, speed 40, life_s 0.3, hex #1a556b, gravity 0, shadow không
- Hitbox
- shape circle r60, match vành r60 (elip 120×60) chạm đủ ở frame 2 = trong active 3 tick; lệch ≤ 2 px, phủ 100%, wave none
- Nguồn
- new src/fx/heroes/h12-band-drum.js (costume _ambrin.js; sóng sàn từ tâm Ambrin + chớp mặt trống tại nhạc công, knob radius)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r60 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.067 | nhạc công Trống giơ dùi; vòng nhịp dưới chân Ambrin sáng vạch phách 4 |
| 0 | 1 frame #fff6f0 mặt trống; sóng sàn bật r24 → r60 trong 2 frame (elip 120×60), mép 2 px #fff6f0 |
| 0.05 | vành r60 giữ 1 frame, fill trong #2ec0e8 30% chia 3 vòng gợn đồng tâm |
| 0.2 | gợn nguội #2389ae, bụi nhẹ ở mép |
| 0.5 | rỗng |
H12_BAND_CYMBAL (Nhịp ≥ 8): mỗi 8 phách xoảng, CIRCLE r90 tâm Ambrin,…
Chũm Chọe Xoảng: hai đĩa chập một tiếng chói, vành kép r90 lấp lánh khoá cả bầy S đứng hình 1 giây.
Chi tiết spec
- Kích hoạt
- H12_BAND_CYMBAL (Nhịp ≥ 8): mỗi 8 phách xoảng, CIRCLE r90 tâm Ambrin, active 3 tick, choáng S 1.0 s / M 0.4 s, L/XL −15 Thế; t = 0 = frame 2 đĩa chập
- Canvas
- 196×108 gốc 98/54
- Pha (s)
- antic −0.1/0 · impact 0/0.05 · dissipate 0.05/0.5
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind STAR, count 10, speed 60, life_s 0.3, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape circle r90, match vành ngoài r90 (elip 180×90) trùng biên hitbox ±2 px ở frame 2; phủ ≥ 92% đĩa (giữa vành fill 20%), wave none
- Nguồn
- new src/fx/heroes/h12-band-cymbal.js (costume _ambrin.js; flare chập đĩa + floorRing kép lấp lánh, knob radius)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r90 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.1 | nhạc công Chũm Chọe dang 2 đĩa ra 2 bên |
| 0 | 2 đĩa chập: flare 4 cánh #ffffff 1 frame tại tay nhạc công (h 16); vành kép r84/r90 bật đầy trong 2 frame (elip 180×90) |
| 0.05 | vành ngoài #fff6f0 1 px, vành trong #66e6ff, giữa 2 vành 16 chấm lấp lánh nháy lệch nhau |
| 0.2 | vành nở thêm 4 px rồi nguội #2389ae |
| 0.5 | rỗng; S trúng mang glyph STUN chung (sao xoay) |
ĐÁP Thổi Dội (H12_ANSWER, CIRCLE r44, cửa sổ 10 tick / đúng phách 12 …
Thổi Dội: một tiếng kèn cụt nổ thành vòng r44 — đạn vàng quay đầu thành nốt của Ambrin; bấm đúng phách có thêm vòng thứ hai.
Chi tiết spec
- Kích hoạt
- ĐÁP Thổi Dội (H12_ANSWER, CIRCLE r44, cửa sổ 10 tick / đúng phách 12 tick, startup 0); cũng H12_E13, H12_E38 (mỗi nhạc công), kèm VFX_SHARED_answer_flash; t = 0 = frame ĐÁP thành công
- Canvas
- 104×72 gốc 52/44
- Pha (s)
- antic 0/0 · impact 0/0.067 · dissipate 0.067/0.5
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind MOTE, count 8, speed 100, life_s 0.3, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape circle r44, match đĩa r44 (elip 88×44) lệch ≤ 2 px, phủ 100%; vòng đúng phách r50 là trang trí (vượt 6 px, trong luật M), wave none
- Nguồn
- new src/fx/heroes/h12-answer-blast.js (costume _ambrin.js; vòng nổ cụt + vòng ♪ đúng phách, knob radius|on_beat)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r44 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| 0 | 1 frame #ffffff: tiếng kèn cụt, vòng nổ đặc r44 (elip 88×44) bật đầy, mép 2 px #fff6f0 |
| 0.033 | S trong vòng bị đẩy 30 px; đạn Y trong vòng đổi ngay sang ramp H12 + lõi #fff6f0, bay ngược tâm → ngoài ×1.6 tốc |
| 0.067 | đúng phách: vòng thứ 2 r50 mảnh 1 px + vạch phách trên vòng nhịp nháy; lệch phách: không vòng 2 |
| 0.25 | vòng nguội #2389ae, 8 giọt âm văng ra |
| 0.5 | rỗng |
giữ Nốt Ngân (H12_HOLD: hold_in 9 tick → loop tối đa 240 tick → hold_…
Nốt Ngân: một nốt kéo dài thành vòng âm r60 quanh Ambrin, gợn theo từng phách — đạn bay vào vòng chậm hẳn, nhịp đứng chờ.
Chi tiết spec
- Kích hoạt
- giữ Nốt Ngân (H12_HOLD: hold_in 9 tick → loop tối đa 240 tick → hold_out 8 tick), vòng r60 bám thân, đạn Y trong vòng chậm 50%, ô nhịp khoá; cũng H12_E14, H12_E18 (giữ đứng ≤ 6 đạn), H12_RS3, H12_E38 (mỗi nhạc công ngân r40); t = 0 = hết hold_in
- Canvas
- 136×88 gốc 68/48
- Pha (s)
- antic −0.15/0 · impact 0/0.067 · dissipate 0.067/2
- Easing
- curve linear, freeze_s 0
- Hạt
- kind MOTE, count 6, speed 15, life_s 1, hex #a3f4ff, gravity −10, shadow không
- Hitbox
- shape circle r60, match vành r60 (elip 120×60) trùng vùng hãm ±1 px, bám chân hero mỗi frame; không fill 25% / viền 2 px (khác tell P), viền liền (khác N), wave none
- Nguồn
- new src/fx/heroes/h12-held-note.js (costume _ambrin.js; floorRing + gợn thu vào loop theo phách, knob radius|catch)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r60 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.15 | hold_in: vòng nở r0 → r60 outQuart, loa ngân một vệt sóng dài h 16 |
| 0 | vành r60 (elip 120×60) liền 1 px #66e6ff, fill #2ec0e8 12%; 3 gợn đồng tâm r56/r44/r32 thu vào tâm, mỗi phách 1 gợn mới ở r60 |
| 0.5 | phách kế: gợn mới; đạn Y lọt vòng kéo vệt mờ 3 frame (thấy bị hãm) |
| 1.9 | nối loop liền mạch tại 2.0 s; hold_out: vành thu r60 → r0 trong 0.133 s rồi rỗng |
Phản Hồi Kèn Tiễn (H12_COUNTER: trong 60 tick sau Thổi Dội cận chiến,…
Hồi Kèn Tiễn: một hồi kèn đưa tang thẳng như cây sào, khăn tang bay dọc luồng hơi — đòn phản dài và thẳng nhất trong mọi hero.
Chi tiết spec
- Kích hoạt
- Phản Hồi Kèn Tiễn (H12_COUNTER: trong 60 tick sau Thổi Dội cận chiến, bước 24 px, startup 6 tick, active 5 tick, LINE 140 × 40 xuyên, hitstop 0.12, trauma 0.45); cũng H12_E19, H12_RS4, H12_E23; kèm VFX_SHARED_counter_mark; t = 0 = frame chạm
- Canvas
- 176×72 gốc 12/44
- Pha (s)
- antic −0.1/0 · impact 0/0.067 · dissipate 0.067/0.7
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind STREAK, count 14, speed 400, life_s 0.3, hex #a3f4ff, gravity 0, shadow không/kind FLAKE, count 6, speed 120, life_s 0.5, hex #fff6f0, gravity 300, shadow có
- Hitbox
- shape line L140 W40, match vệt sàn L140 × W40 từ chân sau bước trùng hitbox ±2 px; dài màn e/w 140, n/s 70, chéo 111; dải vải vượt đầu ≤ 10 px (L), wave none
- Nguồn
- new src/fx/heroes/h12-counter-send-off.js (costume _ambrin.js; beam dày + dải khăn tang bay dọc + vòng âm trượt, knob len|w)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay line L140 W40 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.1 | bước 24 px, chĩa loa thẳng; vòng nhịp nháy cả 4 vạch |
| 0 | 1 frame #ffffff: cột âm dày bắn hết L140 ở h 16, vệt sàn rộng 40 (20 px màn ở Đông/Tây) |
| 0.033 | lõi 6 px #fff6f0, thân #2ec0e8; 4 dải khăn tang trắng bay dọc cột, 5 vòng âm đứng trượt 700 px/s |
| 0.15 | đóng băng 0.12 s (runtime); cột mỏng dần, dải khăn bay quá đầu cột 12 px rồi rơi |
| 0.45 | vệt sàn nguội #1a556b |
| 0.7 | rỗng |
đạn nốt của Ambrin: H12_SK02_VOLLEY (3 nốt/phách, 520 px/s, tầm 260, …
Nốt bay: giọt âm tròn có đuôi ngắn, lõi trắng nóng — đạn của Ambrin luôn đặc, đọc được giữa cầu bùa rỗng của địch.
Chi tiết spec
- Kích hoạt
- đạn nốt của Ambrin: H12_SK02_VOLLEY (3 nốt/phách, 520 px/s, tầm 260, xuyên 1), H12_SK02_LOW (nốt trầm), H12_SK04_RELEASE (trả đạn 600 px/s, tầm 320, quạt 30°), H12_AS3_FIN (5 nốt xương 480 px/s, tầm 220), H12_E04, H12_E18, H12_E20, H12_E29; t = 0 = projectile spawn
- Canvas
- 24×12 gốc 16/6
- Pha (s)
- antic 0/0 · impact 0/0.067 · dissipate 0.067/0.533
- Easing
- curve linear, freeze_s 0
- Hạt
- —
- Hitbox
- shape proj r4, match bán kính va = lõi r2 + 2 px (doc 31 §7); nốt trầm/trả đạn lõi r4 → proj r6, wave none
- Nguồn
- new src/fx/heroes/h12-note-bolt.js (costume _ambrin.js; p.disc lõi + đuôi ngắn, bay loop 15 fps, knob kind:note|low|bone|reflect)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay proj r4 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| 0 | giọt âm tròn lõi đường kính 5 px #fff6f0, viền 1 px #2ec0e8, đuôi ngắn 6 px nhọn dần ngược hướng bay (KHÔNG vẽ nốt nhạc phương Tây) |
| 0.133 | lõi nhún lên 1 px, đuôi rung lệch 1 px (nhịp bay) |
| 0.267 | về vị trí; đuôi #66e6ff → #2389ae |
| 0.533 | nối loop; khi chạm/hết tầm runtime gọi VFX_H12_hit_sound (nốt trầm: VFX_H12_SK02_volley vỡ r40) |
ult H12_UL1 Đại Nhạc Tống Táng (bất tử 0–120 tick, world_slow 0.4; FX…
Đại Nhạc Tống Táng: cả phường hiện đủ, bốn hồi đại tang lan thành bốn vành sóng r150 — cả sân rung theo nhịp đưa người đi.
Chi tiết spec
- Kích hoạt
- ult H12_UL1 Đại Nhạc Tống Táng (bất tử 0–120 tick, world_slow 0.4; FX chạy đồng hồ Hero): H12_UL1_CALL tick 0 gọi đủ 4 nhạc công ×2 chỉ số; H12_UL1_WAVE 4 sóng RING r150 ở tick 16/46/76/106, mỗi sóng lan 10 tick, 3.0 coef, đẩy 40 px; cũng H12_E34, H12_EVO1 (+2 sóng tick 136/166); kèm VFX_SHARED_screen_flash_ult + VFX_H12_band_summon; t = 0 = kích ult
- Canvas
- 160×176 gốc 80/152
- Pha (s)
- antic 0/0.267 · impact 0.267/0.333 · dissipate 0.333/2.2
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind MOTE, count 24, speed 60, life_s 0.8, hex #a3f4ff, gravity −30, shadow không/kind STREAK, count 16, speed 300, life_s 0.3, hex #fff6f0, gravity 0, shadow không
- Hitbox
- shape ring r150 w150, match vành thủ tục = hitbox frame đó (RING r150 r_in 0: sóng lan quét cả đĩa); r150 elip 300×150 lệch ≤ 1 px; hạng EVO1/E34 đổi r thật, wave procedural
- Nguồn
- new src/fx/heroes/h12-ul1-grand-dirge.js (costume _ambrin.js; cột hiệu kèn + 4 quầng nhạc công; vành sóng = shader thủ tục FloorEllipse {shape:ring})
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay ring r150 w150 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| 0 | Ambrin giơ kèn thẳng trời; 4 nhạc công hiện đồng loạt ở r48 (VFX_H12_band_summon), viền slot dày 2 px = trạng thái ×2 |
| 0.267 | sóng 1: 1 frame #ffffff tại loa; vành thủ tục rộng 12 lan r0 → r150 trong 10 tick (elip 300×150), mép #fff6f0, thân #2ec0e8 40% |
| 0.767 | sóng 2; 1.267 sóng 3; 1.767 sóng 4 — mỗi sóng 4 nhạc công cùng nhả 1 vòng âm r12 tại chỗ |
| 1 | cột hiệu kèn giữa sheet (rộng 16, cao 120) đập theo phách, 4 khăn tang dài bay vòng quanh cột |
| 1.933 | sóng 4 chạm r150, trauma 0.8; cột vỡ thành 24 giọt âm |
| 2.2 | rỗng; Phường giữ viền ×2 tới hết phòng |
ult H12_UL2 Kèn Tiễn Một Người (bất tử 0–108 tick, world_slow 0.6): k…
Kèn Tiễn Một Người: cả phường lùi lại, chỉ còn Ambrin thổi tiễn một kẻ — bảy tầng âm chồng lên đầu nó, phách tám đưa nó đi trong dải khăn trắng.
Chi tiết spec
- Kích hoạt
- ult H12_UL2 Kèn Tiễn Một Người (bất tử 0–108 tick, world_slow 0.6): khoá 1 quái M/L/XL (không có: S nhiều HP nhất), áp sát ≤ 60 px; H12_UL2_BEAT 7 phách mỗi 13 tick từ tick 10 (LINE 96 × 32, 6.0 coef × (1 + 0.15·n)); H12_UL2_FINAL tick 101 LINE 140 × 40, 16.4 coef, kết liễu ≤ 20% HP (XL ×1.5); cũng H12_E22, H12_E39 (4 phách); t = 0 = kích ult
- Canvas
- 192×128 gốc 24/96
- Pha (s)
- antic 0/0.167 · impact 1.683/1.75 · dissipate 1.75/2
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind STAR, count 16, speed 100, life_s 0.4, hex #a3f4ff, gravity 0, shadow không/kind FLAKE, count 10, speed 60, life_s 0.8, hex #fff6f0, gravity −60, shadow không
- Hitbox
- shape line L140 W40, match phách 1–7: tia line L96 W32 trùng hitbox ±2 px; phách 8: vệt sàn 140 × 40 trùng ±2 px, cột đứng tại mục tiêu; vượt ≤ 10 px (L), wave none
- Nguồn
- new src/fx/heroes/h12-ul2-lone-farewell.js (costume _ambrin.js; tia khoá mục tiêu + tầng vòng âm 7 phách + hồi tiễn cuối, knob beats:7|4)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay line L140 W40 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| 0 | Phường lùi ra r64, mờ còn 30%; Ambrin lướt áp sát, viền mục tiêu nhận dấu khoá = vòng âm đơn r10 trên đầu |
| 0.167 | phách 1 (tick 10): tia ngắn 96 × 32 từ loa tới mục tiêu, 1 tầng vòng âm trên đầu mục tiêu |
| 0.383 | phách 2–7 mỗi 0.217 s: thêm tầng (tối đa 7, cách 6 px, tầng mới 1 frame #fff6f0), tia dày dần +2 px/phách |
| 1.683 | phách 8 (tick 101): 1 frame #ffffff, hồi kèn tiễn dài LINE 140 × 40 xuyên mục tiêu, 7 tầng dồn thành cột cao 80 |
| 1.75 | kết liễu: mục tiêu hoá dải khăn trắng bay thẳng lên rồi tan; không kết liễu: cột vỡ thành giọt âm |
| 2 | rỗng; Phường về r48 |
ult H12_UL3 Ban Nhạc Bất Tận (dạng 10 s): H12_UL3_ACTIVATE tick 0–30 …
Ban Nhạc Bất Tận: mười giây cả phường không bao giờ tan, mọi khúc tính đúng phách, cứ phách bốn là một hợp âm r120 hất văng bầy.
Chi tiết spec
- Kích hoạt
- ult H12_UL3 Ban Nhạc Bất Tận (dạng 10 s): H12_UL3_ACTIVATE tick 0–30 bất tử, đủ 4 nhạc công không mất, vòng nhịp sáng cả 4 vạch (frame 0–14); H12_UL3_CHORD mỗi phách 4 RING r120 4.0 coef, đẩy 24 px, 5 lần (frame 15–29); cũng H12_E11; kèm VFX_H12_band_flag + VFX_SHARED_screen_flash_ult; t = 0 = frame hợp âm (đoạn 2)
- Canvas
- 256×160 gốc 128/96
- Pha (s)
- antic −0.5/0 · impact 0/0.067 · dissipate 0.067/0.5
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind MOTE, count 12, speed 120, life_s 0.4, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape ring r120 w120, match vành thủ tục = hitbox frame đó (RING r120 r_in 0); r120 elip 240×120 lệch ≤ 1 px; 5 hợp âm trong 10 s, wave procedural
- Nguồn
- new src/fx/heroes/h12-ul3-endless-band.js (costume _ambrin.js; 2 đoạn: khai tấu frame 0–14, hợp âm phách 4 frame 15–29; vành r120 = shader FloorEllipse {shape:ring})
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay ring r120 w120 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.5 | đoạn 1 khai tấu: 4 nhạc công hiện ở r48 đánh 1 nhịp chung, vòng nhịp dưới chân bật đủ 4 vạch #dafbff, khăn tang Ambrin bay ngang |
| 0 | đoạn 2 phách 4: 1 frame #ffffff tại Ambrin + 4 tia mảnh từ 4 nhạc công dồn vào tâm |
| 0.033 | vành thủ tục rộng 10 lan r0 → r120 trong 6 tick (elip 240×120), mép #fff6f0, thân #2ec0e8 40% |
| 0.2 | vành chạm r120, 12 giọt âm bắn ra; trauma 0.4 |
| 0.5 | rỗng; vòng nhịp giữ 4 vạch sáng suốt 10 s |
TEMPLATE · 25
Lướt Bước Đưa Tang (H12_DASH: 80 px / 9 tick, bất tử 12 tick, 2 lượt)…
Bước Đưa Tang: lướt thấp sát đất, hai đuôi khăn tang quật ngược — máy nhịp vẫn chạy, không mất phách.
Chi tiết spec
- Kích hoạt
- Lướt Bước Đưa Tang (H12_DASH: 80 px / 9 tick, bất tử 12 tick, 2 lượt); cũng H12_E10 (điểm đáp), H12_E12 (đường diễu); kèm VFX_SHARED_dash_afterimage; t = 0 = frame bắt đầu Lướt
- Canvas
- 112×40 gốc 100/30
- Pha (s)
- antic 0/0 · impact 0/0.033 · dissipate 0.033/0.4
- Easing
- curve outQuart, freeze_s 0
- Hạt
- kind DUST, count 8, speed 40, life_s 0.3, hex #1a556b, gravity 0, shadow không
- Hitbox
- shape none, match không gây sát thương — không đo, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_dash_dust --opts palette H12, knob len:80, cloth:2, neo feet
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay không áp dụng (không gây sát thương), art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| 0 | bụi sàn bật tại điểm xuất phát, 2 đuôi khăn tang dài 12 px bay ngược hướng Lướt |
| 0.05 | vệt sàn mảnh rộng 6 px kéo theo chân suốt 80 px, 3 cụm bụi #1a556b |
| 0.15 | dừng: 4 giọt âm rơi tại điểm đáp; nếu Lướt đúng phách vạch phách nháy (beat_ring) |
| 0.4 | rỗng |
H12_DASH_ATTACK Kèn Lướt Rước (ARC 180° r48, startup 3 tick, active 4…
Kèn Lướt Rước: trượt tới quét kèn nửa vòng r48 — lướt vào phách 1 rồi đánh là mở khúc.
Chi tiết spec
- Kích hoạt
- H12_DASH_ATTACK Kèn Lướt Rước (ARC 180° r48, startup 3 tick, active 4 tick, hit_frame 6; tính là phách đang tới); cũng H12_E07, H12_RS2; kèm VFX_H12_sound_arc; t = 0 = frame chạm
- Canvas
- 80×80 gốc 24/52
- Pha (s)
- antic −0.05/0 · impact 0/0.067 · dissipate 0.067/0.4
- Easing
- curve outQuart, freeze_s 0
- Hạt
- kind DUST, count 6, speed 60, life_s 0.3, hex #1a556b, gravity 0, shadow không/kind MOTE, count 4, speed 70, life_s 0.25, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape sector r48 a180, match floorArc r48 a180 trùng biên P(φ) ±2 px; phủ ≥ 92%, vượt ≤ 4 px, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_hit_slash --opts palette H12, knob radius:48, arc:180, bands:2, swing tilt 0.9
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay sector r48 a180 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.05 | trượt tới, kèn quặt ngang ra sau vai |
| 0 | quét kèn nửa vòng: cung 2 band đặc từ -90° đến +90° trên sàn r48 + ở h 12, mép #fff6f0 |
| 0.033 | đúng phách: 1 frame #ffffff mép ngoài; bụi sàn bắn theo hướng trượt |
| 0.2 | cung nguội #2389ae |
| 0.4 | rỗng |
mỗi mục tiêu trúng sóng âm của Ambrin (H12_BEAT_1..3, H12_SK05_BEAT, …
Tia trúng của Ambrin: không tia lửa, chỉ 2 vòng âm và 4 giọt âm — trúng bằng tiếng, không bằng lưỡi.
Chi tiết spec
- Kích hoạt
- mỗi mục tiêu trúng sóng âm của Ambrin (H12_BEAT_1..3, H12_SK05_BEAT, H12_UL2_BEAT); t = 0 = frame chạm; trần R5 16 VFX trúng/frame
- Canvas
- 32×32 gốc 16/20
- Pha (s)
- antic 0/0 · impact 0/0.033 · dissipate 0.033/0.3
- Easing
- curve outQuart, freeze_s 0
- Hạt
- kind MOTE, count 4, speed 80, life_s 0.2, hex #66e6ff, gravity 0, shadow không
- Hitbox
- shape none, match không gây sát thương — không đo, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_hit_blunt --opts palette H12, knob rings:2, neo impact
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay không áp dụng (không gây sát thương), art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| 0 | 1 frame #ffffff thân mục tiêu (runtime) + vòng âm r6 #fff6f0 |
| 0.033 | 2 vòng âm lan r6 → r12 (elip 24×12 khi chiếu ở sàn h 12), viền #2ec0e8 |
| 0.15 | 4 giọt âm văng chéo, nguội #2389ae |
| 0.3 | rỗng |
attack6 hit (H12_FIN_VAP Khúc Vấp ♪—♪♪, CIRCLE r64, đẩy S 40 px, star…
Khúc Vấp: nhịp hụt chân thành cú dậm — đĩa sóng r64 nứt toác sàn, đẩy bầy ra 40 px.
Chi tiết spec
- Kích hoạt
- attack6 hit (H12_FIN_VAP Khúc Vấp ♪—♪♪, CIRCLE r64, đẩy S 40 px, startup 8 tick, active 4 tick, hit_frame 11); t = 0 = frame chạm
- Canvas
- 152×104 gốc 76/60
- Pha (s)
- antic −0.133/0 · impact 0/0.067 · dissipate 0.067/0.6
- Easing
- curve outQuart, freeze_s 0
- Hạt
- kind DUST, count 10, speed 50, life_s 0.4, hex #1a556b, gravity 0, shadow không/kind MOTE, count 6, speed 70, life_s 0.3, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape circle r64, match đĩa r64 (elip 128×64) lệch ≤ 2 px; phủ 100% hitbox, nứt vượt ≤ 8 px (L), wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_hit_heavy --opts palette H12, knob radius:64, cracks:6, slam(o,{D:64,motes:10})
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r64 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.133 | Ambrin co gối, loa chúc xuống sàn |
| 0 | dậm chân: 1 frame #ffffff; đĩa sóng r64 (elip 128×64) bật đầy, mép 1 px #fff6f0 |
| 0.067 | 6 nứt âm toả từ chân dài 24–48 px #66e6ff; bụi sàn trồi vòng mép |
| 0.25 | đĩa nguội #2389ae, nứt còn lại thành decal 1.5 s |
| 0.6 | sheet rỗng (decal nứt tan dither ở 1.5 s) |
H12_BAND_HORN (Nhịp = 16): phách 2 và 4 thổi LINE 160 × 16 xuyên về q…
Kèn Phụ Họa: nhạc công thứ tư thổi tia âm mảnh xuyên hàng ở phách 2 và 4 — dấu hiệu Phường đã đủ mặt.
Chi tiết spec
- Kích hoạt
- H12_BAND_HORN (Nhịp = 16): phách 2 và 4 thổi LINE 160 × 16 xuyên về quái gần nhất trong 240 px, active 4 tick; H12_E40 đủ Vang dùng VFX_H12_E40_eternal_wake; t = 0 = frame nhả hơi
- Canvas
- 176×40 gốc 8/28
- Pha (s)
- antic −0.067/0 · impact 0/0.067 · dissipate 0.067/0.4
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind MOTE, count 3, speed 600, life_s 0.25, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape line L160 W16, match vệt sàn L160 × W16 trùng hitbox ±2 px, gốc tại chân nhạc công Kèn Phụ; dài màn theo §2.1, wave none
- Nguồn
- new src/fx/heroes/h12-band-horn.js (costume _ambrin.js; beam mảnh từ kèn nhỏ 14 px nhạc công, knob len|w)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay line L160 W16 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.067 | kèn phụ nhạc công giơ lên hướng mục tiêu, loa nhỏ sáng #66e6ff |
| 0 | 1 frame #fff6f0: tia mảnh lõi 2 px bắn hết L160 ở h 14; vệt sàn rộng 16 (8 px màn) |
| 0.033 | 3 giọt âm chạy dọc tia 600 px/s |
| 0.2 | tia mảnh dần từ gốc |
| 0.4 | rỗng |
trạng thái BAND_FLAG (Nhịp ≥ 12: Ambrin + Phường +20% tốc đánh) — loo…
Cờ Phướn: phướn tang trắng giật theo từng phách — Phường đang đánh nhanh hơn 20%.
Chi tiết spec
- Kích hoạt
- trạng thái BAND_FLAG (Nhịp ≥ 12: Ambrin + Phường +20% tốc đánh) — loop gắn nhạc công Cờ Phướn; cũng H12_UL3 (Phường đủ, không mất) và H12_EVO3 (Phướn Trắng tại mục tiêu); t = 0 = phách 1 của ô nhịp
- Canvas
- 32×48 gốc 16/44
- Pha (s)
- antic −0.133/0 · impact 0/0.067 · dissipate 0.067/2
- Easing
- curve linear, freeze_s 0
- Hạt
- kind MOTE, count 12, speed 20, life_s 0.6, hex #a3f4ff, gravity −30, shadow không
- Hitbox
- shape none, match không gây sát thương — không đo, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_resonance_on --opts palette H12, knob banner_h:30, ripple:4, loop 15 fps
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay không áp dụng (không gây sát thương), art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.133 | phướn trắng (sào 30 px) rủ xuống |
| 0 | phách 1: phướn giật bung ngang, mép phướn 1 px #66e6ff, 3 hạt sáng bay lên |
| 0.5 | phách 2, 1.0 phách 3, 1.5 phách 4: mỗi phách một gợn chạy dọc phướn từ sào ra đuôi |
| 1.8 | phướn rủ lại, nối vòng liền mạch tại 2.0 s |
cú combo/khúc bấm lệch phách (ngoài ±0.12 s, Thương Xót ±0.16 s): Nhị…
Lạc phách: loa kèn nứt tiếng, giọt âm rơi tõm — báo Nhịp vừa bị chia đôi mà không che đòn.
Chi tiết spec
- Kích hoạt
- cú combo/khúc bấm lệch phách (ngoài ±0.12 s, Thương Xót ±0.16 s): Nhịp = floor(Nhịp/2) (AS2: −2); t = 0 = frame chạm của cú lệch
- Canvas
- 32×32 gốc 16/24
- Pha (s)
- antic 0/0 · impact 0/0.033 · dissipate 0.033/0.3
- Easing
- curve linear, freeze_s 0
- Hạt
- kind DRIP, count 3, speed 20, life_s 0.25, hex #2389ae, gravity 950, shadow không
- Hitbox
- shape none, match không gây sát thương — không đo, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_dissolve_dither --opts palette PD H12 (ramp tối), knob crack:3, neo muzzle
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay không áp dụng (không gây sát thương), art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| 0 | loa kèn: 3 vết nứt gãy khúc 1 px #66e6ff toả từ miệng loa (tiếng vỡ) |
| 0.033 | số pip mất trên vòng nhịp dưới chân tắt; giọt âm rơi thẳng xuống sàn 8 px |
| 0.15 | vết nứt tan dither Bayer 4×4 #1a556b → #0d3547 |
| 0.3 | rỗng |
H12_SK01 Đám Rước (H12_SK01_MARCH: startup 10 tick, diễu 60 tick = 2 …
Đám Rước: cả phường xếp hàng một diễu thẳng 240 px, khăn tang bay dạt hai bên — bầy bị xua sang lề như người đứng xem đám.
Chi tiết spec
- Kích hoạt
- H12_SK01 Đám Rước (H12_SK01_MARCH: startup 10 tick, diễu 60 tick = 2 phách, RECT 240 × 48 theo hướng ngắm, 4 thành viên, đẩy dạt 16 px, STS_DREAD 1.5 s); cũng H12_E12/E37 (đường Lướt), H12_E24/E30; t = 0 = thành viên đầu bước vào làn
- Canvas
- 256×64 gốc 8/40
- Pha (s)
- antic −0.167/0 · impact 0/0.067 · dissipate 0.067/1.2
- Easing
- curve linear, freeze_s 0
- Hạt
- kind DUST, count 16, speed 30, life_s 0.4, hex #1a556b, gravity 0, shadow không/kind MOTE, count 8, speed 20, life_s 0.6, hex #a3f4ff, gravity −20, shadow không
- Hitbox
- shape rect L240 W48, match làn 240 × 48 trùng hitbox ±2 px (rộng màn e/w 24, n/s 48); vệt gót mỗi thành viên phủ 100% bề rộng làn khi đi qua, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_summon_vortex → new src/fx/heroes/h12-sk01-procession.js (costume _ambrin.js; vệt đường diễu + dải vải theo hàng, knob len|w|turn)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay rect L240 W48 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.167 | Ambrin thổi hiệu rước, loa chĩa trước; 4 nhạc công (thiếu thì bóng tạm α 0.4) xếp hàng một sau lưng |
| 0 | làn sàn 240 × 48 hiện viền 1 px #2389ae α 0.6 (không fill 25%: khác tell P); thành viên đầu bước vào |
| 0.067 | mỗi thành viên để vệt sáng rộng 48 sau gót, 2 dải khăn tang bay ra 2 mép làn (đẩy dạt 16 px) |
| 0.5 | phách 2: đoàn tới giữa làn (120 px); hạng III rẽ ≤ 90° tại đây (làn gãy chữ L 120 + 120) |
| 1 | thành viên cuối ra khỏi làn; bóng tạm tan bằng VFX_H12_band_vanish |
| 1.2 | vệt làn tan dither, rỗng |
H12_SK02 Tấu Khúc Bay: mỗi phách 3 nốt (frame 0–3 = phun tại loa); ph…
Tấu Khúc Bay: mỗi phách ba nốt phụt khỏi loa, phách cuối nốt trầm vỡ đĩa r40 — đếm được 4 phách qua 4 lần phun.
Chi tiết spec
- Kích hoạt
- H12_SK02 Tấu Khúc Bay: mỗi phách 3 nốt (frame 0–3 = phun tại loa); phách 4 nốt trầm H12_SK02_LOW vỡ CIRCLE r40 ở mục tiêu đầu hoặc cuối tầm (frame 4–15); cũng H12_E04, H12_E25; t = 0 = frame vỡ nốt trầm
- Canvas
- 96×60 gốc 48/38
- Pha (s)
- antic −0.133/0 · impact 0/0.067 · dissipate 0.067/0.533
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind SHARD, count 6, speed 120, life_s 0.3, hex #a3f4ff, gravity 950, shadow có
- Hitbox
- shape circle r40, match đĩa vỡ r40 (elip 80×40) lệch ≤ 2 px, phủ 100%; nốt bay dùng VFX_H12_note_bolt proj r4, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_hit_pierce --opts palette H12, knob burst_r:40, muzzle_rings:3
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r40 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.133 | frame 0–3 (phát tại muzzle mỗi phách): 3 vòng âm nhỏ r6 phụt khỏi loa theo 3 làn cách 12 px |
| 0 | nốt trầm chạm: 1 frame #ffffff, vỡ thành đĩa âm r40 (elip 80×40) mép #fff6f0 2 px |
| 0.067 | 6 mảnh giọt âm văng tròn, glyph SHOCK chung lên mục tiêu đầu |
| 0.3 | đĩa nguội #2389ae |
| 0.533 | rỗng |
H12_SK03 Kèn Xua (H12_SK03_BLAST: startup 9 tick, active 5 tick, RECT…
Kèn Xua: một bức tường âm đứng tiến thẳng 200 px, lùa cả bầy ra xa như xua quạ khỏi đám tang.
Chi tiết spec
- Kích hoạt
- H12_SK03 Kèn Xua (H12_SK03_BLAST: startup 9 tick, active 5 tick, RECT 200 × 96 trước mặt, đẩy S 80 px trong 14 tick, STS_DREAD 1.5 s, đúng phách S khựng 0.6 s); cũng H12_E32; kèm VFX_SHARED_sts_dread; t = 0 = frame nhả hơi
- Canvas
- 232×88 gốc 12/60
- Pha (s)
- antic −0.15/0 · impact 0/0.083 · dissipate 0.083/0.7
- Easing
- curve outQuart, freeze_s 0
- Hạt
- kind STREAK, count 18, speed 340, life_s 0.3, hex #a3f4ff, gravity 0, shadow không/kind DUST, count 10, speed 80, life_s 0.4, hex #1a556b, gravity 0, shadow không
- Hitbox
- shape rect L200 W96, match vệt quét 200 × 96 trùng hitbox ±2 px; tường đi đúng 200 px trong 14 tick = quãng đẩy; hạng III xuất knob len 240 (ô 256 rộng), wave reach
- Nguồn
- recolor sheet gốc VFX_SHARED_hit_blast → new src/fx/heroes/h12-sk03-shoo-wave.js (bức tường âm đứng tiến tới, knob len:200|240, w:96)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay rect L200 W96 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.15 | chĩa loa, má phồng; 4 vòng âm tụ trong loa |
| 0 | 1 frame #ffffff: bức tường âm đứng cao 32 rộng 96 (48 px màn ở Đông/Tây) bật tại loa |
| 0.083 | tường tiến 0 → 200 px trong 0.233 s (14 tick) đẩy bầy theo, mép trước #fff6f0, thân 3 lớp gợn #2ec0e8 40% |
| 0.233 | tường đứng ở 200 px, vỡ thành 10 vệt gió |
| 0.5 | vệt sàn nguội #1a556b |
| 0.7 | rỗng |
H12_SK04 Hợp Âm Thu (H12_SK04_CHORD: startup 8 tick, vòng r80 đặt tại…
Hợp Âm Thu: một hợp âm treo lơ lửng thành vòng r80, đạn địch bị cuốn quay vòng rồi bị trả ngược ×2 khi hợp âm vỡ.
Chi tiết spec
- Kích hoạt
- H12_SK04 Hợp Âm Thu (H12_SK04_CHORD: startup 8 tick, vòng r80 đặt tại chỗ 120 tick, giữ ≤ 12 đạn Y, quái chậm 25%, đạn tím xuyên; hết giờ nổ r80 1.5 coef + STS_SHOCK, rồi H12_SK04_RELEASE trả đạn); cũng H12_E17, H12_E29; kèm VFX_SHARED_sts_slow; t = 0 = vòng thành hình
- Canvas
- 184×104 gốc 92/56
- Pha (s)
- antic −0.133/0 · impact 2/2.067 · dissipate 2.067/2.2
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind MOTE, count 12, speed 90, life_s 0.3, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape circle r80, match vành r80 (elip 160×80) trùng vùng giữ đạn + nổ ±2 px; nổ phủ 100% ở frame 2.0 s, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_sts_slow → new src/fx/heroes/h12-sk04-chord-hold.js (vòng hợp âm treo + quỹ đạo đạn, knob radius|follow)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r80 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.133 | loa thổi một hợp âm 3 nốt, 3 vòng âm bay tới điểm đặt |
| 0 | vành r80 (elip 160×80) 1 px #66e6ff + vành trong r72 #2389ae, fill 15%; 3 dây âm xoay quanh tâm 0.5 vòng/s |
| 0.5 | mỗi phách vành nhấp 1 px; đạn Y bị bắt đổi ramp H12, xoay quỹ đạo r24–r64 quanh tâm |
| 2 | 1 frame #ffffff: vòng nổ đặc r80 fill 45%, mép #fff6f0 2 px; đạn giữ phóng theo hướng ngắm (VFX_H12_note_bolt) |
| 2.067 | glyph SHOCK chung lên quái trúng; vòng nguội |
| 2.2 | rỗng |
H12_SK05 Cao Trào: H12_SK05_BEAT phách 1–3 (khoá 1 mục tiêu ≤ 120 px,…
Cao Trào: mỗi phách đúng chồng thêm một tầng vòng âm trên đầu mục tiêu, phách bốn dồn cả ba thành một nốt cao chót vót xuyên qua.
Chi tiết spec
- Kích hoạt
- H12_SK05 Cao Trào: H12_SK05_BEAT phách 1–3 (khoá 1 mục tiêu ≤ 120 px, áp sát ≤ 48 px, LINE 72 × 24, startup 4 tick, active 3 tick) và H12_SK05_FINAL phách 4 (LINE 96 × 32, 6.0 coef × ≤ 1.6, shieldbreak); cũng H12_E21, H12_E22, H12_EVO3; t = 0 = frame chạm
- Canvas
- 112×96 gốc 16/72
- Pha (s)
- antic −0.067/0 · impact 0/0.067 · dissipate 0.067/0.6
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind STAR, count 8, speed 90, life_s 0.3, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape line L72 W24, match tia loa → mục tiêu dài 72 rộng 24 trùng hitbox ±2 px; phách chốt line L96 W32, cột đứng đặt đúng điểm cuối 96 px, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_hit_crit → new src/fx/heroes/h12-sk05-crescendo.js (tia ngắn loa → mục tiêu + tầng vòng âm chồng trên mục tiêu, knob tier:1|2|3|final)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay line L72 W24 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.067 | áp sát, loa chĩa vào mục tiêu |
| 0 | tia âm ngắn từ loa tới mục tiêu (72 px, h 14); trên đầu mục tiêu bật 1 tầng vòng âm elip 20×10 cho mỗi cú đúng phách đã tích (tối đa 3 tầng, cách nhau 8 px) |
| 0.033 | lệch phách: các tầng vỡ rơi (xoá cộng dồn); đúng phách: tầng mới 1 frame #fff6f0 |
| 0.067 | phách chốt (tier final): cột nốt cao chót vót h 64 xuyên mục tiêu, 1 frame #ffffff, các tầng dồn vào cột |
| 0.3 | cột và tầng nguội #2389ae |
| 0.6 | rỗng |
H12_SK06 Vòng Tang Ca (H12_SK06_RING: startup 10 tick, vòng r72 cố đị…
Vòng Tang Ca: cắm cờ tang hát một khúc, vòng r72 che chở cả phường; mỗi phách bốn tiếng ca dội ra như sóng.
Chi tiết spec
- Kích hoạt
- H12_SK06 Vòng Tang Ca (H12_SK06_RING: startup 10 tick, vòng r72 cố định 360 tick, −25% sát thương nhận cho Ambrin + Phường trong vòng, Thế hồi ×2, mỗi phách 4 dội 2.5 coef ×3); cũng H12_E16, H12_E27; kèm VFX_SHARED_shield_hero trên thân; t = 0 = cờ tang cắm xuống
- Canvas
- 168×104 gốc 84/60
- Pha (s)
- antic −0.167/0 · impact 1.5/1.567 · dissipate 1.567/2
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind MOTE, count 6, speed 15, life_s 1, hex #a3f4ff, gravity −15, shadow không
- Hitbox
- shape circle r72, match vành r72 (elip 144×72) trùng vùng giảm sát thương + dội ±2 px; sóng dội phủ 100% ở frame 1.567 s, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_shield_hero → new src/fx/heroes/h12-sk06-dirge-ring.js (vòng tang ca + cờ tang cắm tâm, loop 1 ô nhịp, knob radius)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r72 trên sheet + 1 ảnh in-game có tell P gần (kiểm R2 α 0.70), art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.167 | cờ tang trắng (sào 30 px) cắm phập xuống tâm, bụi bật |
| 0 | vành r72 (elip 144×72) liền 1 px #66e6ff + vành trong r64 liền #2389ae (không chấm, khác vùng N); fill 15%; 4 dải khăn buông từ đầu cờ xuống 4 phía |
| 0.5 | phách 2–3: dải khăn lay theo phách, vành nhấp 1 px |
| 1.5 | phách 4: 1 frame #fff6f0 — sóng dội từ cờ lan r0 → r72 trong 2 frame, mép 2 px |
| 1.567 | sóng nguội, vành về trạng thái giữ |
| 2 | nối loop; hết 6 s vòng tan dither 0.3 s |
H12_SK07 Nhịp Bước Tang: H12_SK07_STEP 4 phách +35% tốc chạy (dấu châ…
Nhịp Bước Tang: chạy theo trống, mỗi bước đúng phách in một đĩa dậm r40 có 4 vạch phách — chân giữ nhịp thay tay.
Chi tiết spec
- Kích hoạt
- H12_SK07 Nhịp Bước Tang: H12_SK07_STEP 4 phách +35% tốc chạy (dấu chân = frame 0–3 ở scale 0.4 mỗi phách) và H12_SK07_FOOTFALL Lướt đúng phách dậm CIRCLE r40 1.5 coef, đẩy S 12 px (≤ 2 lần/lượt); cũng H12_E08; kèm VFX_H12_beat_ring sáng; t = 0 = frame Lướt dừng
- Canvas
- 96×56 gốc 48/30
- Pha (s)
- antic −0.033/0 · impact 0/0.05 · dissipate 0.05/0.4
- Easing
- curve outQuart, freeze_s 0
- Hạt
- kind DUST, count 8, speed 50, life_s 0.3, hex #1a556b, gravity 0, shadow không
- Hitbox
- shape circle r40, match đĩa r40 (elip 80×40) lệch ≤ 2 px, phủ 100%, wave none
- Nguồn
- new src/fx/heroes/h12-sk07-march-step.js (costume _ambrin.js; dậm sàn r40 + dấu chân nhịp, knob radius)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r40 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.033 | gót chạm sàn, vạch phách trên vòng nhịp sáng |
| 0 | 1 frame #fff6f0: đĩa dậm r40 (elip 80×40) bật đầy, mép 2 px, 4 vạch phách in lên đĩa |
| 0.05 | đĩa nở thêm 2 px, bụi bật quanh mép |
| 0.2 | nguội #2389ae |
| 0.4 | rỗng |
H12_SK08 Gọi Phường (H12_SK08_CALL: startup 12 tick, Nhịp nhảy lên mố…
Gọi Phường: một hiệu kèn và nhạc công của mốc kế rơi thẳng xuống, đĩa hạ r64 hất bầy — Nhịp nhảy vọt không cần chờ.
Chi tiết spec
- Kích hoạt
- H12_SK08 Gọi Phường (H12_SK08_CALL: startup 12 tick, Nhịp nhảy lên mốc kế 4/8/12/16, nhạc công mốc đó hạ xuống CIRCLE r64 2.0 coef, đẩy S 24 px); cũng H12_E10 (hạ tại điểm đáp Lướt), H12_E31; kèm VFX_H12_band_summon; t = 0 = frame chạm sàn
- Canvas
- 152×120 gốc 76/88
- Pha (s)
- antic −0.2/0 · impact 0/0.067 · dissipate 0.067/0.7
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind DUST, count 12, speed 70, life_s 0.4, hex #1a556b, gravity 0, shadow không/kind MOTE, count 8, speed 80, life_s 0.3, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape circle r64, match đĩa hạ r64 (elip 128×64) lệch ≤ 2 px, phủ 100%, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_spawn_rise → new src/fx/heroes/h12-sk08-call-band.js (nhạc công rơi từ h 48 + đĩa hạ r64, knob radius|member)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r64 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.2 | Ambrin thổi hiệu gọi; cột sáng mảnh từ trên rơi xuống điểm hạ, bóng sàn r10 lớn dần |
| 0 | nhạc công chạm sàn: 1 frame #ffffff, đĩa hạ r64 (elip 128×64) bật đầy, mép #fff6f0 2 px; khăn tang bung |
| 0.067 | S bị đẩy 24 px, bụi + giọt âm toả |
| 0.35 | đĩa nguội #2389ae |
| 0.7 | rỗng |
Dạng Rèn H12_AS2: H12_AS2_FIN kèm MỌI đòn kết phách 4 (startup 8 tick…
Loa Lớn Đẩy: mọi khúc kết kèm một mặt sóng phẳng 120 × 64 lùa thẳng — loa đồng to thổi bạt cả hàng.
Chi tiết spec
- Kích hoạt
- Dạng Rèn H12_AS2: H12_AS2_FIN kèm MỌI đòn kết phách 4 (startup 8 tick, active 4 tick, RECT 120 × 64 trước mặt, 1.5 coef, đẩy S 48 px, shieldbreak); t = 0 = frame chạm của khúc kết
- Canvas
- 144×80 gốc 8/48
- Pha (s)
- antic −0.133/0 · impact 0/0.067 · dissipate 0.067/0.5
- Easing
- curve outQuart, freeze_s 0
- Hạt
- kind STREAK, count 10, speed 300, life_s 0.3, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape rect L120 W64, match vệt quét 120 × 64 trùng hitbox ±2 px (rộng màn e/w 32, n/s 64); mặt sóng đi đủ 120 px trong active, wave reach
- Nguồn
- recolor sheet gốc VFX_SHARED_hit_heavy --opts palette H12 hue −3 (Dạng Rèn AS2 Kèn Đồng Loa Lớn), knob len:120, w:64
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay rect L120 W64 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.133 | loa đồng lớn (rộng 12 px) sáng viền #66e6ff |
| 0 | 1 frame #ffffff: mặt sóng phẳng rộng 64 (32 px màn ở Đông/Tây), cao 24, bật tại loa |
| 0.067 | mặt sóng trượt 0 → 120 px trong 4 frame, mép trước #fff6f0, 2 lớp gợn sau #2ec0e8 40% |
| 0.2 | mặt sóng dừng ở 120, vỡ thành vệt gió |
| 0.5 | rỗng |
Dạng Rèn H12_AS3: H12_AS3_FIN kèm MỌI đòn kết phách 4 (startup 8 tick…
Lá Xương Quạt Nốt: khúc kết nào cũng xoè 5 nốt lá xương quạt 60° — kèn nhỏ, tầm xa.
Chi tiết spec
- Kích hoạt
- Dạng Rèn H12_AS3: H12_AS3_FIN kèm MỌI đòn kết phách 4 (startup 8 tick, active 4 tick): 5 nốt xương quạt 60°, tầm 220, 480 px/s, xuyên 1 — sheet này là chớp phát tại loa, nốt bay = VFX_H12_note_bolt biến thể bone; t = 0 = frame phát
- Canvas
- 64×48 gốc 12/36
- Pha (s)
- antic −0.067/0 · impact 0/0.033 · dissipate 0.033/0.3
- Easing
- curve outQuart, freeze_s 0
- Hạt
- kind MOTE, count 5, speed 60, life_s 0.2, hex #dafbff, gravity 0, shadow không
- Hitbox
- shape none, match sheet phát tại loa; sát thương do 5 nốt VFX_H12_note_bolt (bone, proj r4) quạt 60° tầm 220 — đo trên note_bolt, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_hit_pierce --opts palette PB H12 hue +3 (Dạng Rèn AS3 Kèn Lá Xương), knob notes:5, fan:60
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay không áp dụng (hitbox đo trên VFX_H12_note_bolt), art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.067 | kèn lá xương nhỏ sáng #dafbff, 5 lá xương xoè sẵn quanh loa |
| 0 | 1 frame #fff6f0: quạt 5 tia ngắn 12 px ở −30°/−15°/0°/15°/30° |
| 0.033 | 5 lá nhọn 7×3 tách khỏi loa thành nốt bay |
| 0.15 | vệt quạt tan |
| 0.3 | rỗng |
Then Chốt H12_E37 Đoàn Đưa Không Dứt (TPL_H12_lp37): Lướt đúng phách …
Đoàn Đưa Không Dứt: mỗi bước lướt đúng phách, cả phường lướt theo sau như đoàn đưa tang không bao giờ dừng.
Chi tiết spec
- Kích hoạt
- Then Chốt H12_E37 Đoàn Đưa Không Dứt (TPL_H12_lp37): Lướt đúng phách khi Nhịp ≥ 8 — hoàn lượt (hồi 1.0 s), mọi nhạc công diễu theo đường Lướt LINE 80 × 40, 10 sát thương/nhạc công, Phường ×1.3 khi diễu + 2 s; kèm VFX_H12_SK01_procession + VFX_SHARED_dash_afterimage; t = 0 = frame Lướt kết thúc
- Canvas
- 120×56 gốc 104/40
- Pha (s)
- antic −0.05/0 · impact 0/0.067 · dissipate 0.067/0.6
- Easing
- curve outQuart, freeze_s 0
- Hạt
- kind MOTE, count 8, speed 30, life_s 0.4, hex #a3f4ff, gravity −20, shadow không
- Hitbox
- shape line L80 W40, match làn 80 × 40 theo đúng đoạn Lướt (rộng màn e/w 20, n/s 40) ±2 px; mỗi bóng phủ cả bề rộng làn khi đi qua, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_dash_afterimage --opts palette H12, knob members:4, len:80, w:40
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay line L80 W40 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.05 | vòng nhịp nháy vạch đúng phách; 4 nhạc công rời quỹ đạo r48 |
| 0 | 4 bóng nhạc công (24 px, lõi #fff6f0 α 0.7) lướt nối đuôi dọc đường 80 px, mỗi bóng để 1 dải khăn tang rộng 40 trên sàn |
| 0.067 | dải khăn sàn nối liền thành làn 80 × 40, mép #66e6ff 1 px |
| 0.5 | Phường quay về r48 (0.5 s), làn tan dither |
| 0.6 | rỗng; viền nhạc công dày 2 px 2 s = ×1.3 |
Then Chốt H12_E38 Cả Phường Thổi Dội (TPL_H12_lp38): ĐÁP đúng phách →…
Cả Phường Thổi Dội: Ambrin đáp đúng phách, bốn nhạc công cùng thổi dội theo — năm vòng nổ cùng một frame.
Chi tiết spec
- Kích hoạt
- Then Chốt H12_E38 Cả Phường Thổi Dội (TPL_H12_lp38): ĐÁP đúng phách → mỗi nhạc công Thổi Dội r44 tại chỗ (S choáng 1.0 s, đạn Y dội ×2); khi giữ Nốt Ngân mỗi nhạc công ngân vòng r40 (đạn chậm 50%); kèm VFX_H12_answer_blast tại Ambrin; t = 0 = frame ĐÁP của Ambrin
- Canvas
- 104×64 gốc 52/40
- Pha (s)
- antic 0/0 · impact 0/0.067 · dissipate 0.067/0.5
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind MOTE, count 6, speed 90, life_s 0.3, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape circle r44, match đĩa r44 (elip 88×44) tâm chân nhạc công lệch ≤ 2 px, phủ 100%; vành ngân r40 trùng vùng hãm ±1 px, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_answer_perfect --opts palette H12, knob radius:44, hold_r:40, neo feet nhạc công
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r44 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| 0 | cùng frame với Ambrin: tại mỗi nhạc công 1 frame #fff6f0, vòng nổ r44 (elip 88×44) mép 2 px |
| 0.033 | nhạc cụ của từng người phụt vòng âm (trống: vòng dày, chũm chọe: vòng kép, phướn: vòng gợn, kèn phụ: vòng mảnh) |
| 0.25 | vòng nguội #2389ae |
| 0.5 | rỗng; nếu giữ Nốt Ngân: mỗi nhạc công giữ vành r40 1 px loop theo VFX_H12_held_note |
Then Chốt H12_E39 Hồi Kèn Cuối (TPL_H12_lp39): Phản trúng quái M/L/XL…
Hồi Kèn Cuối: phản trúng kẻ đã vỡ thế thì thổi luôn bốn phách tiễn rút gọn — đốt 4 Nhịp đổi thành Dư Âm.
Chi tiết spec
- Kích hoạt
- Then Chốt H12_E39 Hồi Kèn Cuối (TPL_H12_lp39): Phản trúng quái M/L/XL đang Vỡ Thế → khoá, 4 phách mỗi 13 tick, 30 sát thương +15%/phách, phách cuối kết liễu ≤ 12% HP (Boss chỉ nhận sát thương); tiêu 4 Nhịp → +10 Dư Âm; t = 0 = frame Phản chạm
- Canvas
- 112×96 gốc 16/72
- Pha (s)
- antic −0.1/0 · impact 0.65/0.717 · dissipate 0.717/1.2
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind STAR, count 10, speed 90, life_s 0.3, hex #a3f4ff, gravity 0, shadow không/kind FLAKE, count 6, speed 50, life_s 0.7, hex #fff6f0, gravity −60, shadow không
- Hitbox
- shape line L96 W32, match tia mỗi phách 96 × 32 trùng hitbox ±2 px; cột đặt đúng tâm mục tiêu khoá, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_hit_crit → biến thể rút gọn của VFX_H12_UL2_lone_farewell (knob beats:4), palette H12
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay line L96 W32 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.1 | 4 chấm Nhịp rút khỏi vòng nhịp dưới chân bay vào loa (= tiêu 4 Nhịp) |
| 0 | phách 1: tia 96 × 32 loa → mục tiêu, 1 tầng vòng âm trên đầu mục tiêu |
| 0.217 | phách 2; 0.433 phách 3 — mỗi phách thêm 1 tầng, tầng mới 1 frame #fff6f0 |
| 0.65 | phách 4: 1 frame #ffffff, 4 tầng dồn thành cột h 64; kết liễu: mục tiêu hoá dải khăn trắng bay lên |
| 0.717 | 1 tia sáng mảnh từ cột bay về Ambrin (= +10 Dư Âm) |
| 1.2 | rỗng |
Then Chốt H12_E40 Đám Tang Không Tàn (TPL_H12_lp40): Nhịp = 16, mỗi c…
Đám Tang Không Tàn: ở 16 Nhịp, bốn cung Vang lấp dần quanh chân; đủ bốn là Kèn Phụ ngân một hợp âm r120.
Chi tiết spec
- Kích hoạt
- Then Chốt H12_E40 Đám Tang Không Tàn (TPL_H12_lp40): Nhịp = 16, mỗi cú đúng phách +1 Vang (≤ 4, hiện trên vòng nhịp); đủ 4 Vang → Kèn Phụ hợp âm RING r120, 25 sát thương, Vang về 0; khúc kết ×1.3; kèm VFX_H12_band_horn; t = 0 = frame hợp âm
- Canvas
- 256×144 gốc 128/84
- Pha (s)
- antic −0.2/0 · impact 0/0.067 · dissipate 0.067/0.5
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind MOTE, count 10, speed 110, life_s 0.35, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape ring r120 w120, match vành thủ tục = hitbox frame đó (RING r120 r_in 0, elip 240×120 lệch ≤ 1 px), wave procedural
- Nguồn
- recolor sheet gốc VFX_SHARED_resonance_on → new src/fx/heroes/h12-e40-eternal-wake.js (đoạn Vang frame 0–5 + hợp âm frame 6–20; vành r120 = shader FloorEllipse {shape:ring})
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay ring r120 w120 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.2 | đoạn Vang: mỗi Vang = 1 cung ngắn 6 px #dafbff ngoài vòng nhịp r16 (4 cung ở 45°/135°/225°/315°, xen giữa 4 vạch phách) |
| 0 | đủ 4 Vang: 1 frame #ffffff tại kèn phụ nhạc công; 4 cung Vang bay vào tâm |
| 0.033 | vành thủ tục rộng 10 lan r0 → r120 trong 6 tick (elip 240×120), mép #fff6f0, thân #2ec0e8 35% |
| 0.2 | vành chạm r120, 10 giọt âm toả |
| 0.5 | rỗng; Vang về 0 |
Tiến Hoá H12_EVO1 Trống Cái Tống Táng: H12_UL1 hạ Trống Cái tại Ambri…
Trống Cái Tống Táng: đại nhạc gọi xuống một Trống Cái nện r96 — từ đó tới hết phòng, cứ hai phách trống lại rền.
Chi tiết spec
- Kích hoạt
- Tiến Hoá H12_EVO1 Trống Cái Tống Táng: H12_UL1 hạ Trống Cái tại Ambrin (+2 sóng, tick 136/166); tới hết phòng Trống đập r96 1.6 coef mỗi 2 phách (dùng VFX_H12_band_drum scale 1.6); sheet này = cú hạ Trống Cái; t = 0 = frame trống chạm sàn
- Canvas
- 216×136 gốc 108/84
- Pha (s)
- antic −0.2/0 · impact 0/0.067 · dissipate 0.067/0.6
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind DUST, count 16, speed 70, life_s 0.4, hex #1a556b, gravity 0, shadow không/kind MOTE, count 10, speed 90, life_s 0.35, hex #a3f4ff, gravity 0, shadow không
- Hitbox
- shape circle r96, match đĩa nện r96 (elip 192×96) lệch ≤ 2 px, phủ 100%; nhịp đập sau dùng VFX_H12_band_drum r96, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_evolution_forge → new src/fx/heroes/h12-evo1-grand-drum.js (Trống Cái rơi + đĩa nện r96, knob radius)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r96 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.2 | Trống Cái (cao 40 px, mặt trống #fff6f0 α 0.7, đai viền slot) rơi từ h 48, bóng sàn r20 lớn dần |
| 0 | chạm sàn: 1 frame #ffffff, đĩa nện r96 (elip 192×96) bật đầy, mép #fff6f0 2 px, 8 nứt âm toả |
| 0.067 | khăn tang buộc quanh trống bung 4 phía; bụi vòng mép |
| 0.35 | đĩa nguội #2389ae, trống đứng lại (thân = biến thể actor nhạc công Trống scale 1.5) |
| 0.6 | sheet rỗng |
Tiến Hoá H12_EVO2 Chũm Chọe Gọi Sấm: Hợp Âm Thu (H12_SK04) hết giờ nổ…
Chũm Chọe Gọi Sấm: hợp âm treo vỡ thành tiếng xoảng sấm r112 — tia gãy khúc chạy khắp vòng, bầy đứng sững.
Chi tiết spec
- Kích hoạt
- Tiến Hoá H12_EVO2 Chũm Chọe Gọi Sấm: Hợp Âm Thu (H12_SK04) hết giờ nổ thành xoảng sấm CIRCLE r112 — STS_SHOCK 3 s, S choáng 1.0 s; đạn trả mang STS_SHOCK, xuyên +2; thay frame nổ của VFX_H12_SK04_chord_hold; t = 0 = frame nổ (tick 120 của vòng)
- Canvas
- 240×136 gốc 120/76
- Pha (s)
- antic −0.1/0 · impact 0/0.067 · dissipate 0.067/0.6
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind SPARK, count 20, speed 160, life_s 0.25, hex #a3f4ff, gravity 950, shadow không
- Hitbox
- shape circle r112, match vành ngoài r112 (elip 224×112) trùng biên hitbox ±2 px ở frame 2; phủ ≥ 92% đĩa, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_evolution_forge → new src/fx/heroes/h12-evo2-thunder-cymbal.js (chũm chọe sấm thay nổ SK04, knob radius)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay pending: overlay circle r112 trên sheet --dirs + 1 ảnh in-game, art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.1 | 2 đĩa chũm chọe ma (16 px) hiện trên tâm vòng ở h 32, dang ra |
| 0 | đĩa chập: flare 4 cánh #ffffff 1 frame; vành kép r104/r112 (elip 224×112) bật đầy, mép #fff6f0 |
| 0.033 | 8 tia sấm gãy khúc 1–2 px từ tâm chạy ra vành (hình zigzag = SHOCK, doc 31 §3), giữa 2 vành 24 chấm lấp lánh |
| 0.2 | tia sấm tắt từng tia, vành nguội #2389ae |
| 0.6 | rỗng; glyph SHOCK chung trên quái trúng |
Tiến Hoá H12_EVO3 Phướn Trắng Cao Trào: H12_SK05 cắm Phướn Trắng tại …
Phướn Trắng Cao Trào: một ngọn phướn tang cắm cạnh kẻ bị khoá, vạch trên sào đếm lớp — phách chốt chắc chắn chí mạng.
Chi tiết spec
- Kích hoạt
- Tiến Hoá H12_EVO3 Phướn Trắng Cao Trào: H12_SK05 cắm Phướn Trắng tại mục tiêu 4 s; mỗi đòn Phường đúng phách lên nó +1 lớp; phách chốt luôn chí mạng; kèm VFX_H12_band_flag; t = 0 = phướn cắm xuống (runtime thả từ h 24 trong 0.1 s rồi chạy loop)
- Canvas
- 40×56 gốc 20/50
- Pha (s)
- antic −0.1/0 · impact 0/0.067 · dissipate 0.067/2
- Easing
- curve linear, freeze_s 0
- Hạt
- kind MOTE, count 8, speed 20, life_s 0.6, hex #a3f4ff, gravity −30, shadow không
- Hitbox
- shape none, match không gây sát thương — không đo, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_evolution_forge → new src/fx/heroes/h12-evo3-white-banner.js (phướn trắng cắm tại mục tiêu, loop 15 fps, knob stacks)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay không áp dụng (không gây sát thương), art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.1 | phướn trắng sào 36 px rơi cắm cạnh chân mục tiêu, bụi nhỏ |
| 0 | phướn bung, mép 1 px #66e6ff; vạch lớp trên sào = số lớp đã tích (0–4 vạch #dafbff) |
| 0.5 | mỗi phách phướn giật 1 gợn; khi Phường đánh đúng phách: vạch mới 1 frame #fff6f0 |
| 2 | nối loop; hết 4 s phướn rủ và tan dither 0.3 s |
Tiến Hoá H12_EVO4 Kèn Thức Tỉnh Gọi Đò (thức tỉnh vũ khí): loop trên …
Kèn Thức Tỉnh Gọi Đò: loa đồng bừng xanh vĩnh viễn — cung rộng hơn, vành xa hơn, mỗi phách đúng đều gieo Điện Giật.
Chi tiết spec
- Kích hoạt
- Tiến Hoá H12_EVO4 Kèn Thức Tỉnh Gọi Đò (thức tỉnh vũ khí): loop trên loa kèn tới hết run; phách 1–3 đổi ARC 150° r64, Khúc Dồn RING r96 (VFX_H12_sound_arc / VFX_H12_fin_ring dùng bậc tham số awaken); cú đúng phách STS_SHOCK 1.5 s, khúc kết STS_DREAD 1.0 s; t = 0 = frame thức tỉnh
- Canvas
- 24×24 gốc 12/12
- Pha (s)
- antic −0.083/0 · impact 0/0.083 · dissipate 0.083/1
- Easing
- curve linear, freeze_s 0
- Hạt
- kind MOTE, count 3, speed 25, life_s 1, hex #dafbff, gravity 0, shadow không
- Hitbox
- shape none, match không gây sát thương — không đo, wave none
- Nguồn
- recolor sheet gốc VFX_SHARED_evolution_forge → new src/fx/heroes/h12-evo4-awaken.js (quầng loa kèn thức tỉnh loop 12 fps, neo muzzle)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay không áp dụng (không gây sát thương), art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.083 | loa đồng bừng sáng xanh, mép loa viền #a3f4ff dày 2 px |
| 0 | quầng r8 quanh loa nhấp 1 px; 3 giọt âm nhỏ quay quanh loa 1 vòng/1.0 s |
| 0.5 | phách: quầng sáng #dafbff 1 frame |
| 1 | nối loop liền mạch |
LIBRARY · 2
full_event res_full: Nhịp chạm 16 (Kèn Phụ hiện); cũng kèm H12_BAND_H…
Phường Đủ Mặt: 16 chấm nhịp dồn lên loa, vòng tia 4 cụm xoay — đọc 16 Nhịp ngay trên thân Ambrin, không cần nhìn HUD.
Chi tiết spec
- Kích hoạt
- full_event res_full: Nhịp chạm 16 (Kèn Phụ hiện); cũng kèm H12_BAND_HORN mỗi lần Kèn Phụ ngân +50 Dư Âm; t = 0 = frame Nhịp = 16
- Canvas
- 64×72 gốc 32/64
- Pha (s)
- antic −0.067/0 · impact 0/0.067 · dissipate 0.067/0.6
- Easing
- curve outExpo, freeze_s 0
- Hạt
- kind MOTE, count 8, speed 30, life_s 0.5, hex #a3f4ff, gravity −40, shadow không
- Hitbox
- shape none, match không gây sát thương — không đo, wave none
- Nguồn
- recolor magic/sparkle-ring --opts palette H12, knob ring_r:14, pips:16, neo socket muzzle (loa kèn)
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay không áp dụng (không gây sát thương), art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| −0.067 | 16 chấm sáng #66e6ff từ vòng nhịp dưới chân bay lên loa kèn theo đường xoắn |
| 0 | 1 frame #ffffff tại loa; vòng tia lấp lánh r14 quanh loa (elip 28×14) bật đủ 16 tia |
| 0.1 | 4 cụm tia (mỗi cụm 4 = 4 phách) xoay 90° quanh loa, đầu tia #fff6f0 |
| 0.35 | vòng thu còn r8, tia nguội #2ec0e8 |
| 0.6 | rỗng; vòng nhịp dưới chân giữ 4 vạch sáng tới khi Nhịp < 16 |
nhạc công rời Phường: Nhịp tụt dưới mốc, vỡ sau 3 đòn (HP 40), hết ph…
Nhạc công rời phường: khăn trắng tuột rơi, bóng tan thành khói — Nhịp vừa tụt dưới mốc.
Chi tiết spec
- Kích hoạt
- nhạc công rời Phường: Nhịp tụt dưới mốc, vỡ sau 3 đòn (HP 40), hết phòng sau UL1, hoặc rời từng người theo H12_E35 (2 phách/người); Nhịp = 0 xoá cả Phường cùng frame; t = 0 = frame rời
- Canvas
- 32×32 gốc 16/28
- Pha (s)
- antic 0/0 · impact 0/0.033 · dissipate 0.033/0.4
- Easing
- curve outQuart, freeze_s 0
- Hạt
- kind SMOKE, count 5, speed 20, life_s 0.35, hex #2389ae, gravity −20, shadow không
- Hitbox
- shape none, match không gây sát thương — không đo, wave none
- Nguồn
- recolor smoke/puff-small --opts palette H12, knob puffs:5, neo feet nhạc công
- Review
- check_mjs pending, inv01_check pending (--kind vfx_hero --id H12), hitbox_overlay không áp dụng (không gây sát thương), art_style_reviewer pending, date 2026-11-07
| t (s) | Mô tả |
|---|---|
| 0 | khăn tang tuột khỏi bóng, rơi chéo xuống |
| 0.033 | thân bóng tan thành 5 cụm khói nhỏ #2389ae α 0.5 |
| 0.2 | khăn chạm sàn, tan dither |
| 0.4 | rỗng |
13SFX
| SFX | Loại | ms | Biến thể | Bus | Ưu tiên | Giọng | LUFS | Tell | Nguồn | Trạng thái | Brief |
|---|---|---|---|---|---|---|---|---|---|---|---|
| HeroAttackCut move=Phách Một (attack1 f8) + Kèn Lướt Rước (dash_attac… SFX_H12_a1_swing | swing | 260 | 4 | HeroAttack | 20 | 2 | −19 | none | outsource | brief | Phách Một: một tiếng kèn đưa tang ngắn, gắt mà buồn, như hiệu lệnh đầu đám. 4 biến thể = 4 hơi thổi khác nhau mỗi nốt; pitch_rand 0 vì cao độ phải khớp hợp âm. Đúng phách (±0.12 s, Thương Xót ±0.16 s, đo DSP): runtime chọn nốt theo hợp âm ô hiện tại trong <cue>.chords.json (4 nốt ghi sẵn D4/F4/A4/C5, dịch ≤ ±2 bán cung tới nốt hợp âm gần nhất); lệch phách: biến thể __off = cùng nốt lạc nửa cung + hụt hơi. Thời điểm phát KHÔNG lượng tử hoá (AP4, doc 32 §2.3/§3.5). Dạng Rèn: AS2 bộ __as2_nn (loa đồng to, trầm −3 bán cung, thêm thump 110 Hz), AS3 bộ __as3_nn (kèn lá xương mảnh, +4 bán cung, hơi gió nhiều hơn); cùng id. Nhạc công kèn dăm thuê theo giờ (hợp đồng chuyển quyền toàn cầu mọi nền tảng), không mẫu AI. KHÔNG được nghe như kèn đồng quân hành, còi tàu, hay kèn đồ chơi. |
| HeroAttackCut move=Phách Hai (attack2 f8) SFX_H12_a2_swing | swing | 240 | 4 | HeroAttack | 20 | 2 | −19 | none | outsource | brief | Phách Hai: nốt kèn thứ hai của ô nhịp, gọn hơn, tấn công lưỡi rõ (tongue). Đúng phách (±0.12 s, Thương Xót ±0.16 s, đo DSP): runtime chọn nốt theo hợp âm ô hiện tại trong <cue>.chords.json (4 nốt ghi sẵn D4/F4/A4/C5, dịch ≤ ±2 bán cung tới nốt hợp âm gần nhất); lệch phách: biến thể __off = cùng nốt lạc nửa cung + hụt hơi. Thời điểm phát KHÔNG lượng tử hoá (AP4, doc 32 §2.3/§3.5). Dạng Rèn: AS2 bộ __as2_nn (loa đồng to, trầm −3 bán cung, thêm thump 110 Hz), AS3 bộ __as3_nn (kèn lá xương mảnh, +4 bán cung, hơi gió nhiều hơn); cùng id. Nhạc công kèn dăm thuê theo giờ (hợp đồng chuyển quyền toàn cầu mọi nền tảng), không mẫu AI. KHÔNG được nghe như tiếng vịt kêu, kèn xe. |
| HeroAttackCut move=Phách Ba (attack3 f8) · lớp đầu khúc phách 4 (atta… SFX_H12_a3_swing | swing | 380 | 4 | HeroAttack | 20 | 2 | −18 | none | outsource | brief | Phách Ba và lớp mở của mọi khúc phách 4: nốt kèn dài nhất của ô, dâng lên báo đòn kết sắp tới. Đúng phách (±0.12 s, Thương Xót ±0.16 s, đo DSP): runtime chọn nốt theo hợp âm ô hiện tại trong <cue>.chords.json (4 nốt ghi sẵn D4/F4/A4/C5, dịch ≤ ±2 bán cung tới nốt hợp âm gần nhất); lệch phách: biến thể __off = cùng nốt lạc nửa cung + hụt hơi. Thời điểm phát KHÔNG lượng tử hoá (AP4, doc 32 §2.3/§3.5). Dạng Rèn: AS2 bộ __as2_nn (loa đồng to, trầm −3 bán cung, thêm thump 110 Hz), AS3 bộ __as3_nn (kèn lá xương mảnh, +4 bán cung, hơi gió nhiều hơn); cùng id. Nhạc công kèn dăm thuê theo giờ (hợp đồng chuyển quyền toàn cầu mọi nền tảng), không mẫu AI. KHÔNG được nghe như kèn săn, còi báo động. |
| HeroHitBatch heroId=H12 (Phách 1–3, khúc phách 4, Kèn Lướt Rước, SK01… SFX_H12_hit | hit | 180 | 4 | HeroAttack | 30 | 3 | −20 | none | freesound | brief | Sóng âm của kèn chạm thân quái: không phải lưỡi chém, là cú đập hơi + giấy rung. Gộp theo luật bầy §6.1 (≥ 4 mục tiêu: +3 dB, lớp kill-crunch chung). Không partial kim loại 2.2–3.6 kHz decay > 60 ms (AUD-01). KHÔNG được nghe như đấm, kiếm, súng hơi. |
| HeroComboSpecial heroId=H12 branch=KHUC (đòn kết phách 4: Khúc Dồn/Hụ… SFX_H12_combo_special | explode | 700 | 6 | HeroAttack | 20 | 5 | −16 | none | outsource | brief | Đòn kết khúc: 6 biến thể theo nhánh, KHÔNG ngẫu nhiên — __don (vòng, trống dồn 3 nhát), __hut_hoi (nốt kéo dài hụt cuối), __vap (dậm đất + nốt gãy), __muon (nốt trễ nửa phách cố ý), __cho (nốt dài 2 phách nghỉ), __le (nốt lẻ cao quãng 8). AS2 thêm __as2 (loa đồng đẩy, thump 70 Hz 120 ms), AS3 thêm __as3 (5 nốt xương staccato 40 ms rải quạt). Cao độ theo hợp âm ô (chords.json). Nhạc công kèn dăm thuê theo giờ (hợp đồng chuyển quyền toàn cầu mọi nền tảng), không mẫu AI. Trống không lượng tử hoá. KHÔNG được nghe như dàn kèn đồng lễ hội, pháo nổ. |
| HeroDash heroId=H12 (Bước Đưa Tang dash f0; lớp trên SFX_SHARED_dash_… SFX_H12_dash | move | 220 | 3 | Hero | 20 | 2 | −22 | none | freesound | brief | Lướt của Ambrin: vải và khăn, không tiếng kèn (kèn chỉ kêu khi đánh/ĐÁP để giữ ngữ nghĩa nhịp). Né Hoàn Hảo +1 Nhịp phát res_gain riêng. KHÔNG được nghe như áo choàng siêu anh hùng, cờ lớn. |
| HeroAnswerSuccess heroId=H12 (Thổi Dội answer f1; lớp trên SFX_SHARED… SFX_H12_answer | answer | 340 | 3 | HeroDefense | 2 | 2 | −15 | none | outsource | brief | Thổi Dội: sóng kèn ngắn đẩy ngược đòn (doc 32 §2.3) — người chơi học: lớp chung answer_core = thành công, lớp kèn = Ambrin. Đúng phách: biến thể __on (nốt đúng hợp âm + trống), lệch: __off (nốt hơi lạc, không trống). Nhạc công kèn dăm thuê theo giờ (hợp đồng chuyển quyền toàn cầu mọi nền tảng), không mẫu AI. KHÔNG được nghe như còi trọng tài, tiếng nổ. |
| HeroCounter heroId=H12 (Hồi Kèn Tiễn counter f5; lớp trên SFX_SHARED_… SFX_H12_counter | hit | 600 | 3 | HeroDefense | 2 | 2 | −15 | none | outsource | brief | Phản: hồi kèn tiễn người đi — LINE 140 xuyên thẳng; âm dài và trang nghiêm nhất trong bộ đánh thường. Nốt cố định D5→A4 (motif LM_H12 D–A), không theo hợp âm ô để luôn nhận ra. Nhạc công kèn dăm thuê theo giờ (hợp đồng chuyển quyền toàn cầu mọi nền tảng), không mẫu AI. KHÔNG được nghe như kèn xung trận, tiếng voi. |
| HeroHoldStart heroId=H12 (Nốt Ngân hold_in f6) SFX_H12_hold_start | move | 280 | 3 | HeroDefense | 20 | 1 | −20 | none | outsource | brief | Vào Nốt Ngân: kèn giữ hơi (doc 32 §2.3). Nốt = gốc hợp âm ô hiện tại; nối liền vào hold_loop không khe (crossfade 20 ms). Nhạc công kèn dăm thuê theo giờ, hợp đồng chuyển quyền toàn cầu. KHÔNG được nghe như còi tàu, tiếng hú. |
| HeroHoldStart → loop tới HeroHoldEnd (Nốt Ngân hold_loop; dừng ngay k… SFX_H12_hold_loop | loop | 2000 | 1 | HeroDefense | 20 | 1 | −24 | none | synth | brief | Nốt Ngân: một hơi kèn giữ suốt, mức ổn định (không phồng, AUD-02). Loop đúng 1 ô nhịp = 88.200 mẫu @44.1 kHz để vạch ô trùng vạch nhạc. Mỗi vạch ô runtime đổi nốt theo hợp âm mới (crossfade 40 ms giữa 4 bản D4/F4/A4/C5 ghi sẵn). KHÔNG được nghe như còi báo cháy, tiếng ve. |
| HeroHoldEnd heroId=H12 cancelled=any (hold_out) · H12_E18 bắt đạn SFX_H12_hold_end | move | 240 | 3 | HeroDefense | 20 | 1 | −22 | none | outsource | brief | Thả Nốt Ngân: thả đúng phách = biến thể __on (nốt khép tròn, giữ ô nhịp); lệch = __off (luyến hụt). Nhạc công kèn dăm thuê theo giờ. KHÔNG được nghe như hơi xì lốp. |
| HeroResource heroId=H12 kind=gain (Nhịp +1/+2) · nhạc công Trống Sóng… SFX_H12_res_gain | move | 260 | 5 | Hero | 120 | 3 | −22 | none | freesound | brief | Một id, 5 bộ con do runtime chọn: __tick (Nhịp +1, −24 LUFS), __click (máy nhịp khi bật 'Click nhịp H12', thanh Music = 0, hoặc MUS_quiet_shore B6: −18 LUFS, đồng hồ DSP), __drum / __cymbal / __horn (đòn của Phường, mỗi bộ 3 biến thể). Chũm chọe là nhiễu, không partial kim loại 2.2–3.6 kHz kéo > 60 ms. KHÔNG được nghe như đồng xu, chuông, xylophone. |
| HeroResource heroId=H12 kind=full (Nhịp 16: Kèn Phụ ngân +50 Dư Âm) ·… SFX_H12_res_full | cast | 1000 | 2 | Hero | 20 | 1 | −17 | none | outsource | brief | Đủ 16 Nhịp, cả 4 nhạc công: một hợp âm tutti ngắn = motif LM_H12 D–A–C–D thu gọn (doc 32 §3.3). Chuyển giọng theo hợp âm ô (2 bản D và A). Không lượng tử hoá. Nhạc công thuê theo giờ, hợp đồng chuyển quyền toàn cầu. KHÔNG được nghe như kèn chiến thắng thể thao, nhạc lễ hội. |
| HeroResource heroId=H12 kind=spend (đánh lệch phách: Nhịp chia đôi / … SFX_H12_res_spend | move | 230 | 3 | Hero | 120 | 2 | −21 | none | outsource | brief | Nhịp/2 = kèn hụt hơi (doc 32 §2.3): lỗi nhịp phải nghe ra ngay mà không chói. Bộ __spend (SK04/SK06 tiêu chủ động) sạch hơn: nốt rơi 1 cung, không kẹt dăm. Nhạc công thuê theo giờ. KHÔNG được nghe như tiếng xì hơi hài, tiếng vịt. |
| SkillCast skillId=H12_SK01 (Đám Rước sk01 f10; bóng phường diễu RECT … SFX_H12_SK01_cast | cast | 720 | 3 | Hero | 20 | 2 | −17 | none | outsource | brief | Đám rước bóng ma đi qua đè bầy dạt 16 px: kèn hiệu dẫn đoàn + trống bước. Trống bám phách thật của máy nhịp (lớp trống phát theo DSP, kèn hiệu phát ngay khi cast). KHÔNG được nghe như diễu binh, kèn hướng đạo. |
| SkillCast skillId=H12_SK02 (Tấu Khúc Bay sk02 f6; mỗi nốt bay +1 lần … SFX_H12_SK02_cast | cast | 900 | 3 | Hero | 20 | 2 | −18 | none | outsource | brief | Loạt nốt bay: mỗi nốt 1 đạn LINE 260. File chứa nốt đơn __n1..__n4 (4 cao độ) + __burst (Nốt Trầm Vỡ CIRCLE r40); runtime phát mỗi nốt khi đạn rời loa. KHÔNG được nghe như sáo trúc, tiếng chim, laser. |
| SkillCast skillId=H12_SK03 (Kèn Xua sk03 f9; RECT 200 × 96 đẩy 80 px,… SFX_H12_SK03_cast | cast | 650 | 3 | Hero | 20 | 2 | −16 | none | outsource | brief | Kèn xua tà: thổi quá hơi, chói và thô để xua cả bầy lùi 80 px và gây sợ. Không theo hợp âm (cố ý lạc để nghe như xua). KHÔNG được nghe như còi xe cứu thương, voi rống. |
| SkillCast skillId=H12_SK04 (Hợp Âm Thu sk04 f8 hút đạn r80; Trả Hợp Â… SFX_H12_SK04_cast | cast | 900 | 2 | Hero | 20 | 2 | −18 | none | outsource | brief | Đạn bị cuốn vào một hợp âm rồi trả lại đúng hướng: phần hút ngân êm, phần trả gắt. Hợp âm theo ô hiện tại. KHÔNG được nghe như máy hút bụi, đàn organ nhà thờ. |
| SkillCast skillId=H12_SK05 (Cao Trào sk05: phách dồn f0–8 + phách chố… SFX_H12_SK05_cast | cast | 850 | 3 | Hero | 20 | 2 | −16 | none | outsource | brief | Cao trào của bài kèn: dồn dập rồi vỡ ở nốt đỉnh, khớp LINE 72 rồi 96 × 32. Gốc theo hợp âm ô. Nhạc công kèn dăm thuê theo giờ. KHÔNG được nghe như kèn xiếc, còi cảnh sát. |
| SkillCast skillId=H12_SK06 (Vòng Tang Ca sk06 f9; vòng r72; nền ngân … SFX_H12_SK06_cast | cast | 900 | 2 | Hero | 20 | 2 | −18 | none | outsource | brief | Vòng hát tiễn che chở: câu kèn buồn, êm, mở vòng khiên. Câu cố định = đuôi motif LM_H12 (A–C–D). Nhạc công thuê theo giờ. KHÔNG được nghe như nhạc ru, chuông gió. |
| SkillCast skillId=H12_SK07 (Nhịp Bước Tang sk07 f6) · Bước Dậm Tang (… SFX_H12_SK07_cast | cast | 420 | 3 | Hero | 20 | 2 | −18 | none | freesound | brief | Bước đưa tang đúng nhịp: dậm chân + trống đáp, mở cửa sổ phách rộng. Không tiếng kèn. KHÔNG được nghe như bước lính, nhảy múa. |
| SkillCast skillId=H12_SK08 (Gọi Phường sk08 f12; 4 nhạc công mọc, ban… SFX_H12_SK08_cast | cast | 1200 | 2 | Hero | 20 | 1 | −17 | none | outsource | brief | Gọi phường ma về: một hồi kèn gọi rồi từng bóng đáp lời theo thứ tự xuất hiện. Không làm Kèn Phụ ngân (không +Dư Âm) nên không chứa hợp âm tutti. KHÔNG được nghe như tù và săn, còi tập hợp. |
| UltActivate ultId=H12_UL1 (ul1 2.0 s; 4 phách f8/f23/f38/f53 trùng 4 … SFX_H12_UL1_grand_dirge | cast | 3200 | 1 | Hero | 5 | 1 | −13 | none | outsource | brief | Đại nhạc tống táng: đúng 4 phách 120 BPM (0.5 s/phách) — phát ngay khi bấm (không chờ vạch phách, AP4), 4 nhát trống cách đúng 0.5 s khớp 4 hit frame của clip. Bản D và bản A theo hợp âm ô. Phường ×2 tới hết phòng. Nhạc công thuê theo giờ, hợp đồng chuyển quyền toàn cầu. KHÔNG được nghe như dàn nhạc giao hưởng, nhạc đám cưới. |
| UltActivate ultId=H12_UL2 (ul2 1.8 s; 8 phách nhanh dần f5…f50, phách… SFX_H12_UL2_lone_farewell | cast | 2600 | 1 | Hero | 5 | 1 | −13 | none | outsource | brief | Kèn tiễn riêng một người: 8 nốt nhanh dần khớp 8 hit frame, nốt cuối kéo dài như tiễn đưa. Trường hợp kết liễu: biến thể __exe nối 1 nhát trống cái −6 dB. Nhạc công thuê theo giờ. KHÔNG được nghe như tiếng còi đếm ngược, kèn xung phong. |
| UltActivate ultId=H12_UL3 (ul3 f14 khai tấu; mỗi phách 4 trong 10 s p… SFX_H12_UL3_endless_band | cast | 1800 | 2 | Hero | 5 | 1 | −13 | none | outsource | brief | Ban nhạc bất tận: mở 10 s phường bất tử; khai tấu 1.8 s + bộ __chord (2 biến thể D/A) phát mỗi phách 4 theo DSP. Không đổi tempo (máy nhịp cố định 120). Nhạc công thuê theo giờ. KHÔNG được nghe như nhạc diễu hành lễ hội, kèn đồng jazz. |
| AnimEvent clip=attack4|attack5|attack6|as2_fin|as3_fin|counter|sk01–s… SFX_H12_vo_effort | vocal | 240 | 5 | VO | 45 | 2 | −20 | none | outsource | brief | Gắng sức của người thổi kèn: hít lấy hơi trước nốt nặng, không la hét. Giọng không lời (doc 32 §9): diễn viên giọng nam trẻ (khoảng 20 tuổi, sáng, hơi khàn hơi thổi kèn) thuê theo giờ, hợp đồng chuyển quyền toàn cầu mọi nền tảng; không giọng AI; không âm tiết ngôn ngữ thật. KHÔNG được nghe như võ sĩ hét, tiếng nấc. |
| HeroDamaged heroId=H12 (sau SFX_SHARED_hero_hurt_impact) SFX_H12_vo_hurt | vocal | 280 | 5 | VO | 45 | 2 | −20 | none | outsource | brief | Đau nhưng lo mất hơi hơn: cuối mỗi tiếng luôn có hít lại (người sợ im lặng). Giọng không lời (doc 32 §9): diễn viên giọng nam trẻ (khoảng 20 tuổi, sáng, hơi khàn hơi thổi kèn) thuê theo giờ, hợp đồng chuyển quyền toàn cầu mọi nền tảng; không giọng AI; không âm tiết ngôn ngữ thật. KHÔNG được nghe như la thất thanh, chửi. |
| HeroDeath heroId=H12 (sau SFX_SHARED_hero_death; SN_DEATH) SFX_H12_vo_death | vocal | 1400 | 2 | VO | 45 | 2 | −18 | none | outsource | brief | Ngã xuống ôm kèn: hơi cuối đi qua kèn thành một nốt khàn rồi tắt — sự im lặng anh sợ nhất. Giọng không lời (doc 32 §9): diễn viên giọng nam trẻ (khoảng 20 tuổi, sáng, hơi khàn hơi thổi kèn) thuê theo giờ, hợp đồng chuyển quyền toàn cầu mọi nền tảng; không giọng AI; không âm tiết ngôn ngữ thật. Lớp dăm kèn ghi cùng buổi với nhạc công kèn. KHÔNG được nghe như tiếng hét, rên kéo dài. |
14Câu thoại (bark)
| Bark | Kích hoạt | Câu thoại | Ưu tiên | Hồi s | 1 lần |
|---|---|---|---|---|---|
| run_start_1 | RunStart heroId=H12 (rời Bến Đò, sau thẻ Hồi I; lần chạy đầu) | Người chết không đi một mình. Có phường tôi. | hero | — | có |
| run_start_2 | RunStart heroId=H12 (lần chạy thứ 2 trở đi, ngẫu nhiên 1/2) | Phường đâu, lên kèn! Đám này dài đấy. | hero | — | — |
| run_start_3 | RunStart heroId=H12 mode có Khăn Tang ≥ 1 (MRN01–MRN15) | Khăn tang buộc chặt rồi. Thổi thôi. | hero | — | — |
| act_change | ActChanged heroId=H12 act=II..VI (rời DOCK) | Sang hồi mới. Đổi giọng, giữ nhịp. | hero | — | — |
| level_up_1 | LevelUp heroId=H12 (ngẫu nhiên 1/3, ≤ 1 lần/90 s) | Hơi dài thêm một đoạn rồi. | hero | 90 | — |
| level_up_2 | LevelUp heroId=H12 (ngẫu nhiên 1/3, ≤ 1 lần/90 s) | Phường ơi, lên thêm một cung! | hero | 90 | — |
| level_up_3 | LevelUp heroId=H12 khi cấp ≥ 10 | Tiễn trăm đám, giờ mới thấy đủ hơi. | hero | 90 | — |
| perfect_answer_1 | HeroAnswerSuccess heroId=H12 perfect=true (Thổi Dội đúng phách) | Đúng phách! Trả lại nguyên tiếng. | hero | 20 | — |
| perfect_answer_2 | HeroAnswerSuccess heroId=H12 perfect=true targetTier=M|L|XL | Dội về đi. Có nhịp hẳn hoi. | hero | 20 | — |
| perfect_answer_proj | HeroAnswerSuccess heroId=H12 perfect=true kind=proj (đạn dội ngược) | Đạn cũng phải theo nhịp tôi. | hero | 20 | — |
| perfect_dodge | HeroPerfectDodge heroId=H12 | Né theo trống, chân không lạc. | hero | 20 | — |
| res_full | HeroResource heroId=H12 kind=full value=16 (Kèn Phụ ngân, ≤ 1 lần/60 s) | Đủ phường rồi! Kèn Phụ, ngân! | hero | 60 | — |
| low_hp_1 | HeroLowHp heroId=H12 hpPct ≤ 25 (≤ 1 lần/60 s) | Chưa được im... chưa được. | hero | 60 | — |
| low_hp_2 | HeroLowHp heroId=H12 hpPct ≤ 25 lần thứ 2 trong run | Lạc một phách thì đứng dậy, thổi lại. | hero | 60 | — |
| low_hp_3 | HeroLowHp heroId=H12 hpPct ≤ 15 | Hơi ngắn rồi. Phường, đừng bỏ tôi. | hero | 60 | — |
| elite_1 | EliteSpawn (EL_*) lần đầu trong phòng, hero H12 | Đứa này có ấn. Lên giọng cao hơn. | hero | 30 | — |
| elite_2 | EliteSpawn có Ấn EM (affix) ≥ 2, hero H12 | Tinh Anh à? Để tôi thổi riêng một hồi. | hero | 30 | — |
| elite_ash | AshVariantOn ownerId=EL_* (Tinh Anh đổi thế Tro Nhớ), hero H12 | Nó thuộc nhịp tôi rồi. Đổi khúc! | hero | 30 | — |
| boss_b1 | BossIntro bossId=BS_B1 heroId=H12 (sau bark boss ≥ 4 s) | Đồi Mộ Tro mà chẳng ai thổi tiễn? Có tôi. | hero | — | — |
| boss_b2 | BossIntro bossId=BS_B2 heroId=H12 | Đầm Vải Liệm nuốt tiếng. Thổi to hơn nó. | hero | — | — |
| boss_b3 | BossIntro bossId=BS_B3 heroId=H12 | Lò Đúc Câm à? Thứ tôi ghét nhất là câm. | hero | — | — |
| boss_b4 | BossIntro bossId=BS_B4 heroId=H12 | Thành Chuông Treo à? Chuông im, kèn thổi. | hero | — | — |
| boss_final | BossIntro bossId=BS_FINAL heroId=H12 | Đêm Câm nuốt cả phường tôi. Trả đây. | hero | — | — |
| boss_mini | BossIntro bossId=MB_* heroId=H12 (mọi mini-boss, ngẫu nhiên) | Đám nhỏ cũng phải tiễn cho tử tế. | hero | — | — |
| victory_1 | BossDefeated heroId=H12 (clip victory, sau 2 hồi kèn) | Xong một đám. Ai về nhà nấy. | hero | — | — |
| victory_2 | BossDefeated heroId=H12 (ngẫu nhiên 1/2) | Nghe chưa? Phách cuối tròn trịa. | hero | — | — |
| victory_final | BossDefeated bossId=BS_FINAL heroId=H12 | Phường ơi, lần này tiễn cả Đêm Câm. | hero | — | — |
| room_cleared | RoomCleared heroId=H12 objective bất kỳ (ngẫu nhiên 1/6) | Hết tiếng rồi. Tôi ghét lúc này nhất. | hero | 45 | — |
| ult_1 | UltActivate ultId=H12_UL1 | Cả phường, tấu! | hero | — | — |
| ult_2 | UltActivate ultId=H12_UL2 | Hồi kèn này của riêng mày. | hero | — | — |
| ult_3 | UltActivate ultId=H12_UL3 | Không ai nghỉ! Thổi tới sáng! | hero | — | — |
| death_1 | HeroDeath heroId=H12 (cùng SFX_H12_vo_death, trước SN_DEATH) | Đừng... để nó im... | hero | — | — |
| death_2 | HeroDeath heroId=H12 lần chết thứ 2 trở đi | Phách một... thổi lại từ phách một. | hero | — | — |
| revive | HeroRevive heroId=H12 | Còn hơi. Phường, vào lại! | hero | — | — |
| wake | Wake tại Lửa Canh (clip wake, hero H12) | Lại thức. Kèn đâu? À, đây rồi. | hero | — | — |
| hub_ulla | HubStationInteract stationId=ST_HEARTH hero H12 (NPC_ULLA, ngẫu nhiên) | Bà Ulla ngân giùm tôi một câu đi. | hero | — | — |
| hub_grem | HubStationInteract stationId=ST_FORGE hero H12 (NPC_GREM) | Lão Grem, rèn cho tôi cái loa to hơn. | hero | — | — |
| hub_hol | HubStationInteract stationId=ST_LEDGER hero H12 (NPC_HOL) | Thầy Hol không nghe mà vẫn gõ đúng nhịp. | hero | — | — |
| hub_calla | HubStationInteract stationId=ST_DOCK hero H12 (NPC_CALLA) | Calla ơi, thổi một bài cho đò nổi nhé? | hero | — | — |
| hub_idle | Hub đứng yên ≥ 20 s, hero H12 (clip hub_idle f42) | Im quá. Ai nói gì đi chứ. | hero | 120 | — |