| name | animation-editing |
| display_name | Animation Editing & Bone Space Correctness |
| description | Preview, validate, and bake bone-rotation edits on AnimSequences with constraint awareness and retarget safety. Use when the user asks to edit/pose/adjust an animation's bones, raise an arm, create a swing/wave/dance/pose, mirror or copy a pose, set joint limits, or learn bone constraints. Load together with animsequence (keyframes) and skeleton (structure). |
| vibeue_classes | ["AnimSequenceService","SkeletonService"] |
| unreal_classes | ["AnimSequence","Skeleton","SkeletalMesh"] |
| keywords | ["animation editing","bone rotation","bone space","local space","component space","constraint","joint limit","preview","validate","bake","keyframe","retarget","pose","mirror","copy pose","create animation","swing","wave","dance","arm raise"] |
| related_skills | ["animsequence","skeleton","animation-blueprint"] |
🧠 Brains complement: IF an unreal-engine-skills-manager tool (external MCP) exists in this session, call it with {action: "load", skill: "animation-system"} for UE domain knowledge on this topic — correct APIs, architecture, best practices — and treat it as the rubric for any review / "best practices" question. If no such tool is available (e.g. running under Claude Code or Codex without that MCP), skip this line entirely and proceed with this skill alone — do NOT attempt the call.
Animation Editing Skill
Covers the profile → preview → validate → bake workflow for safe bone edits with correct
bone-space handling and constraint validation.
Load companion skills: animsequence (basic keyframe creation), skeleton (structure,
retargeting), animation-blueprint (state machines / AnimGraph). Skills load via the engine's
AgentSkillToolset (ListSkills / GetSkills) — there is no vibeue-skills-manager tool. Run the
VibeUE services below with execute_python_code (unreal.<Service>.<method>()).
🛡️ Safe discovery — never unreal.load_asset() in loops (memory crash 0xC0000005).
Use SkeletonService.list_skeletons(path), AnimSequenceService.find_animations_for_skeleton(skeleton),
AnimSequenceService.list_anim_sequences(path, skeleton_filter) — they query metadata without loading.
⚠️ Critical Rules
1. Always specify bone space
Every bone rotation must state its coordinate space. Default to "local" for user intent.
| Space | Relative to | Use for |
|---|
"local" | parent bone | most edits (default) |
"component" | mesh root | cross-bone coordination |
"world" | world | rarely |
unreal.AnimSequenceService.preview_bone_rotation(path, "upperarm_r", unreal.Rotator(0, , ), , )