Files
AIGame/Doc/ResDesc_Animation.md
T

274 lines
44 KiB
Markdown
Raw 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.
# 资源说明 · Animation
动画与动作资源。每条包含:路径、简要说明。
| 资源路径 | 简要说明 |
| --- | --- |
| `Tools/output/mixamo/Male/*.fbx` | Mixamo 男骨架(Y Bot)基础动作中间件,FBX for Unity / Without Skin / 30fps。含 Idle、Walking、Running、Punching、Kick(Kicking)、SwordSlash(Stable Sword Outward Slash)、HitReaction、FallingFlatImpact。脚本:`Tools/download_mixamo_anims.py`。未入库 Bundles。 |
| `Tools/output/mixamo/Female/*.fbx` | Mixamo 女骨架(X Bot)同套动作,导出设置同上。未入库 Bundles。 |
| `Tools/output/mixamo/manifest.json` | 上述 16 个 FBX 的下载清单。 |
| `Tools/dgx3d_animal_pipeline.py` | 非人:已验收 FBX/GLB → TokenRig + UniMate Idle/Walk/Attack(不重做 DGX 模);`--caps-only` 门禁 |
| `Tools/install_animal_rigged.py` | 将 pipeline 产物拷入 `Characters/Animal/{Name}/Rigged` 与 `Anims` |
| `AIClient/AgentScripts/SetupAnimalAnimator.cs` | Generic Animator;Motion Int 0=Idle/1=Walk,Attack Trigger单次攻击;样例 `SetupRockBall`,正式敌方由配方入口调用 |
| `Tools/output/{name}_dgx/` | DGX 非人中间件(rigged_fbx / anims,不进 Bundle) |
| `Tools/output/rockball_dgx/` | 岩团团中间件;旧 `3cead72a` 19骨代理与验收低模空间不一致,已停用;当前采用同角色 `high_rig/rigged.glb` 12骨和 `walk_verified/` 单Walk验证 |
| `…/RockBall_Rigged.fbx` | TokenRig 绑骨 FBX(减面约 2k) |
| `…/anims/RockBall_{Idle,Walk,Attack}.fbx` | UniMate 三动作;入库后见 Bundles |
| `AIClient/Assets/Bundles/Characters/Animal/RockBall/Anims/RockBall_Idle.fbx` | 2026-10-20:同角色12骨专用UniMate Idle原始源动作,已替换旧19骨来源;任务 `aigame_idle_54f85e5750484ecca7d8eaf439a02f77` |
| `…/RockBall_Walk.fbx` | 2026-10-20:同角色12骨重新生成的双足直立Walk原始剪辑;未做脚底与循环修正的源数据 |
| `…/RockBall_Attack.fbx` | 2026-10-20:同角色12骨专用UniMate Attack原始源动作,已替换旧19骨;任务 `aigame_attack_40bc28cae3d24ad0bd737fae1eb6aafc` |
| `…/RockBall_Animator.controller` | 三动作Generic,默认Idle;Motion=0/1、Attack Trigger,支持Idle/Walk进入Attack并恢复请求状态,Root Motion关闭;正式入口 `Tools/enemy_character_pipeline.py` |
| `…/Clips/Walk.anim` | 2026-10-20:UniMate原始Walk+离线根骨绑定姿态校准、脚底贴地、周期接缝与短腿交替步幅编辑;1.1秒循环,步幅0.06m、抬脚0.018m;最终播放资产 |
| `…/Clips/Idle.anim` | 新12骨源动作+离线呼吸/参考姿态/贴地收尾;1.6秒循环,首尾一致 |
| `…/Clips/Attack.anim` | 新12骨源动作+离线蓄力/冲撞/恢复编辑;1秒单次,0.45秒OnEnemyAttackImpact事件,首尾恢复Idle参考 |
| `Tools/output/rockball_dgx/walk_verified/motion/` | 本次UniMate原始GLB/FBX、带高模预览、motion.npy、请求记录及日志;明确双足英文提示词,face-right=bone_8、face-left=bone_10;任务 `aigame_walk_89299832de714470b6ed70e5cc837880` |
| `Tools/generate_animal_walk.py` | 复用既有骨架生成单Walk;保留英文提示词与明确左右骨,独立远程辅助脚本,不改外部LLM3DGraphics源码 |
| `AIClient/AgentScripts/FinalizeAnimalWalk.cs` | 离线烘焙入口;可调strideMeters/liftMeters/cycleSeconds,最终保存.anim,无运行时反向旋转或程序拼动画 |
| `AIClient/AgentScripts/VerifyAnimalWalk.cs` | 核验静态形状、61帧蒙皮顶点、根骨倾角、左右脚步幅、循环接缝和Animator连续播放;报告 `Tools/output/rockball_walk_audit/verification.txt` |
| `Tools/run_rockball_walk.ps1` | 单Walk可复现入口:默认使用缓存骨架/源动作,重做权重→Pipeline导入→Setup→Finalize→Verify并更新manifest;`-Generate`重新生成源动作,`-BuildReview`重建并排验收场景 |
| `Tools/enemy_character_pipeline.py` / `Config/Art/EnemyCharacters/RockBall.json` | 敌方三动作标准入口与样例配方;同rig来源哈希、蒙皮、Pipeline导入、离线收尾、整段QA、Enemy视觉Variant与并排场景 |
| `Tools/generate_enemy_motions.py` | 按配方顺序生成指定Idle/Walk/Attack,生成成功后封存源FBX哈希与回执;失败保留旧有效产物 |
| `AIClient/AgentScripts/FinalizeEnemyMotions.cs` | 根据配方将Idle与Attack源动作离线编辑为可交付.anim,保存循环、命中事件与恢复参考姿态 |
| `AIClient/AgentScripts/VerifyEnemyMotions.cs` | 三动作各121帧实际蒙皮、根姿态、脚底、步幅、接缝、事件、控制器和Play轮播验证 |
| `Tools/output/enemy_characters/RockBall/motions/{Idle,Attack}/` | 新UniMate源GLB/FBX、带高模预览GLB、motion.npy、任务日志/回执;同rig哈希62f41bc5…6ca6c0f,与Walk一致 |
| `Tools/output/enemy_characters/RockBall/{production_manifest.json,verification.txt,motion_processing.txt,walk_processing.txt}` | 三动作来源、哈希、配方、事件时刻、生产状态与验收报告;生成源+离线编辑,不含运行时骨骼补丁 |
## 火喵 FireCat T1 伙伴三动作(2026-10-20)
| 资源路径 | 用途与生成方式 |
| --- | --- |
| `Tools/output/companions/FireCat/motions/{Idle,Walk,Attack}/` | DGXA UniMate同角色22骨源GLB/FBX、高模预览、npy、回执与日志;rig哈希62a50970…3bea一致。Idle/Walk使用CUDA,Attack首次CUDA内存不足后独立CPU任务成功,未中断其他模型服务。 |
| `AIClient/Assets/Bundles/Characters/Animal/FireCat/Anims/FireCat_{Idle,Walk,Attack}.fbx` | Pipeline导入上述三段同rig原始动画;Generic、共享Avatar,保留来源,不直接作最终播放。 |
| `AIClient/Assets/Bundles/Characters/Animal/FireCat/Clips/Idle.anim` | 1.6秒循环,源动作8%+离线轻呼吸/贴地/端点绑定姿态;最大形变约0.01596m,根倾角约1.85°。 |
| `AIClient/Assets/Bundles/Characters/Animal/FireCat/Clips/Walk.anim` | 1.1秒循环,全骨骼源首帧相对绑定校准、保留35%运动+交替短步/贴地/周期闭合;解决源69.5°根倾斜和坐姿腿偏移,左右步幅约0.06248/0.04547m,根倾角约4.35°。 |
| `AIClient/Assets/Bundles/Characters/Animal/FireCat/Clips/Attack.anim` | 1.1秒非循环,源动作12%+双爪75°抬起/小幅前伸的离线施法,0.55秒OnCompanionAttackImpact事件,恢复Idle绑定参考;根倾角约11.31°,视觉根位移<0.005m。火球/伤害未接入。 |
| `AIClient/Assets/Bundles/Characters/Animal/FireCat/FireCat_Animator.controller` | 默认Idle,Motion Int 0/1切换Idle/Walk,Attack Trigger单次施法后恢复请求状态;Root Motion关闭。实际Play三状态与根位置固定通过。事件接收器应位于Animator所在Model或由该处转发。 |
| `Tools/output/companions/FireCat/{production_manifest.json,verification.txt,play_verification.txt,walk_verification.txt,motion_processing.txt,walk_processing.txt}` | 完整来源与哈希、配方、出手时刻、三段各121帧蒙皮及状态切换、单Walk门禁和实际Play报告;完整入口已成功复现,status=validated。 |
| `Tools/character_animation_pipeline.py`、`Config/Art/Companions/FireCat.json` | 伙伴/敌方共享三动作入口与火喵正式配方,包含自身骨名、全骨骼Walk校准、尾部蒙皮修正、源动作幅度与施法参数;默认缓存,--generate显式推理,--generation-device cpu可选。 |
## 芽芽 BudBud T1 原程序化三动作存档(2026-10-20)
本节8骨版本仅为历史记录,离线源已备份到 `Tools/output/budbud_offline_draft_20261020/output/motions/`,Unity副本位于 `Assets/Temp/BudBud_OfflineDraft_20261020/Anims/`;当前正式路径已替换为同角色TokenRig/UniMate来源。
| 资源路径 | 用途与生成方式 |
| --- | --- |
| `Tools/output/companions/BudBud/motions/{Idle,Walk,Attack}/animated.fbx` | Blender 5.0 以同一 8 骨 Armature 作者的 2 秒动作源;Idle 呼吸与叶芽摆动、Walk 交替短步、Attack 双手前举治疗脉冲;每段请求 JSON 记录同一 rig SHA-256。 |
| `AIClient/Assets/Bundles/Characters/Animal/BudBud/Anims/BudBud_{Idle,Walk,Attack}.fbx` | 上述动作源的 Unity 导入副本;待 Unity `SetupAnimalAnimator.Run` 生成 `Clips/*.anim` 与 Animator Controller。 |
| `Tools/create_budbud_assets.py` | 绑定网格、同骨架三动作和预览图的离线生成脚本;未使用运行时临时动画。 |
## 芽芽 BudBud T1 正式三动作(2026-10-20)
| 资源路径 | 用途与生成方式 |
| --- | --- |
| `Tools/output/companions/BudBud/motions/{Idle,Walk,Attack}/` | 本次DGXA UniMate同角色22骨新生成源GLB/FBX、高模预览、npy、请求及日志,均CUDA成功;先验收单Walk再补Idle/治疗施法Attack。三段rig SHA256=729fbbd3…4af98,并校验各源FBX哈希;替换原8骨程序化来源。 |
| `AIClient/Assets/Bundles/Characters/Animal/BudBud/Anims/BudBud_{Idle,Walk,Attack}.fbx` | Pipeline导入同rig三段原始动画,Generic共享Avatar,保留来源。 |
| `AIClient/Assets/Bundles/Characters/Animal/BudBud/Clips/Idle.anim` | 1.6秒循环,源变化8%+离线轻呼吸/贴地/端点绑定参考;最大形变0.01614m,根倾角1.539°。 |
| `AIClient/Assets/Bundles/Characters/Animal/BudBud/Clips/Walk.anim` | 1.1秒循环,全骨骼首帧相对绑定校准解决源65.349°根倾斜,35%源变化+交替短步/贴地/闭合;左右步幅0.05763/0.05558m,根倾角7.950°。 |
| `AIClient/Assets/Bundles/Characters/Animal/BudBud/Clips/Attack.anim` | 1.1秒非循环,12%源变化+双叶手抬起前推治疗施法离线编辑;0.55秒OnCompanionAttackImpact事件,恢复Idle参考,根倾角2.199°。实际治疗/VFX/SFX未接入。 |
| `AIClient/Assets/Bundles/Characters/Animal/BudBud/BudBud_Animator.controller` | 默认Idle,Motion Int 0/1切Idle/Walk,Attack Trigger单次施法后恢复请求状态;Root Motion关闭。Edit状态切换与实际Play三状态通过,事件接收器应在Animator所在Model节点。 |
| `Tools/output/companions/BudBud/{production_manifest.json,verification.txt,play_verification.txt,walk_verification.txt,walk_processing.txt,motion_processing.txt}` | 正式来源、哈希、设备/任务号、事件时刻、单Walk门禁、三段各121帧实际蒙皮与状态/Play检查;status=validated。三段接缝0,脚底误差最大0.156mm,Play最大根倾角7.915°、根位置固定。 |
## 闪闪雀 SparkBird T1 三动作(2026-10-20)
| 资源路径 | 用途与生成方式 |
| --- | --- |
| `Tools/output/companions/SparkBird/motions/{Idle,Walk,Attack}/` | 本次已授权DGXA UniMate同角色28骨源GLB/FBX、高模预览、npy、英文提示词、任务号及日志,均CUDA成功;先验收单Walk再生成Idle/Attack,三段rig哈希0c96b8f8…bbe8ab8一致并校验各源FBX哈希。 |
| `AIClient/Assets/Bundles/Characters/Animal/SparkBird/Anims/SparkBird_{Idle,Walk,Attack}.fbx` | Pipeline导入上述同源原始动画,Generic共享Avatar,保留为来源中间件。 |
| `AIClient/Assets/Bundles/Characters/Animal/SparkBird/Clips/Idle.anim` | 1.4秒循环,6%源变化+离线轻呼吸/翼部收整/贴地/绑定端点;最大形变0.01301m、根倾角0.692°。 |
| `AIClient/Assets/Bundles/Characters/Animal/SparkBird/Clips/Walk.anim` | 0.9秒地面短步循环,全骨骼绑定校准解决源76.906°根倾斜,25%源变化+交替短步/贴地/闭合;左右步幅0.04259/0.04558m,根倾角2.209°。 |
| `AIClient/Assets/Bundles/Characters/Animal/SparkBird/Clips/Attack.anim` | 1.0秒单次,10%源变化+鸟型35°前挥/25°展翼离线编辑;0.45秒OnCompanionAttackImpact事件,恢复Idle;双翼相对身体前挥0.03432/0.03705m,根倾角3.446°,雷电/伤害未接入。 |
| `AIClient/Assets/Bundles/Characters/Animal/SparkBird/SparkBird_Animator.controller` | 默认Idle,Motion Int 0/1切Idle/Walk,Attack Trigger触发单次挥翼施法后恢复请求状态,Root Motion关闭;编辑期切换与实际Play三状态通过。 |
| `Tools/output/companions/SparkBird/{production_manifest.json,verification.txt,walk_verification.txt,play_verification.txt,walk_processing.txt,motion_processing.txt}` | 完整来源/设备/任务/哈希、鸟型单Walk门禁、三段各121帧实际蒙皮、扣除身体转动的双翼前挥、控制器及真实Play报告;status=validated,三段端点差0,脚底误差最大0.076mm,Play最大根倾角3.421°。 |
| `AIClient/AgentScripts/FinalizeEnemyMotions.cs` / `VerifyEnemyMotions.cs` | 新增avian_grounded/wing_cast离线分支和双翼相对身体前挥>1cm门禁;自身翼根/翼尖映射,保留已有biped_short路径。最终闪闪雀实际Edit/Play及近景通过。 |
## 泡泡龟 BubbleTurtle T1 三动作(2026-10-21)
| 资源路径 | 用途与生成方式 |
| --- | --- |
| `Tools/output/companions/BubbleTurtle/motions/{Idle,Walk,Attack}/` | 已授权DGXA UniMate在最终26骨rig生成三动作,全部CUDA成功;先验单Walk再补Idle/Attack。原始GLB/FBX、高模预览、npy、英文提示词、任务及rig/FBX哈希完整,rig=b913d91b…6216d5。反向11骨Walk仅存diagnostics,不可混用。 |
| `AIClient/Assets/Bundles/Characters/Animal/BubbleTurtle/Anims/BubbleTurtle_{Idle,Walk,Attack}.fbx` | Pipeline导入同源原始动画,Generic共用Avatar;最终播放使用离线编辑后的Clips。 |
| `AIClient/Assets/Bundles/Characters/Animal/BubbleTurtle/Clips/Idle.anim` | 2秒循环,4%源变化+轻微头部呼吸,四脚固定/壳体稳定/首尾绑定;最大形变0.00636m,身体相对绑定倾角0.040°。 |
| `AIClient/Assets/Bundles/Characters/Animal/BubbleTurtle/Clips/Walk.anim` | 1.6秒循环,12%源变化+四拍短步/20%摆动窗口;四脚实际网格步幅0.03499/0.03472/0.03413/0.03371m,抬脚0.00769~0.00921m,至少三脚支撑,身体倾角0.201°。 |
| `AIClient/Assets/Bundles/Characters/Animal/BubbleTurtle/Clips/Attack.anim` | 1.2秒单次,8%源变化+缩颈/探头吐泡泡/恢复,四脚撑地;0.6秒OnCompanionAttackImpact事件,前伸0.02409m/后缩0.00797m,最大形变0.03919m、身体倾角2.731°。泡泡特效及缓速未接入。 |
| `AIClient/Assets/Bundles/Characters/Animal/BubbleTurtle/BubbleTurtle_Animator.controller` | 默认Idle,Motion Int 0/1,Attack Trigger单次后恢复请求状态,Root Motion关闭;切换/过渡及真实Play三状态通过。 |
| `Tools/output/companions/BubbleTurtle/{production_manifest.json,verification.txt,walk_verification.txt,play_verification.txt,walk_processing.txt,motion_processing.txt}` | status=validated;三段各121帧四脚实际蒙皮、壳区860个Unity顶点刚性/身体朝向、接缝/事件/控制器/真实Play。三段端点差0,最大脚底误差0.238mm,壳区形变在报告精度为0,Play身体倾角2.714°、根固定。 |
| `AIClient/AgentScripts/FinalizeAnimalWalk.cs` / `FinalizeEnemyMotions.cs` / `VerifyQuadrupedMotions.cs` | 标准流程新增quadruped_turtle/turtle_bubble;四脚分别收尾和验证,身体倾角测壳体绑定方向,四脚实际网格步幅/抬脚/支撑和壳刚性检查,头颈回缩/前伸/恢复与实际Play门禁;保留既有双足/鸟型入口。 |
## 岩甲犀 RockRhino 三动作(2026-10-21)
| 路径 | 说明 |
| --- | --- |
| `Tools/output/companions/RockRhino/motions/{Idle,Walk,Attack}/` | 同一自身29骨rig的新UniMate源动作,CUDA顺序生成,先Walk门禁及五相位目视再Idle/Attack;每段motion_request.json记录英文提示词/任务/rig与FBX哈希。 |
| `AIClient/Assets/Bundles/Characters/Animal/RockRhino/Anims/RockRhino_{Idle,Walk,Attack}.fbx` | Pipeline导入的同源动作中间件;导入前来源哈希、导入后骨路径一致性检查通过。 |
| `AIClient/Assets/Bundles/Characters/Animal/RockRhino/Clips/Idle.anim` | 2.0秒循环,4%源变化+轻呼吸;实际蒙皮最大变化7.24mm,四脚撑地,循环接缝0。 |
| `AIClient/Assets/Bundles/Characters/Animal/RockRhino/Clips/Walk.anim` | 1.4秒四拍循环,12%源变化+离线短步,四脚实际步幅约59.6~59.8mm、抬脚14.7~16.0mm,至少三脚支撑;根XZ/接缝0、脚底误差≤0.164mm。 |
| `AIClient/Assets/Bundles/Characters/Animal/RockRhino/Clips/Attack.anim` | 1.2秒单次头肩冲撞,后收→低头前送→恢复,4%源变化+离线重型四足收尾;头前送41.45mm、肩25.07mm、头转约11.21°,四脚支撑、岩甲/独角刚性通过;0.6秒OnCompanionAttackImpact事件。 |
| `AIClient/Assets/Bundles/Characters/Animal/RockRhino/RockRhino_Animator.controller` | Motion Int 0=Idle/1=Walk,Attack Trigger单次攻击,可从两状态进入并返回请求状态;编辑期切换与实际Play三状态通过,最大身体倾角2.826°、根固定。 |
| `Tools/output/companions/RockRhino/{verification,walk_verification,play_verification,walk_processing,motion_processing}.txt` | 每段121帧实际蒙皮/四脚/方向/岩甲与角/循环/恢复/事件/控制器及Play回执;last_failure.txt保留已修正的8%Attack后蹄抬起诊断,不是最终状态。 |
## 烈焰狮 FlameLion 动作制作(2026-10-21)
| 路径 | 说明 |
| --- | --- |
| `Tools/output/companions/FlameLion/motions/{Idle,Walk,Attack}/` | 最终28骨上UniMate CUDA顺序新生成,先单Walk门禁/四相位目视再Idle/Attack;各段motion_request.json保留英文提示词、任务、rig/FBX哈希。三动作同rig,源哈希通过。 |
| `AIClient/Assets/Bundles/Characters/Animal/FlameLion/Anims/FlameLion_Walk.fbx` / `Clips/Walk.anim` | 单Walk已导入并离线处理,1.2秒循环、12%源变化,实际两脚步幅48.66/67.37mm、抬脚17.89/11.91mm,至少一脚支撑、鬃毛刚性通过;现已完成三动作离线收尾及实际Play,见下方正式交付。 |
## P0 五类正式敌人三动作(2026-10-21)
| 资源路径 | 用途与生成方式 |
| --- | --- |
| `Tools/output/enemy_characters/{Hornlet,Dashlet,Shellhorn,HornCaptain,GreatHorn}/motions/{Idle,Walk,Attack}/` | DGXA UniMate 在各自同源 rig 上生成的源动作(英文提示词、任务号、rig/FBX 哈希见 motion_request.json/unimate_manifest.json)。小角怪 Walk 首次因 DGXA 并发任务报 `No module named 'Animation'` 失败,单独重试成功。 |
| `AIClient/Assets/Bundles/Characters/Enemy/{Name}/Clips/{Idle,Walk,Attack}.anim` | 离线收尾(walkBindCalibration 0.25、idle 0.06、attack 0.1 源权重;body_slam 蓄力 0.25/命中 0.45/恢复 ~0.88)。周期:小角怪 Walk 1.0s/Idle 1.6s/Attack 1.0s;疾跑怪 0.8/1.4/0.9;硬壳怪 1.2/1.8/1.0;角怪队长 1.1/1.8/1.0;大角首领 1.3/2.0/1.2。121 帧实际蒙皮验收:首尾接缝 0、Walk 根 XZ 0、脚底偏差 ≤1.9mm,双脚步幅约 4.4~6.9cm;控制器 Idle↔Walk、单次 Trigger 单次攻击并恢复。报告 `Tools/output/enemy_characters/{Name}/verification.txt`、`play_verification.txt`。 |
| `AIClient/Assets/Bundles/Characters/Enemy/{Name}/Anims/{Name}_{Idle,Walk,Attack}.fbx` | Pipeline 导入的同源源动作 FBX,仅作为离线收尾输入,运行时使用 Clips。 |
## 烈焰狮 FlameLion 三动作正式交付(2026-10-21)
| 路径 | 说明 |
| --- | --- |
| `AIClient/Assets/Bundles/Characters/Animal/FlameLion/Anims/FlameLion_{Idle,Walk,Attack}.fbx` | 最终自身28骨的同源UniMate三段中间件,CUDA生成、rig与FBX哈希及导入骨路径通过;先Walk后Idle/Attack。 |
| `AIClient/Assets/Bundles/Characters/Animal/FlameLion/Clips/Idle.anim` | 1.8秒循环,8%源变化+轻呼吸,最大实际形变22.03mm、两脚支撑、鬃毛刚性通过。 |
| `AIClient/Assets/Bundles/Characters/Animal/FlameLion/Clips/Walk.anim` | 1.2秒循环,12%源变化+离线短步,实际步幅48.66/67.37mm、抬脚17.89/11.91mm,至少一脚支撑、整体底面误差≤0.117mm、接缝/根XZ为0。 |
| `AIClient/Assets/Bundles/Characters/Animal/FlameLion/Clips/Attack.anim` | 1.2秒单次火焰施法,两脚撑地、头部前送16.24mm/抬头6.654°,双爪前送62.57/59.74mm、外展20.23/18.17mm;扣除身体转动后仍通过,0.6秒OnCompanionAttackImpact事件,恢复Idle参考。 |
| `AIClient/Assets/Bundles/Characters/Animal/FlameLion/FlameLion_Animator.controller` | Motion Int 0=Idle/1=Walk、Attack Trigger单次;状态切换与恢复、每段121帧实际蒙皮/鬃毛刚性/双脚/根/事件及实际Play三状态通过,最大根/身体倾角3.504°。 |
| `Tools/output/companions/FlameLion/{verification,walk_verification,play_verification,walk_processing,motion_processing}.txt` | 最终完整QA与离线收尾回执;last_failure.txt保留已修正的25%源变化抬脚诊断,当前状态以validated生产清单为准。 |
## 伙伴 7~9 三动作(2026-10-21)
| 资源路径 | 用途与生成方式 |
| --- | --- |
| `Tools/output/companions/{VineSprite,ThunderLeopard,TideWhale}/motions/{Idle,Walk,Attack}/` | DGXA UniMate 同源 rig 生成的源动作(提示词、任务号、哈希见 motion_request.json)。 |
| `AIClient/Assets/Bundles/Characters/Animal/{Name}/Anims/{Name}_{Idle,Walk,Attack}.fbx`、`Clips/{Idle,Walk,Attack}.anim` | 离线收尾后 121 帧实际蒙皮验收通过。藤蔓灵 Walk 1.1/Idle 1.6/Attack 1.1s(双手治疗施法);雷鸣豹 1.1/1.8/1.0s(四拍步态、头肩短扑,护甲与额冠刚性);潮汐鲸 1.3/2.0/1.1s(短体撞)。报告 `Tools/output/companions/{Name}/verification.txt`、`play_verification.txt`。 |
## 大角首领Studio试验版动作复用(2026-10-21)
`Assets/Bundles/Characters/Enemy/GreatHornStudio/GreatHornStudio_Enemy.prefab` 直接复用原 `GreatHorn/GreatHorn_Animator.controller`、原Avatar(原Rigged FBX子资产)与 `GreatHorn/Clips/{Idle,Walk,Attack}.anim`。本批无新动作生成或成品动作改写;原动作文件哈希一致。新2000面网格经Blender转原22骨与两个脚底顶点1毫米局部适配后,三段各121帧采样、真实Play及外层根固定检查通过。详情 `Doc/Design/Character/GreatHorn/StudioTrial.md`。
## 伙伴 Studio 版动作复用(2026-10-21)
9 个 `{X}Studio_Companion.prefab` 直接复用各自原 `{X}_Animator.controller`、原 Avatar 与 `Clips/{Idle,Walk,Attack}.anim`,无新动作生成或改写;原动作哈希一致。详情 `Doc/Design/Character/CompanionStudioBatch.md`。
## 四敌人Studio版原动作复用(2026-10-21)
四个 `{Actor}Studio_Enemy.prefab` 直接引用各自原 `{Actor}_Animator.controller`、原Avatar及 `{Actor}/Clips/{Idle,Walk,Attack}.anim`;原成品动作文件哈希一致,本批无新增动画。小角怪/疾跑怪/角怪队长原22骨、硬壳怪原28骨;1452帧实际蒙皮采样、统一Play三状态/方向/外层根固定通过。报告 `Doc/Design/Character/StudioEnemies/Production.md`。
## 五敌人战场替换与技能闭环样例(2026-10-21)
五敌人正式战场继续复用原 Avatar、AnimatorController 与 Idle/Walk/Attack,未改动画文件。独立 `SkillSlicePlayer` 根据逻辑释放 tick 和角色原配方 attackImpact 分段采样 Attack,将前摇/命中点/后摇对齐;动作不决定伤害。样例与正式主线规则分开,详见 `Doc/Design/Combat/SkillSlice/Production.md`。
## 权威技能协议与正式战场接入(2026-10-21)
正式战斗复用原10伙伴/5敌人的Idle/Walk/Attack,没有改写成品动画。BattleSkillPresentation读取各角色原配方attackImpact,经Pipeline持久化15项映射,将原Attack前摇/释放/后摇分段对齐权威tick;零前摇护盾不强制跳到攻击中间姿势。AnimationEvent不决定伤害,旧规则继续原Animator播放。
## 潮汐鲸T2复用原动作(2026-10-22)
`TideWhale_T2.prefab`沿用TideWhaleStudio的原22骨Avatar与TideWhale控制器、Idle/Walk/Attack,不新增或修改动作资产。400面贝壳冠绑bone_4,三段动作各121帧采样中挂件相对头骨变换恒定;第20关权威轨迹验证Attack、水罩、暂停和2倍速。来源与回执 `Doc/Design/Character/TideWhale/T2/`。
## 营地向导站立与行走(2026-10-23)
`AIClient/Assets/Bundles/Characters/Human/CampGuideStudio/Anims/CampGuideStudio_Idle.fbx` 与 `CampGuideStudio_Walk.fbx` 是 Kimodo 原地动作,重定向到上面的 33 根 Mixamo 骨。站立约 1.5 秒,是 T 字休息姿势上的轻微呼吸,手臂仍张开。行走约 1.5 秒,髋部位移被清掉,腿有交替迈步。Animator 参数 `Motion`:0=Idle、1=Walk,Root Motion 关闭。主界面 `ExplorerLocomotion` 按水平位移切换。验收图 `Tools/output/campguide_studio/review/`。
早一版 `CampGuide/Clips` 里由 `BuildCampGuide.Author` 手写的垂臂循环已不再被主界面使用。
同一段旧 BVH 重定向的结果在 `Tools/output/campguide_studio/rig_fixed/`。2026-10-23 又用同一句提示词让 Kimodo 重新生成,再套到 25 根固定 Mixamo 骨架上,文件在 `Tools/output/campguide_studio/rig_fixed/kimodo_regen/`。那一版站立仍是张开手臂,行走双脚离地。
随后把 SOMA 骨架贴到同一网格并蒙皮,Kimodo 重新生成的站立和行走按同名关节直接套上,骨轴夹角为 0。文件在 `Tools/output/campguide_studio/rig_soma/kimodo/`。站立变成垂臂站立,行走有交替迈步和摆臂。部分帧仍把后脑和手指拉裂,所以没有替换主界面剪辑。
### SOMA 手部权重隔离试验(2026-10-23)
- `Tools/output/campguide_studio/rig_soma/audit/hand_cleanup/{Idle,Walk}.{glb,fbx}`:原 BVH、原 `_apply_bvh.py` 烘焙到仅清理手部权重的网格,便于控制变量比较;各 45 帧、30fps,保留原来的 Hips 清零行为。未作为正式动作导入 Unity。
- `Tools/output/campguide_studio/rig_soma/audit/control/Walk.{glb,fbx}`:原 `skinned.glb` 重新烘焙的对照件,复现原 Walk 的 11.254 倍最坏边拉伸,排除本轮脚本重跑差异。
- 同一套骨架姿态下,手部有效边的最坏拉伸 Idle 6.064→1.763、Walk 11.254→2.115。统计排除静态长度小于身高 0.2% 的边;不是穿插、体积或整体动作质量评分。全身最坏值仍为 Idle 2.593、Walk 6.426,主要残留在颈部。
- 原 Walk 左上臂首尾局部旋转相差 76.63°,右大腿 45.26°,不能直接视为无缝循环;原 BVH Hips 世界高度变化约 0.061m,而当前烘焙将 Root/Hips 全部位移清零。下一轮应保留按角色比例缩放的垂直起伏,移除水平净行程,并单独做支撑脚接地与周期截取。
### Mixamo 网站动画离线审计(2026-10-23)
- 用户提供 `AIClient/Assets/Bundles/Characters/Human/test/Boy_mixamo/CampGuideStudio@{Walking,Breathing Idle,Happy Idle}.fbx`,三份均为无网格的 41 骨动画,30fps。分别为 1–32、1–299、1–61 帧,首尾时间跨度 1.033/9.933/2.000 秒。本轮没有生成或改写动画资产。
- 原绑定 FBX 和动画 FBX 经 Blender 导入后的休息姿态与朝向不同。离线审计按同名骨骼的动画世界姿态应用到原绑定网格,保留原网格绑定矩阵,避免直接复制局部旋转;这不是 Unity Humanoid 实播验收。
- 逐原始帧蒙皮采样:Walking 全身最大边拉伸 2.029 倍,手部 1.547、颈部 1.427;Breathing Idle 全身 1.668,Happy Idle 1.778。Walking 超过 2 倍的边每帧最多 1 条,位于裆部;两种 Idle 没有超过 2 倍的有效边。统计排除静态长度小于身高 0.2% 的边,不能单独代表体积、穿插或动作审美。
- Walking 与 Breathing Idle 首尾各关节局部旋转误差在本轮浮点精度下为 0;Happy Idle 最大约 0.377°。Walking 同时保留约 0.954m 的前进位移,源模型尺度下约 0.923m/s,骨盆上下变化约 0.042m。若角色由游戏逻辑移动,需处理水平行程并按实际角色缩放匹配步速,不应把骨盆垂直位移一并清零。
- Walking 蒙皮后全身最低点为 -5.52~3.84mm,SOMA Walk 为 2.87~37.96mm;只是离线接地参考,不等于严格的零滑步验证。明细与局部旋转、关节轨迹见 `Tools/output/campguide_studio/mixamo_audit/comparison.json`。
### TokenRig 固定 41 骨的同动作评审件(2026-10-23)
- `Tools/output/campguide_studio/rig_mixamo41/animations/{raw,local}/{Walking,Breathing_Idle,Happy_Idle}.glb`:6 个包含网格、41 骨与烘焙动画的离线预览件;原始 TokenRig 权重与仅清理手部跨部位影响的版本,各复用同一组用户提供的 Mixamo 动作。30fps,帧范围分别 1–32、1–299、1–61。保留源动作水平行程、垂直起伏与首尾姿态,没有重新生成动作。
- `Tools/model_tools/bl_bake_tokenrig_mixamo41.py` 按同名骨世界姿态逐帧烘焙;`bl_verify_tokenrig_mixamo41_exports.py` 对 6 个 GLB 重导入,核对帧数和各区域最大拉伸,均与源评估相差小于 0.001。清单 `animations/manifest.json`,验证回执 `export_verification.json`。
- 三段动作全身最大边拉伸(网站/原始 TokenRig/局部约束后):Walking `2.029/6.218/1.800`;Breathing Idle `1.668/3.415/1.710`;Happy Idle `1.778/3.602/1.691`。统计排除静态长度小于身高 0.2% 的边;只代表当前网格、当前三段动作的离线形变结果,未替换正式动画或验证 Unity 播放。
### Unity 同动作蒙皮观看场景(2026-10-23)
- `AIClient/Assets/Review/CharacterAnimationLab/Generated/{Walking,Breathing_Idle,Happy_Idle}.anim`:Pipeline 生成的原生 Transform 动画,共用用户提供的三段 Mixamo 动作逐帧姿态,分别 32/299/61 帧、30fps;三版蒙皮采样同一个 Clip 和时间,没有重新生成动作或使用 Humanoid 重定向。
- 场景 `AIClient/Assets/Review/CharacterAnimationLab/CharacterAnimationLab.unity` 支持同步播放、暂停、前后逐帧、拖动进度、0.25/0.5/1/2 倍速、原地循环与保留位移。原地模式移除首尾净行程,保留周期内骨盆摆动与起伏;源 FBX 未改写。
- Unity 原生蒙皮 1176 帧次与离线数据核验通过;Play Mode 的动作选择、进度指针、速度、视角、灰模、手部聚焦、位移开关及 41 骨同步检查通过。回执 `Tools/output/campguide_studio/rig_mixamo41/unity_review/{unity_verification,unity_controls}.json`;未替换正式角色动作。
### LmGirl 复用原 Mixamo Walking(2026-10-23)
- `Tools/output/lmgirl_tpose_studio/rig_mixamo41/Walking_{raw,post,clean,clean_eps,local}.glb`:五版绑定网格与相同 Walking,32 帧、30fps;与原男角色相同的骨骼旋转,按目标休息姿态适配局部骨段位移,根位移/起伏比例约 1.2371。五份 GLB 重导入与源指标误差均小于 0.00013,见 `export_verification.json`。
- Unity 直接引用既有 `AIClient/Assets/Review/CharacterAnimationLab/Generated/Walking.anim`,没有复制或修改旋转曲线。观看器新增可选的每骨平移偏移与比例,原男角色无该映射时行为不变,原场景控件回归通过。LmGirl 同时可播放原 Breathing/Happy Idle,当前量化逐帧验收只覆盖 Walking。
- 五版共 160 次原生蒙皮采样通过,最大指标误差小于 0.000046;同一 Walking 资产引用、41 骨同步、21 控件、同比例原地位移移除均验证通过,回执 `rig_mixamo41/{unity_verification,unity_controls}.json`。局部约束版原尺度脚底最低点在 -10.6~23.7mm 范围,尚未处理脚底 IK/滑步;手掌刚性跟随手腕,不承诺独立手指动作。
### LmGirl 网站 33 骨的相同 Walking 对比(2026-10-23)
- 网站版继续采样同一个既有 Walking.anim 和同一时间,未使用源文件附带的动画。按源/目标休息姿态做世界旋转差映射,局部位移差先换到目标父骨坐标,再按身材比例缩放;保留网站 33 骨自身骨轴,不直接照抄男角色骨轴下的局部旋转。
- 网站版 32 帧 Walking 的原生蒙皮与独立矩阵 LBS 参考核验通过;本轮也验证 22 个播放/逐帧/进度/视角/材质控件和四版独立聚焦。完整量化仍只覆盖 Walking,其余两段动作做播放控件验证。
### LmGirl Walking 脚部轨迹重定向修正(2026-10-23)
- 新原生剪辑 `AIClient/Assets/Review/CharacterAnimationLab/LmGirl/Generated/Walking_LmGirl41.anim`、`Walking_LmGirlMixamo33.anim`:源仍为男孩 Walking 的 32 帧、30fps,但针对目标髋宽、髋到脚踝高度比例重定向源动作的骨盆相对脚踝轨迹,使用源膝盖方向做双骨 IK,保持目标大腿/小腿长度和原映射脚部朝向。腿部目标旋转重新求解;男孩原 Walking.anim 与其他源剪辑未修改。这两份目标剪辑取代了此前仅缩放骨段并照搬角度的女孩行走适配。
- 生成入口 `Tools/model_tools/bl_diagnose_lmgirl_gait.py`(诊断、correct、export、verify-exports);映射及姿态样本 `Tools/output/lmgirl_tpose_studio/rig_mixamo41/gait_correction.json`。每步目标无法完全到达的最大距离约 TokenRig 0.57mm/网站 1.76mm,按固定腿长限制到可达范围。
- `Tools/output/lmgirl_tpose_studio/rig_mixamo41/Walking_{raw,post,clean,clean_eps,local}_corrected.glb`:五版同修正步态外部预览件;源静态 .blend、绑定 .glb 和旧 Walking_*.glb 未覆盖,旧件用于未修正基线。5 件重导入核验通过,见 `gait_export_manifest.json` / `gait_export_verification.json`。
- `AIClient/AgentScripts/VerifyLmGirlGait.cs`:32 原帧目标姿态误差最大约 0.00000048m,120Hz 扫描四版共 500 个样本未发现脚踝跨线;网站最小间距约 0.0863m,TokenRig 各版约 0.0959m(原尺度)。腿段长度漂移小于 0.00000051m。修正动作上 192 次原生蒙皮采样也与独立 LBS 参考通过;局部约束版最大有效边拉伸仍约 1.903。回执 `unity_gait_verification.json`。
- 本轮修复落脚宽度/交叉,不含地面接触锁定或零滑步求解。局部约束版原尺度脚底最低点约 -14.5~13.8mm;原生源 Walking 与未修正参考数据仍保存。`summary.json` 已区分 baseline 与 active 指标,不再声称女孩行走直接采样未变的同一动画资产。
### Mixamo Walking 在 Unity 中的 Avatar 参考姿势修复(2026-10-24)
- `AIClient/Assets/Bundles/Characters/Human/Common/Walking.fbx`:经 Unity Pipeline 将 Rig 的 Avatar Definition 从 Create From This Model 改为 Copy From Other Avatar,Source 使用当前网站绑定模型 `test/Boy_mixamo/CampGuideStudio.fbx` 的 CampGuideStudioAvatar;保持 Humanoid、原循环/根位移及控制器引用。未更改原始 FBX 字节、网格、权重或动画曲线源。原 source Avatar 自动参考姿势与模型不同,引入脚部方向异常。
- `AIClient/Assets/Review/CharacterAnimationLab/PlaybackDiagnostics/Walking_{Generic,CopyBoyAvatar}.fbx`:Pipeline CopyAsset 生成的隔离诊断副本。Generic 使用无 Avatar、无压缩的原骨骼曲线作为直接 FBX 参考;CopyBoyAvatar 验证模型 Avatar 共享后效果,均不接入正式控制器/业务场景。
- 32帧、30Hz、相对骨盆的对比:原 Humanoid 脚部方向最大偏差34.018°,脚踝位置偏差6.423cm,最大关节点偏差10.723cm;修复后分别2.785°/1.028cm/2.105cm。Generic 对独立 Blender FBX 轨迹误差小于0.242mm,脚部方向误差小于0.00012°。保留标准 Humanoid 重定向的小偏差,未宣称逐帧完全等同网站。
### 男女角色共享 Walking 的 Foot IK 修复(2026-10-25)
- 经 Unity Pipeline 将 `AIClient/Assets/Bundles/Characters/Human/Common/Man.controller` 的 walk 状态 Foot IK 开启;两角色继续使用同一 `Common/Walking.fbx`,动画 Source Avatar 保持男孩,两实例各自使用自己的 Avatar。没有新增动画曲线或修改模型权重、参考姿势、FBX、导入器。本条更新此前 Foot IK 关闭的历史记录。
- 隔离 Animator 一周期120Hz、每角色125个样本:女孩关闭 Foot IK 时脚踝有向间距 -3.522~1.805cm,106个样本交叉;开启后10.049~14.024cm,0交叉。男孩开启前后约8.6~11.4cm,均0交叉。生产控制器实际采样复核通过,见 `Tools/output/lmgirl_tpose_studio/shared_walk_audit/validation.json`。未把脚踝间距等同鞋面无碰撞或地面零滑步保证;未比较不存在的女孩专属网站Walking文件。
### 人形小熊 LittleBear Idle/Walk(2026-10-26)
- `AIClient/Assets/Bundles/Characters/Human/LittleBear/LittleBear.controller`:独立Humanoid控制器,`Motion` Int 0=Idle、1=Walk,双向过渡0.15秒,两状态Foot IK开启。`LittleBear.prefab` 使用自己的有效 `LittleBear_RiggedAvatar`,Root Motion关闭。
- Idle直接复用 `Common/CampGuideStudio@Breathing Idle.fbx`;Walk直接复用 `Common/Walking.fbx`,原动画与源Avatar保持不变。蒙皮FBX仅含绑定姿态,不内嵌动作,不生成新动作曲线。
- `Tools/output/littlebear_studio/review/unity_validation.json`:两状态各125个归一化相位采样,脚踝交叉0;Walking间距8.28~10.98cm,最大有效边拉伸2.178倍(裆部平滑前3.254倍),Idle最大1.928倍;Motion参数往返切换通过。Walking脚底最低点范围-1.20~2.41cm,尚不承诺零滑步;验证为Editor隔离Animator,不是Play Mode整场验证。
- 总来源与复现见 `Doc/Design/Character/LittleBear/production_receipt.json`;专属验收场景 `Assets/Bundles/Scenes/Review/LittleBearReview.unity`。
### XBot 通用 Humanoid Controller(2026-10-26)
- `AIClient/Assets/Bundles/Characters/Human/Common/XBot.controller`:通过 Unity Pipeline 执行 `AIClient/AgentScripts/BuildXBotController.cs` 生成。单层四状态:默认 `Idle`、`Walk`、`Attack01`、`Attack02`。`Motion` 为 Int,0(及非1值)=Idle,1=Walk;双向过渡0.15秒。`Attack01`、`Attack02` 为 Trigger,从 Any State 以0.1秒过渡触发对应攻击,禁止同状态自身重入;其他攻击Trigger可打断当前攻击。攻击到归一化时间0.95后,以0.15秒过渡按当前Motion返回Idle或Walk。
- `AIClient/Assets/Bundles/Characters/Human/Common/AnimX/X Bot@BreathingIdle.fbx`:用户提供的无网格65骨Mixamo待机源,导入剪辑名 `Idle`,30fps、3.300秒、循环。
- `AIClient/Assets/Bundles/Characters/Human/Common/AnimX/X Bot@Walking.fbx`:用户提供的无网格65骨Mixamo行走源,导入剪辑名 `Walk`,30fps、0.967秒、循环。
- `AIClient/Assets/Bundles/Characters/Human/Common/AnimX/X Bot@atk01.fbx` 与 `X Bot@Atk02.fbx`:用户提供的无网格65骨Mixamo攻击源,导入剪辑名分别为 `Attack01`/`Attack02`,30fps、3.500/4.933秒、不循环;未裁切原动作。
- 上述四段FBX经Pipeline导入为Humanoid,骨名及骨骼父子层级均与XBot完全一致(忽略非骨骼外层节点名称)。`Common/XBot.fbx` 经Pipeline配置为Humanoid、Create From This Model;动作使用Copy From Other Avatar并引用其有效XBotAvatar,避免从动作姿态生成参考Avatar。原始FBX字节不修改。
- 使用:角色Animator的Controller指定 `XBot.controller`,Avatar指定角色自己的有效Humanoid Avatar,关闭Apply Root Motion。调用 `animator.SetInteger("Motion", 1/0)` 切换行走/待机,`animator.SetTrigger("Attack01")` 或 `SetTrigger("Attack02")` 触发攻击。四动作均将根旋转、Y、XZ烘焙进姿态,角色位移由业务驱动;Idle/Walk开启Foot IK。其他人形角色可共用Controller,但须使用自身Avatar并另行验收;本轮未配置或验证YBot。
- 验证回执 `Tools/output/common_bot_controller/validation.json`:XBot有效Humanoid Avatar、65骨;四状态各25个相位的骨骼姿态采样通过(100次),6条待机/行走/攻击往返路径通过。验证在Editor隔离Preview Scene执行,不修改当前场景;未进行Play Mode整场或零滑步/穿插的视觉验收。生成脚本拒绝覆盖已有Controller;仅重新检查可运行 `BuildXBotController.Verify`。
### YBot 通用 Humanoid Controller(2026-10-26)
- `AIClient/Assets/Bundles/Characters/Human/Common/YBot.controller`:通过 Unity Pipeline 执行 `AIClient/AgentScripts/BuildYBotController.cs` 生成,引用AnimY的四段动作。沿用XBot参数约定:默认 `Idle`,`Motion` Int 0(及非1值)=Idle、1=Walk;`Attack01`/`Attack02` Trigger触发对应攻击。Idle/Walk循环并开启Foot IK,攻击不循环;待机行走过渡0.15秒,Any State进入攻击0.1秒,禁止同状态自身重入,其他攻击Trigger可打断当前攻击。攻击到归一化时间0.95后,以0.15秒过渡按当前Motion返回Idle或Walk。
- `AIClient/Assets/Bundles/Characters/Human/Common/AnimY/Y Bot@BreathingIdle.fbx`:用户提供的无网格65骨Mixamo待机源,Humanoid剪辑 `Idle`,30fps、9.933秒、循环。
- `AIClient/Assets/Bundles/Characters/Human/Common/AnimY/Y Bot@Walking.fbx`:用户提供的无网格65骨Mixamo行走源,Humanoid剪辑 `Walk`,30fps、1.033秒、循环。
- `AIClient/Assets/Bundles/Characters/Human/Common/AnimY/Y Bot@Atk01.fbx` 与 `Y Bot@atk02.fbx`:用户提供的无网格65骨Mixamo攻击源,Humanoid剪辑 `Attack01`/`Attack02`,30fps、2.333/1.867秒、不循环;保留完整原动作。
- 四段源骨名及骨骼父子层级与YBot完全一致(忽略非骨骼外层节点名称)。`Common/YBot.fbx` 经Pipeline配置为Humanoid、Create From This Model;四动作经Pipeline配置为Copy From Other Avatar,使用有效YBotAvatar。原始FBX字节不修改,根旋转、Y、XZ烘焙进姿态。使用时角色Animator指定本Controller与角色自身有效Humanoid Avatar,关闭Apply Root Motion,业务负责角色位移;其他角色共用需分别验收。
- 验证回执 `Tools/output/common_ybot_controller/validation.json`:YBot有效Humanoid Avatar、65骨,四动作共100次相位采样通过,待机/行走及两种攻击往返共6条路径通过。Editor隔离Preview Scene验证,不改当前场景;尚未进行Play Mode整场及接地/穿插视觉验收。生成入口 `BuildYBotController.Build` 拒绝覆盖已有Controller,重验入口 `BuildYBotController.Verify`。
### Bot 动作测试与25/41骨共享控制器(2026-10-26)
- 当前测试入口切换到 `AIClient/Assets/Review/BotAnimationLab/BotAnimationLab.unity`,菜单 `Tools/Characters/Open Animation Comparison` 或 `Open Bot Animation Lab`。旧CharacterAnimationLab/LmGirl场景保留。四角色2×2预览:XBot、YBot、XBot25、XBot41;XBot三种骨架引用同一个 `Common/XBot.controller`,YBot引用 `Common/YBot.controller`,直接播放既有AnimX/AnimY动作,没有复制或新烘焙动作。
- `Common/XBot25.fbx`、`Common/XBot41.fbx` 通过Pipeline设置 `Animation Type=Humanoid`、`Avatar Definition=Create From This Model`,各自生成有效 `XBot25Avatar`/`XBot41Avatar`。Prefab中的Animator分别使用自身Avatar、共用XBot.controller、关闭Apply Root Motion。源AnimX仍Copy From Other Avatar引用65骨XBotAvatar,不改成精简角色Avatar。
- 共享依靠Humanoid重定向:角色只需满足有效人形映射,不要求目标也有65骨,不应把65骨Avatar直接指定给不同骨架。25骨版保留完整身体/手腕,无手指链;41骨版额外保留左右拇指/食指链,各自缺少的独立手指动作无法还原。四模型骨名、映射和有效性见 `Tools/output/bot_animation_lab/avatar_configuration.json`。
- 复用成品:`AIClient/Assets/Bundles/Characters/Human/Common/Prefabs/{XBot,YBot,XBot25,XBot41}.prefab`。精简源模型约为XBot的1/100尺度,两个Prefab根均匀缩放约99.3倍,使休息姿态高度约1.896m;未改FBX源字节、蒙皮、骨轴或模型导入globalScale。测试场景进一步统一展示高度1.6m,方便观察。
- `AIClient/Assets/Review/CharacterAnimationLab/{BotAnimationLab,BotAnimationSeekBar}.cs` 控制已有Animator与UI,支持待机/行走/两攻击、播放暂停、前后逐帧、拖动进度、0.25/0.5/1/2倍速、单次/循环攻击、正侧背视图、彩色/灰模、四角色聚焦与全身/上身/手部。运行时不创建角色、动画、材质或业务UI。正常播放走Controller参数/Trigger及真实过渡;Seek按各自动作的同归一化相位定位,X/Y动作时长不同,正常播放与前进一帧按实际秒推进。
- UI为 `Doc/UIPrefabCreater/UI_BotAnimationLab.json` → `AIClient/Assets/Bundles/UI/Prefab/UI_BotAnimationLab.prefab`,1080×1920,复用既有九宫格Sprite。构建/配置/验证入口 `AIClient/AgentScripts/BuildBotAnimationLab.cs`,分别为 `Build`/`Configure`/`Verify`/`Controls`;构建拒绝覆盖任何当前未保存的场景内容。
- `Tools/output/bot_animation_lab/playback_validation.json`:四角色四动作各25相位,共400次Animator姿态和BakeMesh有限值检查;每角色6条待机/行走/攻击往返路径,共24条通过。`play_controls.json`:Play Mode下23个真实UI按钮及进度指针、前后逐帧、速度、聚焦、材质、视角、循环攻击检查通过。已目视复核四版行走和攻击截图;不等同零滑步、全动作无穿插或缺失手指自由度的保证。