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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
Scenario: a retargeted character appears to skate during a walk cycle, but the front camera angle makes the foot contact hard to judge.
Verdict: fail for render readiness. The motion needs foot-lock cleanup or retargeting constraint review; the body mesh does not need proportion changes.
Scenario: a character looks correct in a still frame, but the animation moves opposite the expected travel direction.
Verdict: likely backwards import or retargeting forward-axis mismatch. Fix the import/retarget axis mapping before editing animation curves.
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
is not available in a normal system Python interpreter.