用途
该技能用于检查 Blender 中的角色、骨骼、姿态、动画重定向、地面接触、朝向,以及模型与动作的对齐情况。当出现以下情形时使用:Blender 角色在动画中看起来扭曲、镜像、压扁、偏移或脚部滑动;用户询问导入的虚拟形象、骨架或重定向动作是否匹配预期姿态;需要将渲染证据与骨骼、包围盒、接触点、朝向向量等结构化事实进行对比;工作流需要判断某个模型是角色、道具、代理网格、控制骨架还是损坏的导入。
核心原则
不要仅凭截图判断动画 3D 资产。截图是审查证据,但会隐藏轴约定、骨骼名称、对象缩放、局部变换、父级网格、材质槽以及逐帧接触状态。应先提取结构化 Blender 状态,再用视口截图或渲染确认这些事实所暗示的内容。
工作方式
- 在判断动作之前,先建立干净场景与资产基线。
- 使用导出器或在 Blender 自带解释器中运行 Blender Python,从 Blender 提取结构化事实。
- 采样最可能暴露接触、朝向、缩放和重定向错误的帧。
- 将测量事实与用户预期的姿态、方向、地平面和渲染目标进行对比。
- 返回一份简洁报告,区分已确认事实、可能原因和所需修复。
检查工作流
清点场景
列出网格、骨架、空物体、摄像机、灯光、修改器、父子关系和隐藏对象。在判断虚拟形象之前,将角色网格与辅助/代理几何体分开。记录对象空间与世界空间包围盒。
识别骨架
捕获骨架名称、姿态骨骼、骨骼头/尾、滚转、父链、约束和静止姿态轴。映射语义骨骼,如髋部、脊柱、颈部、头部、肩部、肘部、手部、大腿、膝盖、脚踝和脚。标记缺失的左右配对和不寻常的命名方案。
确定前、上、侧轴
结合骨盆、脊柱、肩部、髋部、头部和脚一起判断;不要依赖单个网格法线。比较局部骨架轴与世界轴,以及导入文件约定,如 glTF Y-up 与 Blender Z-up。当面部/头部/脚部方向与根运动冲突时,标记可能的镜像或反向导入。
采样动画帧
检查首帧、中间帧、接触帧、腾空帧和极端帧。记录根位置、根朝向、骨盆高度、躯干倾斜、肢体方向、脚部离地间隙和网格边界。对于长距离或快速动作,在翻转、落地、转向、碰撞和地面接触附近更密集地采样。
在归咎重定向之前检查模型完整性
在应用动画之前确认干净基线形状。除非用户明确要求修复,否则保留原始网格、材质、骨架和蒙皮。将无法解释的球状团块、巨大代理网格或压扁的身体视为导入/选择问题,直到证明并非如此。
诊断接触与动作问题
地面穿透:逐帧比较最低脚部或鞋子顶点与地面高度。脚部滑动:比较种植帧中脚部的世界位置。腿部交叉:比较左右大腿、膝盖、脚踝和脚的侧向顺序。扭曲损伤:将骨骼摆动方向与绕肢体轴的滚转/扭转分开比较。缩放漂移:将动画网格边界与干净基线边界比较。
先报告事实,再给意见
包含帧号、对象名称、骨骼名称、世界坐标和阈值。将已确认故障与视觉怀疑分开。只有在结构化状态解释了要查找什么之后,才附上截图。
推荐报告结构
## Blender Motion Inspection
### Scene Inventory
- Character candidates:
- Armatures:
- Helper/proxy objects:
- Cameras/lights:
### Orientation
- World up:
- Character forward:
- Root heading:
- Mirrored/backwards risk:
### Baseline Integrity
- Clean mesh bounds:
- Animated mesh bounds:
- Materials/skin preserved:
- Suspicious non-character meshes:
### Frame Findings
| Frame | Finding | Evidence |
| --- | --- | --- |
| 1 | Clean baseline pose | hips/spine/feet aligned |
| 96 | Foot penetrates floor | left_foot min_z = -0.04 |
### Verdict
- Pass/fail:
- Required fix:
- Render readiness:
示例
行走循环中的脚部滑动
场景:重定向角色在行走循环中看起来在滑行,但正面摄像机角度使脚部接触难以判断。
应用工作流:清点场景,角色网格 HeroBody,骨架 HeroRig,地面 Floor,无隐藏代理网格。识别骨架,语义脚为 foot.L 和 foot.R;髋部为 pelvis;根骨骼为 root。采样动画帧,检查第 1、18、24、30、42 和 48 帧附近的种植脚时刻。诊断接触与动作问题,比较种植帧中脚部的世界空间位置。
提取事实:
| Frame | Fact | Evidence |
|---|---|---|
| 18 | Left foot is planted | foot.L min_z = 0.004, toe and heel both near floor |
| 24 | Left foot slides while planted | foot.L x = 0.21 -> 0.28 over six frames |
| 30 | Pelvis keeps moving forward | pelvis y = 1.14 -> 1.31 |
结论:渲染就绪性不通过。动作需要脚部锁定清理或重定向约束审查;身体网格不需要比例更改。
反向导入角色
场景:角色在静止帧中看起来正确,但动画移动方向与预期行进方向相反。
应用工作流:确定前、上、侧轴,比较头部、胸部、脚和根运动。采样动画帧,检查第 1 帧和行进路径中点。先报告事实再给意见,分别包含根朝向和模型面向方向。
提取事实:
| Frame | Fact | Evidence |
|---|---|---|
| 1 | Character face points toward world -Y | head/chest vector from neck to head resolves to -Y |
| 72 | Root motion travels toward world +Y | root y = 0.0 -> 2.8 |
| 72 | Feet remain visually forward-facing opposite travel | toe bones point -Y while displacement is +Y |
结论:可能是反向导入或重定向前轴不匹配。在编辑动画曲线之前修复导入/重定向轴映射。
实用阈值
除非场景单位缩放另有说明,否则假定 Blender 默认米制单位。除非地面柔软或有意风格化,否则将超过 1-2 厘米的地面穿透视为可见。将超过 5% 的突然缩放变化视为可能的骨架、约束或变换继承问题。将腾空倒置动作中左右脚踝侧向顺序翻转视为腿部交叉风险,即使之后恢复。除非源动作包含快速转向,否则将每帧超过 30 度的根朝向跳变视为可疑。
反模式
除非任务明确是网格修复,否则不要修改身体比例来强制匹配姿态。不要在记录干净基线之前将其烘焙掉。不要用一个渲染摄像机角度作为姿态正确的证据。在记录辅助对象为何不属于角色之前,不要删除它们。不要在没有同时检查头部、脚、躯干和根运动的情况下假定虚拟形象面向 +Y、-Y、+X 或 -X。
工具说明
如果存在 Blender 状态导出器,优先使用包含网格、骨架、姿态骨骼、材质、接触、包围盒和采样动画帧的 JSON。如果不存在导出器,通过 Blender 本身运行一个小型 Blender Python 脚本,例如 blender --background scene.blend --python collect_motion_state.py,因为 bpy 在普通系统 Python 解释器中不可用。