Files
SoundGame/tools/gen_hunt_bgm.sh
T
xsl 005851d01a feat(hunt): 《围猎》2-4人实时联机纯音频协作守卫——纯音频MMORPG第一阶段切片
- 设计:docs/design/23-hunt.md + voice-ids(84 id,166条)+ 13号断言登记,§15记录10+1条设计裁决
- 服务器:零依赖WebSocket(ws.js)+ 房间管理/服务端权威战斗/bot AI(hunt-room.js),断线30s宽限resume回槽、超时转bot;修复package.json模块类型误判的既有破坏
- 客户端:web/hunt/ 全套(教学T0-T4/听觉视野裁剪R1-R8/结算排行榜/guide接入),playtest 211断言
- 引擎:audio.js 后向兼容 opts.pan(StereoPannerNode),web-engine-api.md 同步
- 资产:166条TTS语音(QC无离群)+ 13件合成sfx(真峰值≤-3dBFS)+ 2首Mureka BGM,终检全绿
- 平衡:bot调参至挂机局71%失守/C、3bot局71% A/B(hunt-balance-scan.mjs 24种子扫描)
- 接线:大厅卡片、profiles.js hunt桶、README/roadmap MMO路线条目

验证:hunt-sim 16/16 + api-smoke 12/12 + hunt playtest 211/211 + 既有10游戏与引擎回归零回退 + 真服务器WS端到端冒烟通过
2026-09-13 11:08:01 +08:00

35 lines
1.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 《围猎》BGM 后处理(批次 3):Mureka flac 候选 -> 90s 无缝循环 ogg+m4a。
# 用法: bash tools/gen_hunt_bgm.sh (flac 原件在 tools/mureka_out/,不入库)
#
# 工艺(web/detective/gen/gen_bgm.sh 同款,tools/mureka_log.md 先例):
# 首个强 onset 起点(silenceremove,-35dB 门限)→ 93s 裁剪 → 首尾 3s acrossfade(tri)
# 无缝循环 → loudnorm I=-20/TP=-2/LRA=11(23-hunt.md §10.1,两首均 -20 LUFS;
# 结算态 0.5 volume 由游戏层控制)→ aresample 44.1kHz
# → ogg libvorbis q3 + m4a aac 128k,落 web/hunt/audio/bgm/。
# hunt 无节拍网格玩法,100bpm 仅为 prompt 特征词,不跑 bpm_precise(dungeon 先例)。
set -euo pipefail
cd "$(dirname "$0")/.."
export PATH="$PWD/tools/bin:$PATH"
TMP=tools/bgm_post_wav/hunt # 中间 wav(不入库,可由本脚本复现)
DST=web/hunt/audio/bgm
mkdir -p "$TMP" "$DST"
post() { # post <flac> <track> <LUFS>
local src="$1" track="$2" lufs="$3"
local tmp="$TMP/$track.wav"
ffmpeg -y -v error -i "$src" -af \
"silenceremove=start_periods=1:start_threshold=-35dB:start_silence=0.02,atrim=end=93,asetpts=PTS-STARTPTS,asplit[a][b];[b]atrim=start=90,asetpts=PTS-STARTPTS[t];[a][t]acrossfade=d=3:c1=tri:c2=tri,loudnorm=I=${lufs}:TP=-2:LRA=11,aresample=44100" \
"$tmp"
ffmpeg -y -v error -i "$tmp" -c:a libvorbis -q:a 3 "$DST/$track.ogg"
ffmpeg -y -v error -i "$tmp" -c:a aac -b:a 128k "$DST/$track.m4a"
echo "$track <- $src (I=${lufs})"
}
# 选用候选 = 更接近 90s 的那支(拿不准原则),详见 tools/mureka_log.md 批次 3 节
post tools/mureka_out/hunt-menu/160549591842821_0.flac menu -20 # 177.3s
post tools/mureka_out/hunt-hunt/160549425905665_0.flac hunt -20 # 192.6s
echo "== hunt bgm done: $(ls "$DST" | wc -l) files =="