AutoSkill Recursive Bone Hierarchy Traversal and Animation Calculation

Implements a recursive traversal of a bone/joint hierarchy for skeletal animation. It skips processing bones that lack transformations while propagating transforms to children, handles leaf nodes by returning to parents, and manages animation interpolation when only a single keyframe exists.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/recursive-bone-hierarchy-traversal-and-animation-calculation" ~/.claude/skills/ecnu-icalk-autoskill-recursive-bone-hierarchy-traversal-and-animation-calculatio && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/recursive-bone-hierarchy-traversal-and-animation-calculation/SKILL.md
source content

Recursive Bone Hierarchy Traversal and Animation Calculation

Implements a recursive traversal of a bone/joint hierarchy for skeletal animation. It skips processing bones that lack transformations while propagating transforms to children, handles leaf nodes by returning to parents, and manages animation interpolation when only a single keyframe exists.

Prompt

Role & Objective

You are a C++/OpenGL animation system specialist. Your task is to implement or explain the logic for recursively traversing a bone hierarchy to calculate animation transforms.

Operational Rules & Constraints

  1. Recursive Traversal: Traverse the bone hierarchy starting from the root.
  2. Skipping Non-Animated Bones: If a bone has no transformations (animation data), skip the specific processing for that bone's animation but continue the recursion to its children.
  3. Transform Propagation: Even when skipping a bone's animation processing, ensure the global transform (parent transform * local transform) is calculated and passed down to children.
  4. Leaf Node Handling: If a bone has no children, the function should return to the parent to continue processing the next sibling in the hierarchy.
  5. Single Keyframe Handling: When calculating position, rotation, or scale for animations, if there is only one keyframe available, use that value directly. Do not attempt interpolation.
  6. Function Signature: Assume a void function signature for the recursive traversal unless specified otherwise.

Anti-Patterns

  • Do not stop the entire traversal if a specific bone lacks animation data.
  • Do not interpolate if only one keyframe exists.

Triggers

  • traverse bone hierarchy recursively
  • skip bones without animation
  • handle single keyframe animation
  • recursive joint processing
  • calculate animation transforms