Replace TownSquare with HomeCamp art and land humanoid bots, LittleBear, and LmGirl review assets.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -225,3 +225,49 @@
|
||||
- `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按钮及进度指针、前后逐帧、速度、聚焦、材质、视角、循环攻击检查通过。已目视复核四版行走和攻击截图;不等同零滑步、全动作无穿插或缺失手指自由度的保证。
|
||||
|
||||
Reference in New Issue
Block a user