6.7 KiB
伙伴技能特效与音效制作记录
2026-10-21:十位伙伴的技能表现已接入正式 PrototypeArena。本批补齐四条 TangoFlux 音效,九条计划音效均有真实产物及生成回执。
已制作资源
特效目录:AIClient/Assets/Bundles/Combat/Partners/。各行文件名均以 Vfx_ 开头、.prefab 结尾。
| 伙伴 | 特效文件名 | 触发与形态 |
|---|---|---|
| 石球 | RockBallGuard | shield:琥珀护环与石甲颗粒,跟随目标直到护盾耗尽/到期 |
| 火喵 | FireCatFlare | hit:火花与橙色冲击环;复用火焰蓄力、发射与弹道 |
| 芽芽 | BudBudBloom | heal:绿环、粉色花瓣与治疗十字 |
| 闪闪雀 | SparkBirdBolt | hit:连接施法挂点与命中目标的蓝色折线雷电 |
| 泡泡龟 | BubbleTurtleBubbles | slow:围住目标的蓝色泡泡 |
| 岩甲犀 | RockRhinoQuake | slow:贴地震波与飞散石块;石击沿用岩石命中 |
| 烈焰狮 | FlameLionBreath | ability release:面向目标的锥形喷焰;hit:火焰命中 |
| 藤灵 | VineSpriteVines | heal:上升藤蔓、叶片与绿环 |
| 雷纹豹 | ThunderLeopardClaw | hit:紫色雷电连接与三道爪痕 |
| 潮汐鲸 | TideWhaleTide | shield:半球水罩与涟漪,状态结束清理 |
Pipeline 同时制作六个共用低多边形网格:SkillStone、SkillLeaf、SkillHealCross、SkillBubble、SkillWaterDome、SkillVineHelix(.asset)。PartnerSkillGlow.mat 使用现有 AIGame/EnemyCombatParticle Shader,白纹理及顶点色;不修改敌人共用材质。所有 Prefab、材质、网格均在编辑器内持久化。
新增音效位于 AIClient/Assets/Bundles/Sound/SFX/BattleSkills/:
| 文件 | 用途 | 成品长度 | 实际 seed |
|---|---|---|---|
| Sfx_Heal.wav | 治疗 | 0.55s | 52005 |
| Sfx_Slow.wav | 减速 | 0.50s | 52007 |
| Sfx_Lightning.wav | 雷电命中 | 0.38s | 52008 |
| Sfx_EnemyHit.wav | 软受击 | 0.26s | 52009 |
按 D:/UD/AI/XModel/TangoFlux_AI调用指南.md 调用本地 127.0.0.1:8012。每条源音频2秒、50步、guidance 4.5,最多2条并发;65Hz高通、起音裁切、5ms淡入/50ms淡出、峰值约 -1.94dBFS。成品 PCM16/44.1kHz/双声道,Unity 导入为 PCM、DecompressOnLoad、保留采样率。源文件与请求缓存:Tools/output/partner_skill_sfx/;回执:Doc/Design/Sound/BattleSkills/Partners/generation.json;九条连听文件:同目录 preview_all_nine.wav。前五条保留 Slice 原始回执和真实 seed。本批未声称完成主观听审;发布授权审查沿用原 manifest 的 pending 状态。
标准制作与接入步骤
- 在
Config/Combat/partner_presentations_v1.json配置角色、效果索引、声音索引、地面效果、持续时间与池容量。数据效果仍由skill_runtime_v1.json的服务器逻辑决定。 - 用
BuildPartnerSkillFx.Build经 Unity Pipeline 制作/更新持久化美术资产,再用BuildBattleSkills.Build构建正式表现池并嵌入已有战场。 - 声音按 TangoFlux 指南生成,保留 request/job/source/output 哈希;补登记 manifest,设置 Unity 导入参数。维护共用音效优先于按角色重复生成。
BattleSkillPresentation仅消费已结算的 cast_start、release、projectile、hit、shield、heal、slow 等事件;原 Attack 仍按既有15种角色的 attackImpact 对齐。19个既有 SkillMuzzle 随角色朝向与T2缩放;表现组件不计算伤害/治疗/减速。- 验证索引与文件、音频格式及回执、真实轨迹、播放清理和画面,追加资源登记后完成。
正式池当前15类效果、76个根粒子实例、8个音源、9条音效、10个伙伴配置。雷电折线复用池中的 LineRenderer;运行时不创建材质、粒子或声音对象。雷电/群体治疗/减速同一次 cast 同种声音只播一次;普通软受击避免旧敌人声音与新伙伴声音重复叠播,硬壳/护盾反馈仍保留。
暂停与倍速作用于表现时钟及粒子;声音保留原始音高。过期的一次性事件跳过,未到期护盾和弹道可恢复。取消/死亡/目标消失/状态到期/battle_end/禁用均清理对应租约,代数标识避免旧租约停止刚复用的粒子。战斗结束保留计数供验收、清空播放对象。
验收证据
audio_config_validation.json:十个配置与 Prefab、九条音效的源/请求/成品哈希、成功任务、起音/淡出/响度/零削波通过。behavior.json:十种专属效果与九种声音均触发;连接端点、多目标音效去重、超池复用、过期跳过、暂停/2倍速/静音、死亡/到期/取消/结束/禁用清理通过。23份既有服务器轨迹覆盖十个伙伴,全部回放至末尾无残留。battle_visual.json:真实PrototypeFlow消费服务器第20关T2轨迹并截图,验证正式战场、既有挂点和雷电命中。测试夹具不写真实账号。Assets/Screenshots/partner_skills_overview.png:十角色独立特效总览;partner_skills_battle.png:正式场景命中。已目视检查颜色、形态、源点到目标及亮背景可见度。VerifyBattleRuntime.Assets:正式战场76实例/8音源/9音效、19个局部-Z挂点、10伙伴/5敌人动作相位绑定通过。python -m unittest discover -s Tools/tests -p test_skill_design.py:8项通过;python Tools/verify_partner_skills.py、python Tools/validate_skill_runtime.py通过。
尚未进行微信真机帧耗、内存与混音主观验收;本次为编辑器功能及视觉验收。本批不改服务器逻辑、数值或现有账号,未重启8080服务。收尾退出测试 Play,保留原编辑场景。
重建入口:
python Tools/generate_partner_skill_sfx.py
Unity Pipeline: BuildPartnerSkillFx.Build -> BuildBattleSkills.Build
python Tools/verify_partner_skills.py
Unity Pipeline (Play): VerifyPartnerSkillFx.Behavior / ContactSheet
Unity Pipeline (Play): VerifyBattleRuntime.VisualSkills
Unity Pipeline (Stop): VerifyPartnerSkillFx.Finish / VerifyBattleRuntime.Assets
混音试听交付(2026-10-22)
已补齐5份技能/UI离线混音试听,涵盖菜单、9种技能单项、1×/2×第20关T2轨迹与密集叠加;保持正式增益、不限幅不归一化,所列样例零越界,最高4倍过采样峰值-3.47dBFS。具体文件、听审关注点及方法边界见 MixReview/Production.md。Unity实录尝试超时并已恢复干净Boot场景;产物不冒充实录,主观听感和微信设备验收仍待确认。正式技能单路仅0.0375,单音峰值约-30dBFS,已标记技能被敌人反馈遮蔽的听审关注点;未改变正式混音。