Files

5.0 KiB
Raw Permalink Blame History

火喵/岩团团技能闭环样例

2026-10-21完成独立样例。五敌人 Studio 模型已替换正式 PrototypeArena;本页的新技能逻辑则在独立验收场景运行。本页记录独立样例批次结束时的历史状态:当批主线为battleRules=2且未接网络轨迹;后续已完成正式权威协议与9/9技能声音,最新状态见 ../Runtime/Production.md 与 ../PartnerSkills/Production.md。

已完成

  • AIServer/src/combat_slice.hpp/.cpp:纯 C++ 逻辑内核;50ms整数 tick,千分之一血量/攻击、毫米位置。实现施法通道、主动技能优先、前摇/释放/后摇、冷却、投射物、伤害/护盾、过期、死亡与取消。无 Unity、墙上时钟、数据库依赖;当前只编入独立 combat_slice_tests 目标,未编入线上 aiserver。
  • Config/Combat/skill_slice.json:隔离样例配置;岩团团前排、火喵后排、三个小角怪。敌人血量为原配置×2以覆盖护盾与近战,属于验收场景参数,不是20关的新平衡。原玩法和技能 proposal 的冻结副本保存在 trace 中,校验其内容及 SHA256。
  • AIClient/Assets/Bundles/Combat/SkillSlice/trace.json:由 C++ 导出,219为最后 tick、366事件、36次施法、12颗火球、30次唯一命中。客户端只播放事件,不再计算该样例的伤害。Tools/export_skill_slice.py 先保存输入原始字节到 Tools/output/skill_slice_inputs/,回执 export.json 记录输入及轨迹哈希;验证/Play回执绑定同一轨迹哈希,最新配置变化不会混入旧轨迹。
  • SkillSlicePlayer.cs:前摇、释放、到达和血量变化使用同一播放时钟;原 Attack 按各角色制作配方的 attackImpact 分段采样,火球在到达事件才扣血。拱形弹道仅影响外观;逻辑到达 tick 不变。已经释放的火球不因施法者死亡而撤回;释放前死亡取消。
  • 持久化 SkillSlice.prefab:五实体的模型/Muzzle/Animator绑定,5类特效、24个池实例、8个技能音源;复用现有敌人反馈池。蓄力按 castId、护盾按 entityId、火球按实例租约清理。音效开关、暂停/恢复、1×/2×、低帧率过期声音跳过、结束/禁用清理已实现。
  • 五条 TangoFlux 音效:FireCharge 0.48s、FireLaunch 0.28s、FireHit 0.40s、RockHit 0.32s、Shield 0.65s。按项目指南英文提示、2秒原稿、50步、guidance4.5、并发≤2生成,再裁切/淡入淡出。实际 seed/请求/任务ID/哈希以 Doc/Design/Sound/BattleSkills/Slice/generation.json 为准;原始计划 seed 保留在计划表中,没有冒称与生成请求相同。

验证与查看

  • C++ 30项断言:起手无伤害、延迟到达、同 tick 零前摇护盾、动作互斥、后摇、冷却边界、死亡前取消、释放后存续、丢失目标不换目标、唯一死亡、护盾刷新不叠加、过期、元素防御、确定性与输入边界。
  • Tools/verify_skill_slice.py:事件顺序/唯一命中/火球到达 tick/冻结输入哈希、五条音效源稿及输出哈希、格式、起音、尾部淡出和零削波通过。人工听感未由自动检查代替;试听 Doc/Design/Sound/BattleSkills/Slice/preview.wav。
  • Unity实际 Play:火球到达前后血量检查通过;1×、2×、0.73秒低帧率步进的最终血量、护盾、位置、死亡/离场状态与 C++ 一致;暂停不前进、静音、重复结束、禁用清理通过。回执 assets.json、play.json、validation.json。
  • 直接打开 Assets/Bundles/Scenes/Review/SkillSlice_Review.unity 后 Play 可看独立样例。它不会载入账号或发奖励;结束后保持结果,重进 Play 可重播。未覆盖当前 Boot 场景。
  • 截图 Assets/Screenshots/skill_slice_fireball.png、skill_slice_shield.png。截图为暂停时刻,粒子额外推进30ms刷新几何,仅供视觉检查,不推进逻辑时钟。

复现

cmake --build AIServer/build-g1 --config Release --target combat_slice_tests
python Tools/export_skill_slice.py
python Tools/verify_skill_slice.py
python Tools/validate_skill_design.py

Unity经Pipeline依次运行 BuildSkillSlice.Build、VerifySkillSlice.Assets;Play中运行 VerifySkillSlice.Play,结束后停止。TangoFlux重制入口为 Tools/generate_skill_slice_sfx.py,有效源稿按请求哈希复用。

后续接入边界

当批尚未完成25技能、治疗/减速、多路波次、trace分页和协议兼容,声音为5/9;后续已完成上述权威协议及10伙伴/20关运行时接入、9/9声音,不再列作当前待办。样例本身仍只是独立验收证据,正式规则与兼容边界见下节。TangoFlux权重依项目指南为非商业研究用途,保留许可核查边界,未宣称商用放行。

权威技能协议与正式战场接入(2026-10-21)

后续已将独立样例推广到正式技能协议与全关战场,见 ../Runtime/Production.md。本页保留独立样例的原始制作记录;正式配置、分页、恢复与客户端入口以Runtime文档为准。