Covers animation in Godot 4.3 and later: AnimationPlayer basics, AnimationTree blend trees and state machines, sprite animation, skeleton IK and code-driven motion.
Install the "animation-system" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/animation-system into .claude/skills/animation-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "animation-system", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add jame581/GodotPrompter --skill animation-system -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "animation-system" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/animation-system into .agents/skills/animation-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "animation-system", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add jame581/GodotPrompter --skill animation-system -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "animation-system" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/animation-system into .cursor/skills/animation-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "animation-system", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add jame581/GodotPrompter --skill animation-system -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "animation-system" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/animation-system into .gemini/skills/animation-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "animation-system", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add jame581/GodotPrompter --skill animation-system -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "animation-system" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/animation-system into .github/skills/animation-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "animation-system", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add jame581/GodotPrompter --skill animation-system -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "animation-system" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/animation-system into .opencode/skills/animation-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "animation-system", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
animation-system
GitHub stars
805
Token cost
~3.8k tokens
SKILL.md length
1,246 words
Files
10 (incl. references)
Skills in repo
58
Repo updated
First seen
Licence
MIT
At a glance
Covers animation in Godot 4.3 and later: AnimationPlayer basics, AnimationTree blend trees and state machines, sprite animation, skeleton IK and code-driven motion.
Works in 10 steps: Core Concepts → AnimationPlayer Basics → Animation Signals → …
Setting up AnimationPlayer clips for a Godot character
SKILL.md covers 1. Core Concepts, 2. AnimationPlayer Basics, 3. Animation Signals and 4. Sprite Frame Animation, plus 6 more sections
Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
What it does
The skill opens with the choice between AnimationPlayer, which plays and queues individual clips and suits simple playback and one-shot effects, and AnimationTree, which adds blending, transitions and layered animation through state machines and blend trees. The rule of thumb is to start with AnimationPlayer and add AnimationTree when blending such as walk-run mixes, directional movement or upper and lower body layers is needed.
Examples target Godot 4.3 or newer with no deprecated APIs, shown in GDScript first and then C#. AnimationPlayer can animate any property on a sibling or child node, including sprite frames, position, scale, collision state, method calls and audio playback. Calling play with the name of the clip already playing does nothing, so it is safe to call every frame. Reference files cover bone constraints, IK recipes and solver comparison, retargeting, skeleton modifiers, sprite animation, state machine examples, recipes and pitfalls.
When your agent uses it
Setting up AnimationPlayer clips for a Godot character
Adding an AnimationTree with a state machine or blend tree
Animating 2D sprites or driving animation from code
Working with skeleton IK, bone constraints or retargeting
Example prompts
“Add an AnimationTree with idle, walk and run states to the player character.”
“Set up sprite animation for the slime enemy using AnimationPlayer.”
“Show the C# version of the attack animation playback code.”
Requirements
Godot 4.3 or newer
Workflow steps
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 1e7d79d. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
No scripts in the folder and no shell commands in SKILL.md (its code samples are gdscript and csharp).
From the folder's file list and the shell code blocks in SKILL.md.
Network
Links to these hosts (documentation or services it may open):
docs.godotengine.org
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Godot Animation System loads about 3.8k tokens when it runs, and up to ~9.7k if it reads all its reference files. Until then it costs about 39 tokens; SKILL.md has 1,246 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~39
When it runs· the whole SKILL.md, loaded when a task matches
~3.8k
With references· SKILL.md plus every file in references/, read only if the agent opens them
~9.7k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/animation-system/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
animation-system
description
Use when implementing animations — AnimationPlayer, AnimationTree, blend trees, state machines, sprite animation, and code-driven animation
Animation System in Godot 4.3+
All examples target Godot 4.3+ with no deprecated APIs. GDScript is shown first, then C#.
Related skills:state-machine for gameplay state management, player-controller for movement that drives animation, component-system for reusable animation components, 2d-essentials for TileMaps, parallax scrolling, 2D lights, and canvas layer organization, 3d-essentials for AnimationTree and 3D animation blending, shader-basics for shader-driven hit flash and dissolve effects, tween-animation for code-driven motion alongside keyframe animation.
1. Core Concepts
AnimationPlayer vs AnimationTree
Node
Use For
Complexity
Notes
AnimationPlayer
Simple playback, one-shot effects
Low
Play/stop/queue individual clips directly
AnimationTree
Blending, transitions, layered animation
Medium-High
State machines and blend trees for smooth transitions
Rule of thumb: Start with AnimationPlayer. Add AnimationTree when you need blending between animations (walk/run blend, directional movement, layered upper/lower body).
Animation Workflow
1. Create AnimationPlayer node → holds all animation clips
2. Add tracks in the Animation panel → keyframe properties, methods, audio
3. (Optional) Add AnimationTree → blend/transition logic
4. Trigger from code → play(), travel(), set parameters
2. AnimationPlayer Basics
Scene Structure
Character (CharacterBody2D)
├── Sprite2D
└── AnimationPlayer
AnimationPlayer can animate any property on any sibling or child node: sprite frames, modulate, position, rotation, scale, visibility, collision shape disabled state, method calls (Call Method track), audio playback (Audio Playback track).
using Godot;
public partial class Character : CharacterBody2D
{
private AnimationPlayer _animPlayer;
public override void _Ready()
{
_animPlayer = GetNode<AnimationPlayer>("AnimationPlayer");
}
public override void _PhysicsProcess(double delta)
{
Vector2 inputDir = Input.GetVector("ui_left", "ui_right", "ui_up", "ui_down");
if (inputDir != Vector2.Zero)
{
Velocity = inputDir * 200.0f;
_animPlayer.Play("walk");
}
else
{
Velocity = Vector2.Zero;
_animPlayer.Play("idle");
}
MoveAndSlide();
}
}
Calling play() with the same animation name while it's already playing does nothing (no restart). This is safe to call every frame.
Playback Control
gdscript
anim_player.play("attack")
anim_player.play_backwards("attack")
anim_player.queue("idle") # play after current
anim_player.stop()
anim_player.pause()
anim_player.play() # resume from paused position
anim_player.speed_scale = 2.0
anim_player.seek(0.5)
public override void _Ready()
{
_animPlayer = GetNode<AnimationPlayer>("AnimationPlayer");
_animPlayer.AnimationFinished += OnAnimationFinished;
}
private void OnAnimationFinished(StringName animName)
{
if (animName == "attack")
_animPlayer.Play("idle");
else if (animName == "death")
QueueFree();
}
Method Call Tracks
Add a Call Method track to trigger game logic at exact animation frames (spawn projectile at frame 5, play SFX at impact frame, enable hitbox during swing). In the Animation panel: Add Track → Call Method Track → select target node → add keyframes → set method name and arguments.
Two approaches for 2D character animation: AnimatedSprite2D (quick, frames-only) and AnimationPlayer + Sprite2D (full property animation). Pick AnimatedSprite2D for simple characters; AnimationPlayer when you also animate hitboxes, particles, sounds, or other properties in sync.
See references/sprite-animation.md for the full GDScript and C# example (a CharacterBody2D walking with AnimatedSprite2D driven by Input.get_vector and flip_h).
Ping-Pong Playback (Godot 4.7+)
SpriteFrames gains a LoopMode enum — LOOP_NONE = 0, LOOP_LINEAR = 1, LOOP_PINGPONG = 2 — set per animation with set_animation_loop_mode(anim, loop_mode) and read back with get_animation_loop_mode(anim). The old bool set_animation_loop() / get_animation_loop() are deprecated. Ping-pong alternates direction each time the animation reaches the end or start, and works with both AnimatedSprite2D and AnimatedSprite3D.
gdscript
var frames: SpriteFrames = $AnimatedSprite2D.sprite_frames
frames.set_animation_loop_mode(&"sway", SpriteFrames.LOOP_PINGPONG)
csharp
var frames = GetNode<AnimatedSprite2D>("AnimatedSprite2D").SpriteFrames;
frames.SetAnimationLoopMode("sway", SpriteFrames.LoopMode.Pingpong);
5. AnimationTree — Canonical State Machine
Scene Structure
Character (CharacterBody2D)
├── Sprite2D
├── AnimationPlayer ← holds all clips
└── AnimationTree ← controls blending/transitions
(tree_root = AnimationNodeStateMachine or AnimationNodeBlendTree)
Setup: Add AnimationTree as a sibling of AnimationPlayer. Set anim_player to point at the AnimationPlayer. Set active = true. Choose a root: AnimationNodeStateMachine (discrete states with transitions) or AnimationNodeBlendTree (continuous blending).
State Machine Playback
The canonical pattern: cache AnimationNodeStateMachinePlayback from anim_tree["parameters/playback"], call travel("state") from gameplay code (travel() transitions smoothly; start() switches immediately), and query the active state with get_current_node().
For continuous blending (walk↔run on a speed parameter; 4/8-directional movement on a 2D vector). Set the root to AnimationNodeBlendTree, add a BlendSpace1D or BlendSpace2D, place animations at compass positions (e.g., walk @ 0.0, run @ 1.0; idle_down @ (0,1), idle_right @ (1,0)). Drive the blend each frame:
AnimationNodeBlendSpace1D/2D.add_blend_point() gains an optional name: StringName = &"" parameter, and blend point names/indices can be set and displayed in the editor. Passing a name explicitly is recommended (empty names will be deprecated); look points up with find_blend_point_by_name().
⚠️ Changed in Godot 4.7:AnimationNodeBlendSpace1D/2D replace the bool sync property (now deprecated) with a sync_modeSyncMode enum: SYNC_MODE_NONE = 0 (default — inactive animations are frozen), SYNC_MODE_INDEPENDENT = 1 (the old sync = true behavior), SYNC_MODE_CYCLIC_MUTABLE = 2 (cycle length computed dynamically from blend weights), SYNC_MODE_CYCLIC_CONSTANT = 3 (one cycle per cyclic_length seconds — must be > 0). If an AnimationTree that blended correctly in 4.6 stops transitioning correctly, set sync_mode on each blend space. See the 4.7 migration guide.
6. Skeleton Modifiers (3D, 4.4+)
LookAtModifier3D (Godot 4.4+)
Procedurally rotates a bone to look at a world-space target. Ideal for head tracking and eye contact without extra animation clips.
⚠️ Changed in Godot 4.7:LookAtModifier3D.relative now defaults to false (was true) — the rotation is applied relative to the rest pose by default instead of the current pose. Set relative = true to restore the 4.6 behavior. See the 4.7 migration guide.
BoneConstraint3D (Godot 4.5+)
AimModifier3D, CopyTransformModifier3D, and ConvertTransformModifier3D operate bone-relative rather than world-space — use them when the aim/source target is itself a bone on the same skeleton (mirroring, secondary rig binding, bone-to-bone aiming).
See references/bone-constraints.md for the full deep dive — modifier table, scene structure, GDScript and C# examples for AimModifier3D and CopyTransformModifier3D.
Show full SKILL.md (521 more words)Show less
SpringBoneSimulator3D (Godot 4.4+)
Simulates spring physics on bones — hair, capes, tails, antennas bounce and sway procedurally. Add as child of Skeleton3D, configure spring chains (root bone, end bone, stiffness, damping, gravity, drag) in the Inspector.
See references/skeleton-modifiers.md for property reference table and recommended starting values per use-case (hair, antennas, capes).
Animation Markers (Godot 4.4+)
Markers define named points/regions within an animation clip — use them for subregion loops, section-based playback, and audio-synced events without splitting clips. Right-click the timeline → Add Marker → name it (e.g., hit_frame, loop_start). Read anim_player.current_animation_position and compare to marker times in code, or feed markers to AudioStreamInteractive for sync.
Animation Retargeting (Godot 4.3+)
Godot 4.3 retargets animations from one skeleton to another during .glb/.gltf import via SkeletonProfile (e.g., SkeletonProfileHumanoid). Animations then target generic profile bone names, so any matching skeleton can play them.
Godot 4.6 adds IKModifier3D, a base class for skeletal IK solvers, with eight subclasses covering the most common algorithms. These are SkeletonModifier3D children of Skeleton3D and work alongside other modifiers (e.g., LookAtModifier3D).
Pick the cheapest solver that fits the chain: TwoBoneIK3D for exactly-two-bone limbs (the common humanoid case), CCDIK3D for short non-2-bone chains, FABRIK3D for longer or variable-length chains, and JacobianIK3D only when rig accuracy matters more than CPU cost.
See references/ik-recipes.md for the full GDScript and C# recipes — two-bone arm reach with influence blending (CCDIK3D), foot placement on uneven terrain (FABRIK3D + raycast), and basic FABRIK arm IK setup.
8. Common Recipes
Two gameplay-flavored animation recipes: a hit-flash modulate tween and a buffered attack combo using AnimationPlayer's Call Method track.
See references/common-recipes.md for the full GDScript and C# code (Hit Flash, Attack Combo with combo-window buffering).
9. Common Pitfalls
Quick symptom → cause → fix table covering animation snapping instead of blending, an inactive AnimationTree, travel() not transitioning, wrong track node paths, silent Call Method tracks, dead blend parameters, and per-frame play() resets.
Godot Animation System next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Godot Animation System compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Godot Animation System this skilljame581/GodotPrompter
Provider-neutral open-source skill for planning and producing game-runtime art assets and animation: static props/icons, canonical character sheets, combat sprites, 3D/video motion references…
Expert patterns for simplifying 3D games to 2D including dimension reduction strategies, 2.5D fake-depth, isometric ports, camera flattening, physics conversion, 3D-to-sprite art pipeline, and…
Covers Godot 4.3+ 2D systems with GDScript and C# examples: canvas layers, draw order, TileMaps, parallax, lights and shadows, particles and custom drawing.
Covers Godot 4.3+ 3D systems such as materials, lighting, shadows, environment, global illumination, fog, LOD, occlusion culling and decals, with GDScript first and C# second.
Builds a data-driven ability system in Godot 4 from Resources and a component node, with cooldowns, buffs, stat modifiers, gameplay tags and HUD binding.
Covers Godot 4.3+ editor plugins: plugin folders, @tool scripts, the EditorPlugin lifecycle, custom inspectors, dock panels and gizmos, in GDScript and C#.
Explains how Godot 4.3 and later imports assets: image compression modes, 3D scenes, audio and resource formats, and import settings, with GDScript and C# examples.
Covers animation in Godot 4.3 and later: AnimationPlayer basics, AnimationTree blend trees and state machines, sprite animation, skeleton IK and code-driven motion. The skill opens with the choice between AnimationPlayer, which plays and queues individual clips and suits simple playback and one-shot effects, and AnimationTree, which adds blending, transitions and layered animation through state machines and blend trees. The rule of thumb is to start with AnimationPlayer and add AnimationTree when blending such as walk-run mixes, directional movement or upper and lower body layers is needed.
When should I use Godot Animation System?
Godot Animation System fits situations like: setting up AnimationPlayer clips for a Godot character; adding an AnimationTree with a state machine or blend tree; animating 2D sprites or driving animation from code; working with skeleton IK, bone constraints or retargeting.
How do I install Godot Animation System in Claude Code?
Run `npx skills add jame581/GodotPrompter --skill animation-system -a claude-code`. Or copy the skill folder (skills/animation-system in jame581/GodotPrompter) into .claude/skills/animation-system in your project. Claude Code loads it when a task matches its description.
How do I install Godot Animation System in Codex?
Run `npx skills add jame581/GodotPrompter --skill animation-system -a codex`. Or copy the skill folder (skills/animation-system in jame581/GodotPrompter) into .agents/skills/animation-system in your project. Codex loads it when a task matches its description.
Can I use Godot Animation System in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jame581/GodotPrompter --skill animation-system -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/animation-system, .gemini/skills/animation-system, .github/skills/animation-system and .opencode/skills/animation-system in your project.
What does Godot Animation System need to run?
SKILL.md names no scripts, command-line tools or credentials: Godot Animation System is instructions for the agent only. Our summary lists: Godot 4.3 or newer.
Does Godot Animation System access the network?
SKILL.md names 1 domain. As links in the text: docs.godotengine.org. This is read from the text; nothing was executed.
Is Godot Animation System safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Godot Animation System use?
Godot Animation System is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Godot Animation System use?
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.8k tokens, read only when the agent opens those files.
What are the alternatives to Godot Animation System?
Skills that share tags, products or a category with Godot Animation System: AI Game Art Pipeline (ybuild-ai/ai-game-art-pipeline-skill, 297 stars), Godot Admob App Open (poingstudios/godot-admob-plugin, 632 stars), Godot 3D World Building (thedivergentai/GD-Agentic-Skills, 821 stars) and Godot Admob Banner (poingstudios/godot-admob-plugin, 632 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Godot Animation System?
jame581 (a GitHub user) maintains it in jame581/GodotPrompter, which has 805 GitHub stars. The repository holds 58 skills in this directory. The repository was last updated on October 9, 2026.
Source: jame581/GodotPrompter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.