blender-motion-state-inspection

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Blender Motion State Inspection

Blender 动作状态检查

When to Use

适用场景

  • A Blender character looks twisted, mirrored, flattened, offset, or foot-sliding in an animation.
  • A user asks whether an imported avatar, armature, or retargeted motion matches an expected pose.
  • You need to compare rendered evidence with structured facts such as bones, bounding boxes, contacts, and facing vectors.
  • A workflow depends on deciding whether a model is a character, prop, proxy mesh, control rig, or broken import.
  • Blender角色在动画中出现扭曲、镜像、扁平化、偏移或滑步现象。
  • 用户询问导入的虚拟形象、骨骼绑定或重定向后的动作是否符合预期姿态。
  • 需要将渲染证据与骨骼、边界框、接触状态、朝向向量等结构化信息进行对比。
  • 工作流程需要判断模型是角色、道具、代理网格、控制绑定还是导入失败的模型。

Core Principle

核心原则

Do not judge animated 3D assets only from screenshots. Screenshots are review evidence, but they hide axis conventions, bone names, object scale, local transforms, parented meshes, material slots, and frame-by-frame contact state.
First extract structured Blender state, then use viewport screenshots or renders to confirm what the facts imply.
不要仅通过截图判断动画3D资产。截图是审查证据,但它们会隐藏轴约定、骨骼名称、对象缩放、局部变换、父级网格、材质插槽以及逐帧的接触状态。
首先提取Blender的结构化状态,再使用视口截图或渲染结果来验证这些信息所反映的问题。

How It Works

工作原理

  1. Establish the clean scene and asset baseline before judging motion.
  2. Extract structured facts from Blender using an exporter or Blender Python run inside Blender's own interpreter.
  3. Sample the frames most likely to expose contact, orientation, scale, and retargeting errors.
  4. Compare the measured facts against the user's expected pose, direction, ground plane, and render goal.
  5. Return a concise report that separates confirmed facts, likely causes, and required fixes.
  1. 在判断动作前,先建立干净的场景和资产基准。
  2. 使用导出工具或在Blender自身解释器中运行Blender Python脚本,提取Blender的结构化信息。
  3. 采样最可能暴露接触、朝向、缩放和重定向错误的帧。
  4. 将测量得到的信息与用户预期的姿态、方向、地面平面和渲染目标进行对比。
  5. 返回一份简洁的报告,区分已确认的事实、可能的原因和所需的修复方案。

Inspection Workflow

