Files
udxandClaude Opus 5.5 89e0fa246f 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>
2026-10-21 12:23:55 +08:00

70 lines
7.5 KiB
Markdown
Raw Permalink 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.
# 烈焰狮 FlameLion · T1 伙伴制作记录
2026-10-21完成。伙伴ID=6,火元素输出,主动技能“燎原烈焰”(kind=burst,T1/T2为2/3目标)。保留原型双足比例与金橙身体、赤橙鬃毛身份,风格与现有正式伙伴一致。本次交付角色视觉,未修改Config/Gameplay/greenfield.json玩法数值。
## 交付
| 项目 | 路径 |
| --- | --- |
| 静态伙伴 | `AIClient/Assets/Bundles/Characters/Animal/FlameLion/FlameLion.prefab` |
| 动画伙伴入口 | 同目录 `FlameLion_Companion.prefab` |
| 骨架中间Prefab | 同目录 `FlameLion_Rigged.prefab` |
| 独立验收场景 | `AIClient/Assets/Bundles/Scenes/Review/Companion_FlameLion_Review.unity` |
| 并排/Play截图 | `AIClient/Assets/Screenshots/companion_flamelion_{review,play}.png` |
| 正式配方 | `Config/Art/Companions/FlameLion.json` |
| 来源与状态 | `Tools/output/companions/FlameLion/production_manifest.json`,status=validated |
0.60m、2000三角面/992原始顶点,1024² base/mix、Test/XPbr;每顶点最多4个归一化权重。Unity Y-up、底面中心、局部-Z正面;逻辑根旋转identity/单位缩放,Root Motion关闭。没有运行时补转或临时改骨。
## 来源与静态验收
内置image_gen参考 `AIClient/Assets/Bundles/UI/Texture/Prototype/proto_pet_6.png` 身份/双足比例和 `Doc/Design/Character/FireCat/firecat.png` 风格生成flamelion.png,1024×1536,白底四角RGB最小253;提示词、参考和内置生成模式完整保存于design_prompt.txt。图像SHA256为caec79d3578de66e37861d89dbff1e7b7ee068ab8fd4fd925efaedd777897123。鬃毛与尾簇是实体毛发,无预烘焙喷火或粒子。
用户已明确允许本角色设计图提交腾讯混元3D及模型/骨架发送项目DGXA。官方网页50k任务62a709af10ca42818aa72b6c092402a4得到Tools/output/flamelion_3d/flamelion.glb,实测50000tris、内嵌贴图解码通过。
Blender5减面/UV/烘焙到Tools/output/flamelion_game/flamelion_xpbr。通过Pipeline导入FBX与两张PNG,在Unity创建XPbr与静态Prefab;离线mat/meta不导入。实测静态高0.599976m、底面-0.000001m,正/侧/背/透视图确认-Z与形状,未额外旋转高模。
## 同角色骨架与权重
首轮DGXA CUDA上下文显存错误后,外部后端回退本机,得到异常33骨长链;该骨架已拒收,保留local_invalid_rigged.glb/回执和bind_probe.txt诊断,不接动作。明确远程重试仍遇显存错误,最小CUDA分配恢复成功且容器无残留任务后再次重试成功;全程未停止其它模型服务。
正式骨架为DGXA TokenRig original自身28骨,Tools/output/flamelion_dgx/high_rig/rigged.glb,回执backend=remote。rig SHA256:e3bdf093d484a2f87d2385b6be372f55594fb8eac7869362e87a43547e61cc96;三段UniMate源动作全部在该rig上新生成,CUDA成功,rig/FBX哈希及导入后骨路径一致性通过。先单Walk数值与四相位目视,再生成Idle/Attack。
自身映射:root0、chest3、neck4、head5;双臂7/14,双爪参考10/17;双脚22/26、脚尖23/27。编号只属于本角色。该骨架没有独立下颌或尾骨,本版无张嘴口型或独立尾部次级摆动;火焰释放由头部/双爪施法动作与事件表达。
低模Y-up→Blender Z-up,对齐底面中心/等比尺寸后转权重,保留原网格和UV。表面距离最大0.012422/RMS0.004445,源高约1.056;最终绑定对照静态模最大顶点误差0.000030m。Armature轴约定保持同源一致,不单独清零。
头鬃宽空间区域影响747个源顶点,其中681个全权重到head5;双脚区域影响44/47个源顶点。随后用更精细的尾部测地距离覆盖58个源顶点到髋骨root0,避免尾簇被头部宽区域或前臂带动。蒙皮工具现明确先空间区域、后测地覆盖的优先级;既有伙伴此前没有同时使用两类覆盖,原单类行为不变。报告保留每区范围和影响数。
skinRegions/skinOverrides使用原静态FBX坐标/高度,Z与Unity相反;maneRegion使用Unity归一化坐标供独立QA。刚性检查覆盖992个头鬃区Unity顶点,扣除头骨刚性变换后误差在报告精度0,门槛1mm;两脚实际采样80/55个顶点。
## 三动作与验收
| 动作 | 成品行为 | 各121帧实际蒙皮结果 |
| --- | --- | --- |
| Idle | 1.8秒循环,8%源变化+轻呼吸,双脚固定 | 最大形变0.02203m,身体倾角2.387°,两脚支撑 |
| Walk | 1.2秒循环,12%源变化+离线交替短步 | 实际步幅0.04866/0.06737m,抬脚0.01789/0.01191m,至少一脚支撑;身体倾角3.514° |
| Attack | 1.2秒单次,8%源变化+后收蓄力/双爪展开前送与头部释放/恢复 | 最大形变0.12594m,头部相对胸背前送0.01624m/抬头6.654°;双爪相对胸背前送0.06257/0.05974m、外展0.02023/0.01817m;两脚支撑,身体倾角1.584° |
原始Walk首帧根倾角34.142°,离线对所有骨骼校准至自身绑定姿态,保留相对源变化。最初保留25%源变化时左脚实际抬起6.71mm未通过门槛,降至12%后达11.91mm;不放宽实际网格门槛,也不只检查骨点。
三段首尾顶点差均为0、逻辑根XZ漂移0。Walk整体底面[-0.000109,0.000117]m,Idle/Attack约0~0.000001m;待机与施法两脚持续撑地,最大另一脚离地0.18mm。头部前送、双爪前送/外展扣除胸背转动后检查,不能由身体前倾冒充施法。
控制器Idle↔Walk、两状态进入Attack、单次Trigger只攻击一次、恢复请求状态及过渡贴地通过。实际10秒Play观察到三状态,最大根/身体倾角3.504°,逻辑根固定;结束已回编辑模式。静态四向、Walk四相位、Idle中段、Attack蓄力/释放/恢复四向近景均已核对,鬃毛与尾簇未见明显拉扯。
X=140独立Additive场景包含Static/Idle/Walk/Attack/Cycle五组。制作期间检测到其它敌人场景占用Play时先停止制作入口;用户明确允许退出后继续,保留其它场景。并排截图发现旧Attack姿势缓存,Capture现从正式Prefab在隔离PreviewScene建立新实例并采样,截图显示正确施法峰值,原场景与轮播不被暂停/改写。
## 调用与复现
Animator在Model节点:Motion Int 0=Idle、1=Walk;Attack Trigger触发一次火焰施法。Attack在0.6秒发送OnCompanionAttackImpact;接收器需位于Animator节点或转发。真实扇形火焰特效、音效、双/三目标伤害、灼烧表现与关卡简模替换仍由技能系统接入。
```powershell
python Tools/character_animation_pipeline.py --recipe Config/Art/Companions/FlameLion.json --build-review --play-check
# 需要重新绑骨时明确远程,禁止复用本机诊断
python Tools/rig_character_source.py --source Tools/output/flamelion_3d/flamelion.glb --out Tools/output/flamelion_dgx/high_rig --generate --backend remote
```
完整标准入口及最终隔离截图方法均已执行通过。8项Python流程保护测试、制作/QA/截图C#实际编译执行、火喵只读回归通过。初始FlameLion.draft.json仍boneMappingReady=false,仅为禁用历史草稿。
报告位于Tools/output/companions/FlameLion:production_manifest.json、verification.txt、walk_verification.txt、play_verification.txt、walk_processing.txt、motion_processing.txt、FlameLion_Rigged.skin.json;last_failure.txt保留已修正的25%Walk抬脚诊断,最终状态以validated清单与verification为准。资源登记Picture/Model/Animation/Config,总清单追加静态与伙伴两项,仅ValidateOnly,不重建总场景。