Add formal enemies, remaining formal partners and synthesized UI SFX
- UI SFX v3: procedurally synthesized one-shots (Tools/synth_ui_sfx.py) wired to buttons, rewards, errors and red dots via UiSfx, gated by the SFX setting. - Five formal enemies (Hornlet, Dashlet, Shellhorn, HornCaptain, GreatHorn): Hunyuan 50k -> 2000-tri XPbr, DGXA TokenRig, Idle/Walk/Attack, nested per type in PrototypeArena; PrototypeBattle.Enemy gains presentation-only Moving/Strikes. - Formal partners for all ten pets in the arena and portraits, including new VineSprite, ThunderLeopard and TideWhale. - Pipeline fixes: reject local TokenRig fallback, drop loose mesh islands, configurable Unity run_script timeout, companion static stage. - Also includes concurrent work from another tool in this working tree (FlameLion, enemy combat FX, challenge mode, home explorer, server updates). - Resources registered in Doc/ResDesc_*.md; verified on isolated :18081. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
# UI 音效批次 v1
|
||||
|
||||
2026-10-20,按 `D:/UD/AI/XModel/TangoFlux_AI调用指南.md` 调用本机 `TangoFluxService`(`http://127.0.0.1:8012`)生成。风格贴近《微风小镇》菜单氛围:轻柔木感/糖果感 UI,短促、无音乐、无人声。
|
||||
|
||||
## 清单(10 条)
|
||||
|
||||
| 地址 | 用途 | 时长 | 种子 |
|
||||
| --- | --- | --- | --- |
|
||||
| `Ui_Click` | 通用按钮点击 | 1.5s | 41001 |
|
||||
| `Ui_Confirm` | 确认 / 正向操作 | 2.0s | 41002 |
|
||||
| `Ui_Back` | 返回 / 取消 | 1.5s | 41003 |
|
||||
| `Ui_Open` | 打开面板 | 2.0s | 41004 |
|
||||
| `Ui_Close` | 关闭面板 | 1.5s | 41005 |
|
||||
| `Ui_Tab` | 页签切换 | 1.5s | 41006 |
|
||||
| `Ui_Claim` | 领奖 / 领取附件 | 2.5s | 41007 |
|
||||
| `Ui_Deny` | 拒绝 / 余额不足等 | 1.5s | 41008 |
|
||||
| `Ui_Toggle` | 设置开关 | 1.5s | 41009 |
|
||||
| `Ui_Notify` | 红点 / 通知提示 | 2.0s | 41010 |
|
||||
|
||||
## 生成参数
|
||||
|
||||
- 模型:`declare-lab/TangoFlux` + 本地 `flan-t5-large`
|
||||
- `steps=50`,`guidance_scale=4.5`
|
||||
- 输出:44.1 kHz 立体声 WAV
|
||||
- 清单:`manifest.json`;任务回执:`Tools/output/ui_sfx_v1/` 与 `generation.json`
|
||||
- 入口脚本:`python Tools/generate_ui_sfx.py`
|
||||
|
||||
## 工程路径
|
||||
|
||||
- Bundle:`AIClient/Assets/Bundles/Sound/SFX/UI/{Id}.wav`
|
||||
- 收集:Art / Sound,`AddressByFileName`,`PackSeparately`
|
||||
- Unity 导入回执:`unity_validation.json`(10 条、44100 Hz 立体声、DecompressOnLoad/PCM;Art/Sound 已收集)。
|
||||
- v1 只入库与登记,未接入运行时播放;2026-10-21 已由下文 v2 替换同名 WAV 并接入运行时。
|
||||
- 许可:TangoFlux 权重为非商业研究用途,商用前须核对上游许可。
|
||||
|
||||
|
||||
## v2 一次性短音效与运行时接入(2026-10-21)
|
||||
|
||||
v1 的 10 条里有 9 条从头响到尾,持续 1.5~2.5 秒;`Ui_Open` 前 1.36 秒为静音,不适合作为按钮音。v2 改用"单发后静音"的提示词,每条以服务允许的最短时长 1 秒、4 个种子(52001~52004)生成候选。候选经 `Tools/generate_ui_sfx_v2.py` 后处理:去掉开头静音、截到目标长度、加 2ms 淡入和尾部 40% 平方淡出、归一化峰值。自动选择取目标窗口内能量占比最高、起音最快的候选,原始峰值低于 0.1 的视为噪声并淘汰(这条规则排除了 Notify 原先选中的 52002)。清单为 `manifest_v2.json`,选择结果与全部候选指标见 `generation_v2.json`。
|
||||
|
||||
| 地址 | 目标时长 | 峰值 | 选用种子 |
|
||||
| --- | --- | --- | --- |
|
||||
| `Ui_Click` | 0.15s | -6 dBFS | 52002 |
|
||||
| `Ui_Confirm` | 0.45s | -4 dBFS | 52001 |
|
||||
| `Ui_Back` | 0.22s | -6 dBFS | 52002 |
|
||||
| `Ui_Open` | 0.35s | -6 dBFS | 52002 |
|
||||
| `Ui_Close` | 0.28s | -7 dBFS | 52002 |
|
||||
| `Ui_Tab` | 0.12s | -7 dBFS | 52001 |
|
||||
| `Ui_Claim` | 0.8s | -3 dBFS | 52001 |
|
||||
| `Ui_Deny` | 0.3s | -6 dBFS | 52002 |
|
||||
| `Ui_Toggle` | 0.14s | -7 dBFS | 52001 |
|
||||
| `Ui_Notify` | 0.5s | -6 dBFS | 52004 |
|
||||
|
||||
候选的原始音频和处理后版本在 `Tools/output/ui_sfx_v2/raw|trimmed/`。如需改用其他候选,执行 `python Tools/generate_ui_sfx_v2.py --process --pick Ui_Click=52003`,再用 Pipeline 运行 `BuildUiSfx.Build`。自动选择只依据波形指标,**听感仍需人工试听确认**。v1 原始文件保留在 `Tools/output/ui_sfx_v1/`。
|
||||
|
||||
运行时:`UiSfx.prefab`(`Assets/Bundles/Sound/Prefab/`,Art/Sound,地址 `UiSfx`)带一个 2D AudioSource(volume 0.8),并按 `UiSound` 枚举顺序引用 10 个 Clip,由 `GameplayBootstrap` 与主界面音乐一同加载。播放受设置里的"音效"开关控制,与音乐开关互不影响;同一音效 60ms 内的重复请求会被忽略。
|
||||
|
||||
| 地址 | 触发 |
|
||||
| --- | --- |
|
||||
| `Ui_Click` | 普通按钮 |
|
||||
| `Ui_Confirm` | 训练/进化/购买/营地操作成功、重复胜利 |
|
||||
| `Ui_Back` | 取消预览、撤下伙伴、放弃战斗 |
|
||||
| `Ui_Open` | 首页入口打开面板 |
|
||||
| `Ui_Close` | 返回/关闭回到首页 |
|
||||
| `Ui_Tab` | 页签、邮件翻页 |
|
||||
| `Ui_Claim` | 领奖、捕捉、开宝箱、首通胜利 |
|
||||
| `Ui_Deny` | 服务端拒绝或连接失败 |
|
||||
| `Ui_Toggle` | 设置开关、画质、布阵部署/撤下/推荐 |
|
||||
| `Ui_Notify` | 首页新出现红点 |
|
||||
|
||||
验证:`BuildUiSfx.Verify` 与 `VerifyUiSfx.Play` 在隔离的 18081 账号上实际点击,结果为 hud.settings=Open、quality=Toggle、sfxOff=Toggle、关闭音效后关闭页面与打开设置均无声、settings.close=Close、hud.rewards=Open、每日宝箱=Claim、chest.back=Close;真实账号与音效偏好已还原,本轮无新增 Console 错误或警告。未构建或发布。
|
||||
|
||||
## v3:程序化合成(2026-10-21)
|
||||
|
||||
v2 试听反馈为“不好听”,与清脆轻松的游戏风格不符。v3 不再使用生成模型,改由 `Tools/synth_ui_sfx.py` 合成:
|
||||
|
||||
- 音色:木琴(基频加 3.93×、9.2× 快衰泛音)、钟琴(1 / 2.76 / 5.40 / 8.93× 非谐泛音)、气泡 pop(快速上滑的正弦),以及 4ms 高通噪声作起音。
|
||||
- 映射:Click 气泡 pop;Tab 木琴 A6 轻敲;Toggle 两连 pop;Confirm 木琴 E6→B6 上行;Back 木琴 G6→D6 下行;Open 上滑加 E7 叮;Close 下滑加 G5 闷敲;Claim 钟琴 C6-E6-G6-C7 琶音加高音闪烁;Deny 两声低音柔和 boop;Notify 钟琴 G6→D7 叮叮。
|
||||
- 调整:改 `RECIPES` 里的音高、衰减和音量后运行 `python Tools/synth_ui_sfx.py --preview`,再在 Unity 里执行 `BuildUiSfx.Build`。
|
||||
Reference in New Issue
Block a user