检查流程

  1. Inventory the scene.
    • List meshes, armatures, empties, cameras, lights, modifiers, parent relationships, and hidden objects.
    • Separate character meshes from helper/proxy geometry before judging the avatar.
    • Record object-space and world-space bounding boxes.
  2. Identify the skeleton.
    • Capture armature names, pose bones, bone heads/tails, roll, parent chains, constraints, and rest-pose axes.
    • Map semantic bones such as hips, spine, neck, head, shoulders, elbows, hands, thighs, knees, ankles, and feet.
    • Flag missing left/right pairs and unusual naming schemes.
  3. Determine forward, up, and side axes.
    • Use the pelvis, spine, shoulders, hips, head, and feet together; do not rely on a single mesh normal.
    • Compare local armature axes with world axes and imported file conventions such as glTF Y-up vs Blender Z-up.
    • Mark likely mirrored or backwards imports when face/head/feet direction conflicts with root motion.
  4. Sample animation frames.
    • Inspect first, middle, contact, airborne, and extreme frames.
    • Record root location, root heading, pelvis height, torso lean, limb directions, foot clearance, and mesh bounds.
    • For long or fast motion, sample more densely around flips, landings, turns, collisions, and floor contacts.
  5. Check model integrity before retargeting blame.
    • Confirm the clean baseline shape before applying animation.
    • Preserve original mesh, materials, armature, and skinning unless the user explicitly asks for repair.
    • Treat unexplained sphere-like blobs, giant proxy meshes, or crushed bodies as import/selection issues until proven otherwise.
  6. Diagnose contact and motion issues.
    • Ground penetration: compare lowest foot or shoe vertices with floor height per frame.
    • Foot sliding: compare foot world positions across planted frames.
    • Leg crossover: compare left/right thigh, knee, ankle, and foot side ordering.
    • Twist damage: compare bone swing direction separately from roll/twist around the limb axis.
    • Scale drift: compare animated mesh bounds against the clean baseline bounds.
  7. Report facts before opinions.
    • Include frame numbers, object names, bone names, world coordinates, and thresholds.
    • Separate confirmed failures from visual suspicions.
    • Attach screenshots only after the structured state explains what to look for.
  1. 场景盘点。
    • 列出网格、骨骼绑定、空对象、相机、灯光、修改器、父级关系和隐藏对象。
    • 在判断虚拟形象前,将角色网格与辅助/代理几何体区分开。
    • 记录对象空间和世界空间的边界框。
  2. 识别骨骼结构。
    • 捕获骨骼绑定名称、姿态骨骼、骨骼首尾点、滚动值、父级链、约束和静息姿态轴。
    • 映射语义骨骼,如臀部、脊柱、颈部、头部、肩膀、肘部、手部、大腿、膝盖、脚踝和脚部。
    • 标记缺失的左右骨骼对和不常见的命名规则。
  3. 确定前向、向上和侧轴。
    • 结合骨盆、脊柱、肩膀、臀部、头部和脚部进行判断;不要依赖单一网格法线。
    • 对比骨骼绑定的局部轴与世界轴,以及导入文件的约定(如glTF的Y轴向上 vs Blender的Z轴向上)。
    • 当面部/头部/脚部方向与根骨骼动作冲突时,标记可能是镜像或反向导入的情况。
  4. 采样动画帧。
    • 检查起始帧、中间帧、接触帧、腾空帧和极端帧。
    • 记录根骨骼位置、根骨骼朝向、骨盆高度、躯干倾斜度、肢体方向、脚部间隙和网格边界。
    • 对于长时长或快速动作,在翻转、落地、转向、碰撞和地面接触附近更密集地采样帧。
  5. 在归咎于重定向问题前,先检查模型完整性。
    • 在应用动画前,确认干净的基准形状。
    • 保留原始网格、材质、骨骼绑定和蒙皮,除非用户明确要求修复。
    • 除非有证据证明,否则将无法解释的球状网格、巨型代理网格或挤压变形的模型视为导入/选择问题。
  6. 诊断接触和动作问题。
    • 地面穿透:逐帧对比脚部或鞋子的最低顶点与地面高度。
    • 脚部滑步:对比脚部在着地帧的世界位置。
    • 腿部交叉:对比左右大腿、膝盖、脚踝和脚部的侧序。
    • 扭曲损坏:分别对比骨骼摆动方向与绕肢体轴的滚动/扭曲。
    • 缩放漂移:对比动画网格边界与干净基准边界。
  7. 先报告事实,再给出观点。
    • 包含帧编号、对象名称、骨骼名称、世界坐标和阈值。
    • 区分已确认的问题与视觉上的怀疑。
    • 只有当结构化状态解释了需要观察的内容后,再附上截图。

Recommended Report Shape

推荐报告格式

markdown
undefined
markdown
undefined

Blender Motion Inspection

Blender 动作检查

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

帧检查结果

FrameFindingEvidence
1Clean baseline posehips/spine/feet aligned
96Foot penetrates floorleft_foot min_z = -0.04
帧号发现证据
1基准姿态正常臀部/脊柱/脚部对齐
96脚部穿透地面left_foot 最小z值 = -0.04

Verdict

结论

  • Pass/fail:
  • Required fix:
  • Render readiness:
undefined
  • 通过/不通过:
  • 所需修复:
  • 渲染就绪状态:
undefined

Examples

示例

Walk Cycle With Foot Sliding

存在滑步问题的行走循环

Scenario: a retargeted character appears to skate during a walk cycle, but the front camera angle makes the foot contact hard to judge.
Apply the workflow:
  • Inventory the scene: character mesh
    HeroBody
    , armature
    HeroRig
    , ground plane
    Floor
    , no hidden proxy meshes.
  • Identify the skeleton: semantic feet are
    foot.L
    and
    foot.R
    ; hips are
    pelvis
    ; root bone is
    root
    .
  • Sample animation frames: inspect frames 1, 18, 24, 30, 42, and 48 around planted-foot moments.
  • Diagnose contact and motion issues: compare world-space foot locations during planted frames.
Extracted facts:
FrameFactEvidence
18Left foot is planted
foot.L min_z = 0.004
, toe and heel both near floor
24Left foot slides while planted
foot.L x = 0.21 -> 0.28
over six frames
30Pelvis keeps moving forward
pelvis y = 1.14 -> 1.31
Verdict: fail for render readiness. The motion needs foot-lock cleanup or retargeting constraint review; the body mesh does not need proportion changes.
场景:重定向后的角色在行走循环中看起来像在滑行,但正面相机角度难以判断脚部接触情况。
应用流程:
  • 场景盘点:角色网格
    HeroBody
    ,骨骼绑定
    HeroRig
    ,地面平面
    Floor
    ,无隐藏代理网格。
  • 识别骨骼结构:语义脚部为
    foot.L
    foot.R
    ;臀部为
    pelvis
    ;根骨骼为
    root
  • 采样动画帧:检查着地时刻附近的第1、18、24、30、42和48帧。
  • 诊断接触和动作问题:对比着地帧中脚部的世界空间位置。
