🔔 Bladewake GDD
🎨 Art · VFX · Âm thanh

AV · Cái Lặng

Spec VFX, SFX, bark và tài sản môi trường của Cái Lặng (Boss).

BS_TRUECập nhật: 2026-11-07

1Tổng quan

27
VFX
27
SFX
7
bark
0
tài sản môi trường

Chủ sở hữu: Cái Lặng BS_TRUE

📚
Doc định nghĩa luật 30-Art-Direction §2.3, §3.4, §3.5, §5.1, §5.5, §5.6, §8 · 32-Audio-Bible §2.1, §2.4, §4.2–4.4, §5.2–5.7, §9, §10.1, §11.1, §12.2 · 14-Adaptive-AI §9.5 (BASE R1–R5, mirror_hero; không CV) · bosses/BS_TRUE.json; vfx[] rỗng: spec VFX_BS_TRUE_* nằm ở av/BS_TRUE__<part> khác; clip P3 (mirror_*, echo_*, summon_shade, last_hush) dùng lại atlas hero đang chơi + PAL_LUT hàng 13, frames = khung dòng thời gian; hook BossBaseRead / BossWedgeWarn / EnemyWindupHold / EnemyAttackActive là sự kiện mới cần thêm vào doc 32 §12.2
VFX theo hạng cỡVFX theo hạng cỡS: 6 (22%)M: 11 (41%)L: 6 (22%)XL: 4 (15%)27VFXS — 6 (22%)M — 11 (41%)L — 6 (22%)XL — 4 (15%)
SFX theo busSFX theo busBossBoss: 2121EnemyEnemy: 33TellTell: 33

2VFX (27)

