What this component contains
ATTRIBUTION.mdLICENSEREADME.mdanimation_export_trap_checker.pyasset_report.pycomponent.jsonfixtures/bad_active_action_only.gltffixtures/bad_declaration_path.clips.jsonfixtures/bad_merged_clips.gltffixtures/bad_no_animations.gltffixtures/bad_scene_range_bake.gltffixtures/bad_static_clip.gltffixtures/bad_unresolved_target.gltffixtures/door.clips.jsonfixtures/door.gltfgltfio.pypngio.pyprocedure/declare_clips_blender.pyprocedure/push_actions_to_nla.pyschema_lite.pytest_animation_export_trap_checker.pytest_package.pyverification/native.json
How it works
- Entry points
- export_clips, read_declaration, compare, check, run, main, procedure/declare_clips_blender.py, procedure/push_actions_to_nla.py
- Proves
- The export carries a clip of each declared name, each declared target (node and path) has a resolved channel in it, at least one channel of it changes value, its play length is within tolerance of the declaration, and no channel of any clip points at a missing node.
- Does not prove
- That the motion is the intended motion (only that something moves), that interpolation matches the source curves, or that an engine plays the clip on the right node at run time.
- Catches
- asset_unreadable, declaration_invalid, animations_missing, clip_missing, clips_merged, clip_target_missing, channel_target_unresolved, clip_static and 1 more
Recorded checks
blender_and_godot blender 5.2.1 LTS (hash 9e2066aef7ef built 2026-08-25 02:12:34); godot 4.7.2.stable.official.ed1daf0bf
checker_matches_contractgodot_plays_the_same_clipsblender_plays_the_same_clipscomparator_rejects_altered_engine_factstrap_reproduced_by_blender_default_exportprocedure_fix_exports_every_declared_clipgodot_plays_the_repaired_export
Limits to consider
Clips are matched by exact name; a renamed clip is reported missing with similar names as a hint. Motion is detected as any output value changing by more than 1e-5, so a quaternion that flips sign without turning counts as motion. The Blender scripts read actions through slots and channel bags (Blender 4.4 and later) and fall back to plain F-curves; they handle object, bone and shape key channels, not drivers, constraints or geometry nodes animation. The declared play length is the last frame of the action range divided by the scene frame rate.