提取的事实:
帧号事实证据
18左脚着地
foot.L
最小z值 = 0.004,脚趾和脚跟均接近地面
24左脚着地时发生滑步
foot.L
的x坐标从0.21变为0.28,跨度6帧
30骨盆持续向前移动
pelvis
的y坐标从1.14变为1.31
结论:未达到渲染就绪状态。动作需要进行脚部锁定修正或重定向约束检查;角色网格无需调整比例。

Backwards Imported Character

反向导入的角色

Scenario: a character looks correct in a still frame, but the animation moves opposite the expected travel direction.
Apply the workflow:
  • Determine forward, up, and side axes: compare head, chest, feet, and root motion.
  • Sample animation frames: inspect frame 1 and the midpoint of the travel path.
  • Report facts before opinions: include the root heading and model-facing direction separately.
Extracted facts:
FrameFactEvidence
1Character face points toward world
-Y
head/chest vector from
neck
to
head
resolves to
-Y
72Root motion travels toward world
+Y
root y = 0.0 -> 2.8
72Feet remain visually forward-facing opposite traveltoe bones point
-Y
while displacement is
+Y
Verdict: likely backwards import or retargeting forward-axis mismatch. Fix the import/retarget axis mapping before editing animation curves.
场景:角色在静帧中看起来正常,但动画移动方向与预期相反。
应用流程:
  • 确定前向、向上和侧轴:对比头部、胸部、脚部和根骨骼的动作。
  • 采样动画帧:检查第1帧和移动路径的中点帧。
  • 先报告事实,再给出观点:分别列出根骨骼朝向和模型朝向。
提取的事实:
帧号事实证据
1角色面部朝向世界-Y轴
neck
head
的头部/胸部向量指向-Y
72根骨骼动作朝向世界+Y轴
root
的y坐标从0.0变为2.8
72脚部保持与移动方向相反的视觉前向脚趾骨骼指向-Y,而位移方向为+Y
结论:可能是反向导入或重定向前向轴不匹配。在编辑动画曲线前,先修复导入/重定向的轴映射。

Practical Thresholds

实用阈值

  • Assume Blender's default meter-scale units unless the scene unit scale says otherwise.
  • Treat ground penetration above 1-2 cm as visible unless the floor is soft or intentionally stylized.
  • Treat a sudden scale change above 5% as a likely rig, constraint, or transform inheritance problem.
  • Treat left/right ankle side-order flips during airborne inverted motion as leg crossover risk even if it recovers later.
  • Treat root heading jumps above 30 degrees per frame as suspicious unless the source motion includes a snap turn.
  • 除非场景单位缩放另有说明,否则假设使用Blender默认的米制单位。
  • 除非地面是柔软材质或有意风格化处理,否则将超过1-2厘米的地面穿透视为可见问题。
  • 将超过5%的突然缩放变化视为可能的绑定、约束或变换继承问题。
  • 即使后续恢复,也要将腾空反转动作中左右脚踝侧序翻转视为腿部交叉风险。
  • 将每帧超过30度的根骨骼朝向突变视为可疑,除非源动作包含快速转向。

Anti-Patterns

反模式

  • Do not modify body proportions to force pose matching unless the task is explicitly mesh repair.
  • Do not bake away the clean baseline before recording it.
  • Do not use one rendered camera angle as proof that a pose is correct.
  • Do not delete helper objects until you have recorded why they are not part of the character.
  • Do not assume an avatar faces +Y, -Y, +X, or -X without checking head, feet, torso, and root motion together.
  • 除非任务明确是网格修复,否则不要修改角色比例来强制匹配姿态。
  • 在记录干净基准前,不要将其烘焙覆盖。
  • 不要仅用一个渲染相机角度来证明姿态正确。
  • 在记录辅助对象不属于角色的原因前,不要删除它们。
  • 不要在未结合头部、脚部、躯干和根骨骼动作进行检查的情况下,假设虚拟形象朝向+Y、-Y、+X或-X轴。

Tooling Notes

工具说明

If a Blender state exporter is available, prefer JSON that includes meshes, armatures, pose bones, materials, contacts, bounding boxes, and sampled animation frames. If no exporter exists, run a small Blender Python script through Blender itself, for example
blender --background scene.blend --python collect_motion_state.py
, because
bpy
is not available in a normal system Python interpreter.
如果有Blender状态导出工具,优先使用包含网格、骨骼绑定、姿态骨骼、材质、接触状态、边界框和采样动画帧的JSON文件。如果没有导出工具,可通过Blender自身运行小型Blender Python脚本,例如
blender --background scene.blend --python collect_motion_state.py
,因为
bpy
在常规系统Python解释器中不可用。