27 dòng
IDHạngLớpFrameGiâyPaletteKích hoạt
VFX_BS_TRUE_A01_arrowSfloor_decal80.667#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A01 báo trước: t = 0 = 3.0 s trước windup (wedge_warn_s 3.0), cùng SFX chuông 660 Hz; sống tới va chạm (t = 4.0 s) rồi tắt
VFX_BS_TRUE_A01_wedgeXLfloor_decal150.5#1a1821#3a394c#595975#8386a8#b9bce0BS_TRUE_A01 va chạm: t = 0 = hết windup 1.0 s (active 0.1 s); rẻ thành vùng N Lặng 30 s; nhả (rẻ thứ 3 bị nuốt hoặc hết 30 s hoặc vào P2) = mờ 0.5 s
VFX_BS_TRUE_A02_spikeMbody_front90.3#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A02 va chạm: t = 0 = hết windup 0.55 s (active 0.08 s); dùng lại cho nhịp đâm của combo Đâm Rồi Rải / Xoay Rồi Ném
VFX_BS_TRUE_A03_fanMbody_front90.3#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A03 mỗi nhịp: t = 0 = frame va chạm (nhịp 1 sau windup 0.6 s, nhịp 2/3 sau khe beat_gap 0.45 s); active 0.08 s
VFX_BS_TRUE_A04_pelletSoverhead60.4#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A04 projectile spawn: t = 0 = hết windup 0.6 s, 5 viên toả 48° (bước 12°), tốc 210 px/s, bay tới r_max 320 rồi pop; pop khi trúng/hết tầm
VFX_BS_TRUE_A05_dropLoverhead210.7#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A05: t = 0 = va chạm (hết windup 0.9 s, active 0.1 s); sheet bắt đầu t = −0.2 (lõi rơi vào khung), điểm rơi = vị trí hero lúc bắt đầu windup (khoá từ t…
VFX_BS_TRUE_A06_ringXLfloor_tell842.8#b14cff#ffffffBS_TRUE_A06 windup start t = −0.8 s; vành chạy từ t = 0, r(t) = 30 + 120·t, tới mép r240 ở t = 1.75 s (active 1.8 s), tan 0.2 s
VFX_BS_TRUE_A07_shedSoverhead80.533#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A07 windup start t = 0: 3 cụm hạt bứt khỏi bầy, bay 0.8 s tới 3 điểm spawn ngoài r90; t = 0.8 = mở VFX_SHARED_summon_vortex 1.0 s tại mỗi điểm
VFX_BS_TRUE_A08_inhaleSfloor_decal120.4#282732#3a3a48#5e5c70#8888a0#dcdce4spawn bởi VFX_BS_TRUE_A08_field (BS_TRUE_A08 active 0 → 2.5 s): 20 vệt/s trên biên r200; mỗi vệt t = 0 = lúc spawn, đời 0.4 s
VFX_BS_TRUE_A08_fieldXLfloor_decal842.8#5e5c70BS_TRUE_A08: t = −0.6 s = bắt đầu windup; t = 0 = bắt đầu kéo; kéo 26 px/s trong r200 suốt active 2.5 s; recovery 0.3 s tan
VFX_BS_TRUE_A09_closeLbody_front481.6#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A09: sheet t = −1.0 = windup start (vành chuông dựng), t = 0 = chuông úp (va chạm, active 0.1 s); lõi đứng yên 1.3 s sau đó
VFX_BS_TRUE_A10_whirlLbody_front120.4#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A10 mỗi nhịp: t = 0 = va chạm (nhịp 1 sau windup 0.65 s, nhịp 2–4 sau khe beat_gap 0.5 s); active 0.08 s; luân phiên phải–trái
VFX_BS_TRUE_A11_driftSoverhead80.533#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A11 projectile spawn: t = 0 = hết windup 0.9 s; 2 khối lệch nhau 30°, bay thẳng 110 px/s tới r_max 400 rồi tan; đường bay tím đã vẽ ≥ 0.45 s trước (VFX…
VFX_BS_TRUE_A12_bell_chunkMoverhead80.533#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A12 projectile spawn: t = 0 = hết windup 0.7 s; 1 khối bay 180 px/s tới điểm ngắm (lệch 24 px theo Lướt cuối nếu R2 BASE), vỡ khi trúng/hết tầm 380
VFX_BS_TRUE_A13_spike_holdMbody_front381.267#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A13: sheet t = −0.95 = windup start (pose giữ 'nín thở'), t = 0 = va chạm (active 0.08 s); glint 2 chung đúng t = −0.12
VFX_BS_TRUE_A14_echoMbody_front90.3#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A14: t = 0 = frame chạm của clip hero echo_move (hits[0].t), sau windup 0.70 s; P3 Gương Lặng
VFX_BS_TRUE_A15_echo_openMbody_front90.3#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A15: t = 0 = frame chạm của clip hero COMBO_A_1 (hits[0].t), sau windup 0.50 s; P3 Gương Lặng
VFX_BS_TRUE_A16_echo_finishMbody_front90.3#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4BS_TRUE_A16: t = 0 = frame chạm của clip hero FINISHER (hits[0].t), sau windup 0.60 s; P3 Gương Lặng
VFX_BS_TRUE_A17_shade_riseMfloor_decal541.8#1a1821#3a394c#595975#8386a8#b9bce0BS_TRUE_A17: sheet t = 0 = windup start (bóng hero cúi chạm nước); điểm spawn ngoài r90; VFX_SHARED_summon_vortex mở t = 0.8 (1.0 s); EN_B6_01 nhận điều khiển …
VFX_BS_TRUE_A18_last_ringXLfloor_tell963.2#b14cff#ffffffBS_TRUE_A18 (1 lần, HP ≤ 10% trong P3) windup start t = −1.2 s; vành chạy t = 0, r(t) = 24 + 120·t, chạm r240 t = 1.8 s; active 2.0 s; recovery 2.0 s rồi nối c…
VFX_BS_TRUE_read_glyphSoverhead180.6#282732#5e5c70#9797a0#dcdce4Báo đọc BASE (lần đầu mỗi phản ứng R1–R5 trong trận, R1 thêm mỗi rẻ): t = 0 = đầu khựng 0.6 s pose ash_read; hiệu lực phản ứng từ t + 1.0 s
VFX_BS_TRUE_brokenMbody_front121#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4Vỡ Thế (Thế 200 về 0): t = 0 = vào BROKEN (cùng VFX_SHARED_guard_break), kéo dài BROKEN_TIME 4.0 s; clip vào 0.3 s → loop → clip ra 0.3 s
VFX_BS_TRUE_idle_swarmMbody_back242#3c3a4a#5e5c70#8888a0#adafc3#9797a0#dcdce4Thân bầy hạt luôn phát khi boss sống ở P1/P2 (và lớp hạt rơi khỏi vai ở P3); t = 0 = spawn sau cảnh mở; chạy song song mọi clip thân
VFX_BS_TRUE_introLbody_front1204#1a1821#3a3a48#5e5c70#8888a0#b9bce0#dcdce4Cảnh mở 7.0 s (boss bất tử, cổng Nam đã khoá + xoáy 1.0 s): sheet t = 0 = cảnh mở + 2.0 s; trước đó (t −2.0 → 0) và sau sheet (t 4.0 → 5.0) là shader thủ tục
VFX_BS_TRUE_phase2_swallowLbody_front451.5#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4Vào P2 (HP 60%): t = 0 = đầu chuyển pha (bất tử 1.5 s, clip phase quỳ); cùng VFX_SHARED_screen_phase; snapshot SN_SWALLOW bật t = 0.75
VFX_BS_TRUE_phase3_mirrorMbody_front602#1a1821#282732#3a3a48#5e5c70#8888a0#dcdce4Vào P3 (HP 30%): t = 0 = đầu chuyển pha (bất tử 2.0 s); cùng VFX_SHARED_screen_phase; sprite hero + LUT 13 nhận điều khiển t = 2.0
VFX_BS_TRUE_deathLbody_front903#1a1821#3a3a48#5e5c70#8386a8#b9bce0#dcdce4BS_TRUE chết (HP 0 trong P3): t = 0 = on_death, cùng VFX_SHARED_death_xl; quái phụ tan tro 0.8 s song song

