# 芽芽 BudBud · T1 伙伴制作记录 2026-10-20完成正式版本。伙伴ID=2,草元素支援/治疗定位;奶油圆脸、五片绿叶瓣、头顶黄花苞、短叶臂和双足,与火喵保持相同美术风格。本次交付角色视觉资产,不改变战斗数值。 ## 交付 | 项目 | 结果 | | --- | --- | | 静态伙伴 | `AIClient/Assets/Bundles/Characters/Animal/BudBud/BudBud.prefab` | | 动画伙伴入口 | `AIClient/Assets/Bundles/Characters/Animal/BudBud/BudBud_Companion.prefab` | | 骨架中间Prefab | 同目录 `BudBud_Rigged.prefab` | | 验收场景 | `AIClient/Assets/Bundles/Scenes/Review/Companion_BudBud_Review.unity` | | 并排/Play截图 | `AIClient/Assets/Screenshots/companion_budbud_{review,play}.png` | | 正式配方 | `Config/Art/Companions/BudBud.json` | | 来源与状态 | `Tools/output/companions/BudBud/production_manifest.json`,status=validated | 尺寸0.50m,2000三角面、1002原始顶点,1024² base/mix贴图,Test/XPbr材质,每顶点最多4个归一化权重。Y-up、底面中心原点、局部-Z正面;逻辑外层根缩放1/旋转identity,Root Motion关闭。 ## 来源与制作 1. 内置imagegen参考 `FireCat/firecat.png` 风格与 `proto_pet_2.png` 身份生成 `budbud.png`,1024×1536,白底四角RGB最小253。完整提示词/模式/参考见 `design_prompt_formal.txt`。 2. 用户明确授权后提交腾讯混元3D官方网页50k图生3D,得到 `Tools/output/budbud_3d/budbud.glb`(50000 tris),内嵌贴图解码通过。任务回执 `hunyuan_status.json`。 3. Blender5减面、UV、烘焙到2000 tris/1024 XPbr;产物 `Tools/output/budbud_game/budbud_xpbr/`。Pipeline只导入FBX和两张PNG,在Unity创建材质/Prefab,不复制离线mat/meta。 4. 同一混元高模经项目DGXA TokenRig original模板得到自身22骨,保存在 `Tools/output/budbud_dgx/high_rig/`。rig SHA256:`729fbbd33dee63977da22ae809762a2d4894882da04df9c0512291b27e44af98`。 5. 已验收低模Y-up转Blender Z-up,再等比尺寸/底面中心对齐后转权重,保留网格与UV。对齐距离最大0.004639、RMS0.001779(源模型高约1.131);本角色无需额外skinOverrides。绑定后对静态模最大顶点误差0.000026m。 6. 先生成并验收单Walk的121帧蒙皮和四个相位的正侧背面,再补Idle与治疗施法Attack。三段均为同一rig的UniMate新生成源动作,本次均CUDA成功,回执记录rig/源FBX哈希、原始英文提示词和远程任务号。 7. 源动作经离线绑定空间校准、贴地、循环闭合与语义编辑保存为正式.anim;不依赖运行时反向旋转或临时生成动画。统一入口完成Edit及实际Play验收。 自身骨骼检查:root=bone_0、chest=bone_3、头部链bone_4/5;X正侧手臂bone_7/踝bone_16/脚尖bone_17,X负侧手臂bone_11/踝bone_20/脚尖bone_21。正面参考使用不同的左右踝骨16/20;编号只适用于本次芽芽rig。花瓣与花苞随头部链运动,无独立花瓣次级骨。 ## 动作与验收 | 动作 | 正式行为 | 121帧实际蒙皮结果 | | --- | --- | --- | | Idle | 1.6秒循环,8%源变化+轻呼吸,首尾绑定参考 | 最大形变0.01614m;根倾角1.539°;脚底误差≤0.019mm | | Walk | 1.1秒原地循环,35%源变化+交替短步 | 左右步幅0.05763/0.05558m;根倾角7.950°;脚底误差≤0.137mm | | Attack | 1.1秒单次,12%源变化+双叶手抬起前推治疗施法,恢复Idle | 最大形变0.10955m;根倾角2.199°;脚底误差≤0.156mm;内部视觉位移0.002m | Walk原始根倾角65.349°,并非静态模up改变;用全骨骼源首帧相对绑定姿态校准,保留相对运动后离线收尾。仅改Armature +90°X不能解决,正式资产保留正确绑定空间。 三段首尾顶点误差均为0;Idle/Walk逻辑根水平不漂移。控制器通过Idle↔Walk、两状态进入Attack、单触发一次及恢复请求状态;实际10秒Play观察到Idle、Walk、Attack,最大根倾角7.915°,根位置固定,结束已退出Play。 正侧背静态、Walk四相位、施法蓄力/出手/恢复近景已目视检查;花瓣头与花苞、叶臂和背部小叶无明显拉扯或塌陷。预览可在验收场景的Static/Idle/Walk/Attack/Cycle五组查看,X=60,与火喵X=40隔开。该场景未接入正式关卡。 ## 调用与复现 Animator在Model节点:`Motion` Int,0=Idle、1=Walk;`Attack` Trigger触发一次治疗施法。Attack在0.55秒发送 `OnCompanionAttackImpact`,事件接收器应在Animator所在节点或由该处转发。该事件仅提供表现时机,实际回血、范围选取、治疗特效和音效由技能系统接入。 ```powershell python Tools/character_animation_pipeline.py --recipe Config/Art/Companions/BudBud.json --build-review --play-check ``` 默认使用哈希校验后的本地来源;显式 `--generate Idle Walk Attack` 才请求新动作。初始 `BudBud.formal.draft.json` 继续保持boneMappingReady=false,仅作禁用草稿记录。 验收报告位于 `Tools/output/companions/BudBud/`:`verification.txt`、`walk_verification.txt`、`play_verification.txt`、`walk_processing.txt`、`motion_processing.txt`、`BudBud_Rigged.skin.json`。近景在 `static_audit/`、`walk_audit/`、`idle_audit/`、`attack_audit/`。 ## 旧草稿留档 原Blender程序化1804 tris/8骨版本未通过Unity验收,已由本正式版本替换。原离线文件、配方与文档在 `Tools/output/budbud_offline_draft_20261020/`;原Unity资产通过Pipeline复制至 `AIClient/Assets/Temp/BudBud_OfflineDraft_20261020/`,新GUID且不进入Bundles。旧记录仅作历史,不作为正式来源。 AIClient使用图形batchmode+Unity Pipeline完成本次制作;启动时空白未命名场景(0对象、无修改)已通过Pipeline保存在 `Assets/Temp/BudBud_BatchStartup_20261020.unity`,以允许Additive创建验收场景,未丢弃任何场景内容。 制作结束后,已确认仅打开本次两个已保存场景,并通过Pipeline正常退出本次启动的batch Editor,释放项目锁供人工打开。其他Unity项目未操作。