Skip to content

脚步声控制器

系统概览

脚步声控制器(ADR-088)。消费 feet-adjustment 的落地事件(FootLandEvent), 程序化合成音效(零音频资源)通过 SFX 总线发声。状态为全局配置(uiState), 一套脚步声配置作用于所有模型。

核心职责

  • footstep.ts — 落地事件消费、程序化音效合成、地面材质音色微调、降级检测。

对外 API(节选)

  • type GroundSfxKind — 地面音色类型(concrete/grass/wood/water/default)。
  • interface SynthCfg — 合成参数(cutoff/noiseAmt/thump)。
  • SYNTH_CFG — 各地面材质的合成配置表。
  • startFootstep(scene) — 启动脚步声系统,消费 feet-adjustment 落地事件。
  • stopFootstep() — 停止脚步声系统。
  • resolveGroundSfxKind() — 从当前 envState 解析地面音色类型。

与其他子系统关系

  • 落地事件来源:./feet-adjustment.setOnFootLand
  • 音频总线:@/core/audio-bus.playSfx
  • 全局配置:@/core/state.uiState
  • 地面类型:@/core/state.envState

不变量

  • 合成 buffer 缓存 _synthCache:按 kind 缓存 3 个变体,避免每步重建。
  • 音量归一化:impactSpeed / REF_IMPACT_SPEED (6) → 0..1 音量。
  • 全局配置:uiState 中的脚步声配置作用于所有模型。