3SFX (27)

27 dòng
IDLoạiBusmsBiến thểTellHook
SFX_BS_TRUE_intromoveBoss13001noneBossIntro bossId=BS_TRUE (mốc 3.0 s cảnh mở: hero bước 1 bước; SN_BOSS_INTRO + stinger boss_intro của MUS_quiet_shore do MusicDirector ở mốc 7.0 s)
SFX_BS_TRUE_move_looploopBoss40001noneBossState BS_TRUE state=MOVE (tốc > 5 px/s; dừng fade 150 ms khi đứng, windup, Vỡ Thế; P3 phát −6 dB LP 1.5 kHz)
SFX_BS_TRUE_sig_aimpactBoss9002noneEnemyAttackContact attackId=BS_TRUE_A01 (rẻ bị nuốt; tell tím = SFX_SHARED_tell_p_swell cắt cứng + SFX_SHARED_tell_p_impact chung; ngay sau đó SN_WEDGE cho her…
SFX_BS_TRUE_sig_bcastBoss9002noneEnemyWindupStart attackId=BS_TRUE_A08 (Hút Lặng, không tell; loop SFX_BS_TRUE_A08_inhale nối từ khung 18)
SFX_BS_TRUE_sig_ccastEnemy12001noneEnemyAttackCut attackId=BS_TRUE_A14 (Đòn Vọng; tell = SFX_SHARED_tell_y_glint1 + tell_y_tinh chung)
SFX_BS_TRUE_phasecastBoss20002noneBossPhase bossId=BS_TRUE phase=2 → biến thể 01 'nuốt' (bật SN_SWALLOW 1.5 s) · phase=3 → biến thể 02 'nhả' (tắt SN_SWALLOW 2.0 s); kèm __stg_phase2 / __stg_pha…
SFX_BS_TRUE_brokenimpactBoss11002nonePoiseBroken enemyId=BS_TRUE (sau SFX_SHARED_poise_break chung)
SFX_BS_TRUE_deathexplodeBoss40001noneBossDefeated bossId=BS_TRUE (mốc 2.0 s cảnh hạ: lõi nứt; MUS_end_quiet_shore nhận tiếp; kèm __stg_victory)
SFX_BS_TRUE_readcastTell6001noneBossBaseRead bossId=BS_TRUE read=R1|R2|R3|R4|R5 (lần đầu mỗi phản ứng trong trận; R1 thêm mỗi rẻ mới) — t0 khựng 0.6 s
SFX_BS_TRUE_A01_bellcastTell5001noneBossWedgeWarn attackId=BS_TRUE_A01 (3.0 s trước windup, cùng VFX_BS_TRUE_A01_arrow; + 1 lần dạy luật ở mốc 5.0 s cảnh mở)
SFX_BS_TRUE_A02_spikeswingBoss2603noneEnemyAttackCut attackId=BS_TRUE_A02 (tell Y = SFX_SHARED_tell_y_glint1 + tell_y_tinh chung)
SFX_BS_TRUE_A03_fanswingBoss2803noneEnemyAttackCut attackId=BS_TRUE_A03 beat=1|2|3 (mỗi nhịp 1 lần; tell Y mỗi nhịp 1 'tinh' riêng chung)
SFX_BS_TRUE_A04_scattershotBoss3203noneEnemyProjectileFire attackId=BS_TRUE_A04 (5 viên 1 sự kiện; tell Y chung)
SFX_BS_TRUE_A05_dropimpactBoss10002noneEnemyAttackContact attackId=BS_TRUE_A05 (lớp thân; tell P = SFX_SHARED_tell_p_swell + tell_p_impact chung)
SFX_BS_TRUE_A06_ringcastBoss22002noneEnemyAttackContact attackId=BS_TRUE_A06 (vành nhả; tell P chung = swell tới va chạm + tell_p_impact)
SFX_BS_TRUE_A07_shedcastBoss7002noneEnemySummon attackId=BS_TRUE_A07 (3 cụm bứt ra; xoáy = SFX_SHARED_summon_vortex chung qua SummonVortex)
SFX_BS_TRUE_feintmoveTell2503noneEnemyFeint enemyId=BS_TRUE attackId=BS_TRUE_A16 (chỉ P3, ≤ 1/chuỗi; phát chồng SFX_SHARED_tell_feint)
SFX_BS_TRUE_A08_inhaleloopBoss20001noneEnemyAttackActive attackId=BS_TRUE_A08 (loop suốt active 2.5 s; dừng fade 100 ms khi hết hút hoặc Vỡ Thế)
SFX_BS_TRUE_A09_closeimpactBoss10002noneEnemyAttackContact attackId=BS_TRUE_A09 (lớp thân; tell P chung = swell + tell_p_impact)
SFX_BS_TRUE_A10_whirlswingBoss3004noneEnemyAttackCut attackId=BS_TRUE_A10 beat=1..4 (mỗi nhịp 1 lần; tell Y mỗi nhịp 1 'tinh' chung)
SFX_BS_TRUE_A11_driftshotBoss4003noneEnemyProjectileFire attackId=BS_TRUE_A11 (2 khối; loop bay = SFX_SHARED_tell_p_proj chung ≤ 2 voice)
SFX_BS_TRUE_A12_hurlshotBoss4503noneEnemyProjectileFire attackId=BS_TRUE_A12 (tell Y chung; trúng/phản = SFX_SHARED_proj_reflect chung)
SFX_BS_TRUE_A13_holdmoveBoss3502noneEnemyWindupHold attackId=BS_TRUE_A13 (bắt đầu pose giữ 'nín thở'; tell Y chung không đổi)
SFX_BS_TRUE_A15_echoswingEnemy3004noneEnemyAttackCut attackId=BS_TRUE_A15 (tell Y chung)
SFX_BS_TRUE_A16_echoswingEnemy3504noneEnemyAttackCut attackId=BS_TRUE_A16 (tell Y chung; nếu là nhịp lừa thì SFX_BS_TRUE_feint đã phát trước)
SFX_BS_TRUE_A17_shadecastBoss11002noneEnemySummon attackId=BS_TRUE_A17 (xoáy = SFX_SHARED_summon_vortex chung)
SFX_BS_TRUE_A18_lastcastBoss24001noneEnemyAttackContact attackId=BS_TRUE_A18 (vành Lặng Cuối nhả; tell P chung = swell 1.2 s + tell_p_impact; 1 lần/trận)

4Bark (7)

IDNgười nóiKích hoạtLời thoại
BARK_BS_TRUE_wedgeBS_TRUEBossBaseRead read=R1 'Nuốt chỗ bạn đứng' (lần đầu trong trận + mỗi rẻ mới; khựng 0.6 s, c…[chuông nhỏ — chỗ bạn đứng sắp bị nuốt]
BARK_BS_TRUE_dash_readBS_TRUEBossBaseRead read=R2 'Nghe bước Lướt' (lần đầu A12 lệch ngắm theo Lướt cuối ≤ 2.0 s; call…[nó nghe bước Lướt của bạn]
BARK_BS_TRUE_hugBS_TRUEBossBaseRead read=R3 'Hút kẻ đứng gần' (lần đầu hero ở trong r140 ≥ 3.0 s → A08 ưu tiên; …[tro kéo bạn lại gần]
BARK_BS_TRUE_swallowBS_TRUEBossPhase phase=2 (khung 30 clip phase2, SN_SWALLOW đang bật)[tiếng bạn bị nuốt]
BARK_BS_TRUE_mirrorBS_TRUEBossBaseRead read=R4 'Gương Lặng' (khung 48 clip phase3; special_choice mirror_hero; call…[nó mặc bóng bạn]
BARK_BS_TRUE_lastBS_TRUEBossBaseRead read=R5 'Khe cho người còn đứng' (HP ≤ 10%, trước A18 Lặng Cuối; callout 'CÒ…[im lặng cuối cùng]
BARK_BS_TRUE_brokenBS_TRUEPoiseBroken enemyId=BS_TRUE (khung 0 clip broken / mirror_broken; ≤ 1 bark/4 s)[lõi chuông lộ ra]