Generated banner for Game Dev Combat Animation
Generated logo for Game Dev Combat Animation

Game Dev Combat Animation

Meng ToCommunityCreated by Meng To

  • Skill
  • Workflow
  • Design and creative
  • MIT
  • Low risk
  • Has scripts

From the author

Build, fix and review character combat animations (melee strikes, bow shots, spell casts, skills, monster attacks, whole move sets) so they read like Diablo IV, Baldur's Gate 3 or Elden Ring and never stretch, lock, wring or break an arm, wrist or hand. A written standard with numbered rules, per-frame tests on the real skinned mesh, keys designed from upper-arm, forearm and blade intents, checks from every camera the player sees, two blind critics plus a blind A/B against the last release, and every critic claim verified against full-resolution frames and live-rig numbers. Use when creating or reworking any attack, skill or move set; when the user says arms, hands, wrists, elbows or weapons look stretched, weird, broken or wrong; when they ask for a standard, rules or tests for animations; or when they ask to score animations or get them to N out of 10.
— the description by Meng To

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a structured process for developing and refining character combat animations, such as melee strikes and bow shots. It emphasizes a data-driven approach, requiring the definition of a written standard before animation keys are set. The workflow involves designing keys based on anatomical intent, measuring joint ranges and skin deformation on the real skinned mesh, and conducting blind reviews to ensure animations meet specific visual and technical criteria. It includes tools for capturing frames, performing blind A/B comparisons, and verifying critic claims against live-rig data.

What it does

  • Defines a standard for combat animation phases, body mechanics, and camera readability.
  • Uses scripts to design animation keys based on upper-arm, forearm, and blade directions.
  • Enforces joint range and skin deformation limits on the real skinned mesh.
  • Facilitates blind A/B testing and critic reviews to evaluate animation quality.
  • Provides tools to capture and compose side-by-side video comparisons of animations.
  • Verifies critic feedback against full-resolution frames and live-rig numbers.

When to use it

  • When creating or reworking character combat animations, including attacks, skills, or move sets.
  • When animations exhibit visual issues like stretched, locked, or broken limbs.
  • When establishing a formal standard or set of rules for animation testing.
  • When scoring animations or aiming to reach specific performance targets.

Advantages

  • Reduces visual artifacts like skin wringing or limb locking through strict measurement.
  • Ensures consistency across different camera angles and character models.
  • Provides an objective, data-backed method for evaluating and improving animations.
  • Prevents common animation traps through a documented, repeatable process.

Usage examples

“I need to create a new heavy sword strike for the knight character.”
The agent will guide you through defining the move's phases, setting keys based on anatomical intent, and running the required arm and skin checks.
“The archer's bow draw looks broken; how do I fix it?”
The agent will help you capture the current animation, compare it against the standard, and use the provided tools to identify and correct the specific joint or path issues.
“How can I score my current combat animations?”
The agent will assist in setting up a blind review process with two critics and a blind A/B comparison against the previous release.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/mengto/game-dev-combat-animation/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip game-dev-combat-animation.zip -d .agents/skills

Documentation by Meng To

Game dev: combat animation

Distilled from the Thornvigil knight-and-archer pass (2026-09-30 to 10-01, releases 1.0.71 and 1.0.72). Its outcome:

  • Arms and hands won 5 of 8 blind A/B comparisons against the previous release.

  • The archer's broken anchor and the knight's frozen, straight-armed follow-through were fixed.

  • Seven rounds of fixes came from traps that numbers would have caught earlier. Those traps are listed below.

Read references/thornvigil.md for the project's files, commands and current state, and references/traps.md before changing keys.

The loop

  1. Write the standard before touching keys. Extend docs/combat-animation-standard.md (or the project's equivalent) with the move's own numbered rules:

    • Phases on the game's clock: anticipation, the contact or release on the rule's frame, recovery.

    • Body mechanics, weapon path, camera reads.

    • Mark each rule test (measured) or reviewed (scored from frames).

    • Ground every rule in a real reference: a Tripo Studio motion-capture preset for body mechanics, or coached technique such as the archery shot cycle. Use Tripo presets only; the user has no Mixamo account and declined Quaternius.

  2. Baseline first. Capture both surfaces (the Characters page and in play), keep the frames, and get blind scores before changing anything.

  3. Design keys from anatomy, not from hand positions. For each key pick the upper-arm direction u, the forearm direction f and the blade b, then run keydesign.mjs. It returns the hand target and flags:

    • raise over 100°;

    • flex outside 12–140°;

    • a blade outside 25–115° off the forearm. Hand keys ride the shoulder; blade and elbow keys are world directions. See references/techniques.md.

  4. Measure before looking. Bake, then:

    • armcheck.mjs for joint ranges and the skin's stretch and crush per arm region on the real mesh;

    • at.mjs for the fist and blade at given times;

    • the move's own probe: knight-measure.mjs, anchor.mjs or drawfit.mjs. Fix numbers that break a rule before spending a capture.

  5. Test. Run the arm-ranges test and the move's tests. When you add a test for a bug, temporarily restore the bug and prove the test fails; a test that reads the same wrong convention as the code passes forever.

  6. Capture both cameras and look yourself at full resolution. A pose that reads well from the front can read broken from the game camera, and the reverse. Diff each capture against the previous round to be sure it is new.

  7. Judge. Use two blind critics with a fixed rubric (5 criteria × 0–2; the lower score counts) and a blind A/B against the last release with identical sheet titles. Then verify every claim against full-resolution frames and live-rig numbers before acting on it. See references/review.md and templates/.

  8. Ship by the project's rules: tests, build, changelog with real screenshots, push, sizes, publish. Use the workflow-ship-change skill. If a pushed but unpublished release regresses, correct it in place with a follow-up commit; don't add a version for something players never saw.

  9. Show it. When asked for videos, capture at 30 fps on the move's own clock, place the Characters page and in-play views side by side, and play real speed then quarter speed (vidcompose.py + encode.swift).

The arm and hand rules

The rig has no twist or corrective bones; past these ranges the skin visibly wrings, crushes or stretches. Every frame of every strike stays inside them, on both bodies, measured on the real skinned mesh.

RuleLimit
Elbow flexion10–152°; the striking or drawing arm keeps ≥20° through the middle 80% of the move
Contact reachsword hand ≥60% of arm length from the shoulder at contact (reach into the blow, never lock)
Wristbend ≤50°, roll ≤45°; sword wrist capped at 40°; a drawing hand held straight
Twistforearm roll ≤52°, upper-arm roll ≤52°
Raise≤105° from hanging (shoulder skin crushes beyond); no overhead raises
Skinthe worst 1% of each arm or hand region's edges: stretch ≤2×, crush ≤3× against the bind
Handsalways in a pose: fist on a grip, hook on a string (set → loose → follow-through), relaxed when empty; never splayed or clawed
Pathshands ride their shoulders and arc about them between keys; blade keys stay reachable (25–115° off the forearm)

Full rules, with the reasons and the tests that enforce them, are in references/rules.md.

Techniques that worked

  • Shoulder-relative hands with arc interpolation. A fixed hand target that the lunging trunk drives the shoulder into crushes the arm, and a straight-line lerp folds the elbow shut mid-way.

  • Aim the forearm, not the wrist. With the wrist capped, the blade lands on the cone the forearm roll allows. To change the blade, change f.

  • Read blade keys in world space. With the trunk wound back about 70°, "over the sword shoulder" points across behind the head. Tilt the chamber tip-up so it reads as a diagonal.

  • Keep the follow-through moving.

    • Quick cut: carry the hand down past the shield-side hip on a bent elbow, with the blade still on the line.

    • Heavy cut: sink across, then rebound with the elbow folding.

    • Never hold an arm out at the foe with the blade hanging.

  • Bow draw. Anchor under the jaw beside the chin, where the hand stays in sight from both cameras. The draw elbow rides 6–8 cm under the arrow. Turn the hips side-on, which fixed draw-shoulder crush better than shrug or elbow poles. Hold the hook through the loose, then send the hand out past the shoulder rather than round the head.

  • Kinetic chain. Hips lead the chest, and the chest leads the arm. A bow's recoil answers the loose and never leads it.

Traps that each cost a round

references/traps.md has symptom → cause → fix for each. The short list:

  • Bone axes. The HumGen head bone is +Y forward and +Z down. Check any bone-local offset against mesh landmarks (face.mjs).

  • Masked failures. The first failing assertion hides every later move in the same test loop, and the first failing gender hides the other.

  • Camera reads.

    • A hand by the neck reads as "behind the head" from the game camera.

    • A blade pointing at the camera reads as "hanging".

    • An elbow bent in the view plane reads as straight.

  • Critic misreads. Thumbnails mislead critics. Check full-resolution frames and the live rig before changing anything.

  • Capture traps.

    • Never edit src while a capture runs.

    • After location.reload(), wait before evaluating the next script.

    • Hand-stepped frames are not FPS measurements.

Report

Lead with what changed in the moves and whether it is live. Then give:

  • a scores table: before → after, lower of the two critics, per surface;

  • the A/B result;

  • the faults still open, named by frame;

  • the tests added;

  • file and push sizes.

Say plainly when a score sits short of the target and why.

Files

references/rules.md

The combat animation standard

The project copy is docs/combat-animation-standard.md (Thornvigil). Every rule is either measured by a test (test) or scored by the blind reviewers from rendered frames. When you add a move type (a spell cast, a staff slam, a monster bite), add its own numbered section and extend the tests. Never loosen a limit just to pass: change a limit only when a measured trade-off forces it, and write the reason beside it (see the elbow band in rule 12).

Every attack

  1. Three phases on the game's clock.

    • The phases are anticipation (a readable wind-up that loads the body), the strike or release on the rule's contact frame, and a recovery back to the carried stance or a guard.

    • The strike is the fastest part. test: a sword tip peaks within 0.08 s of contact, and a bow's draw hand leaves the string faster than it ever drew.

  2. The body drives the arms.

    • Hips before shoulders, shoulders before elbow, elbow before wrist, with the pelvis turning at least 15° across a melee strike. test.

    • A bow's loose is the exception: the recoil answers the release and never leads it.

  3. Grounded feet. A step is a lift and a set-down, never a slide; the soles stay on the ground. test.

  4. No dead holds over 0.25 s. A held pose breathes, trembles or settles.

    • The critics always flag frozen post-impact holds, even when the arm is fine.

  5. Anatomy and silhouette.

    • No joint leaves its range or turns more than 35° in a frame. test (player-arm-anatomy).

    • The weapon reads against the body from every camera.

Arms and hands (rules 15–22)

Enforced on every frame of every strike, on both bodies, by tests/arm-ranges.test.js, sampled as gameplay samples them (30 Hz, gamePlayerMotion).

  1. Elbows bend, never lock or fold shut.

    • The elbow stays between 10° and 152°.

    • Through the middle 80% of a strike, the sword or drawing arm keeps at least 20°.

    • At contact the sword hand is at least 60% of the arm's length from the shoulder: reach into the blow, but never lock.

  2. Wrists stay in line.

    • The wrist bends at most 50° (twist removed) and rolls at most 45°.

    • A sword wrist is capped at 40° in the baker (WRIST_BEND 0.7 rad), and a drawing hand is held straight.

    • The forearm and shoulder carry the blade's line; the wrist only sets the edge.

  3. No wringing. Forearm roll and upper-arm roll each stay at or under 52°.

  4. No arm past 105° from hanging.

    • Measure it against the chest frame.

    • Shoulder skin crushes beyond it, so there are no overhead raises; a power shot sets just above the line.

  5. The skin stays whole.

    • The worst 1% of each region's skin edges (upper arm, forearm, hand, fingers, each side) stretch at most 2× and crush at most 3× against the bind.

    • It is measured on the real skinned body mesh, every other frame.

    • This is the arbiter when a joint rule and a look disagree.

  6. Hands are always in a pose.

    • A weapon hand closes on its grip.

    • A drawing hand hooks three fingers round the string with the thumb tucked, from the set to the loose and through the fly-back, relaxing only as it comes down.

    • An empty hand hangs relaxed. Never splayed, never clawed. test (hook beyond the relaxed hand).

  7. Hands ride their shoulders.

    • A key's hand target is authored against the stance and travels with its shoulder as the trunk lunges and turns.

    • Between keys the hand swings in an arc about the shoulder.

  8. Blade keys are reachable.

    • With a straight wrist a sword leaves the fist about 70° off the forearm, so a key's blade must lie 25–115° off its forearm.

    • Blade keys are world directions.

Melee (knight, sword and buckler)

  1. The blade never passes through the head, the buckler or the ground.

    • It stays more than 8 cm clear of the skull.

    • The tip stays more than 18 cm above the ground (knight-measure.mjs reports the clearances).

  2. The sword stays in front of the buckler.

    • The fist is never hidden behind the board and the blade never pierces it.

    • The board faces the foe in the cuts.

  3. Quick strike (0.3 s to contact, 0.92 s total). In order:

    • a short chamber, laid back over the sword shoulder on a bent, raised elbow, with the hips turned back;

    • a diagonal cut down across the body, led by the hips as the forearm turns over;

    • a follow-through that keeps moving, the hand carried on to the shield-side hip on a bent elbow with the blade still on the line;

    • a return to a middle guard.

  4. Heavy strike (0.67 s to contact, 1.57 s total). In order:

    • a rise onto the back leg, the blade laid back tip-up behind the sword shoulder on a bent elbow;

    • a step, and the hips dropping into the cut;

    • the blade coming over on the sword side of the head and crashing down on the line;

    • a sink across to the shield side and a rebound that folds the elbow;

    • a slow rise to guard.

  • Hand speed stays at or under about 18 m/s between samples; anything faster is a pop, not a swing. test (continuous hand path). The rig's joints never snap more than 0.55 rad per sample.

  • The blade at contact points through the target: forward more than 0.55, across more than 0.3, down more than 0.25. test.

Bow (archer)

The archery shot cycle as coached is stance, nock, set, set-up, draw, anchor, aim, release and follow-through.

  1. The draw hand stays on the string.

    • From the set to the release, the fingers stay within 6 cm of the line from the grip to the anchor.

    • The string is drawn back at least 35 cm.

    • The drawn string follows the fingers on both surfaces, and the bow rolls about its stave so the string faces the anchor.

  2. A nocked arrow is visible from the set to the release, never at rest and never after the loose.

  3. Anchor under the jaw, beside the chin (src/bow-anchor.js).

    • At full draw the fingers are within 8 cm of the anchor and never behind the head.

    • The draw elbow sits behind the hand, within 8 cm under the arrow. The band was widened from 5 cm because a higher elbow crushes the draw shoulder's skin past rule 19 on this rig.

    • The bow arm stays long (elbow bend under 25°).

    • test: the face's forward and down come from the standing body, not the bone's axes, and the fingers stay in front of the head through the draw.

  4. Side-on stance, head on the line.

    • The hips and chest turn toward side-on during the set (hips about −0.62 rad at full draw).

    • Once the shot is away, the stave passes at least 15 cm to the side of the face.

  5. The release snaps.

    • The string springs home at once.

    • The draw hand flies back along the jaw and out past the shoulder, elbow bent behind, never up round the back of the head.

    • The bow arm holds on the line for a beat, then lowers.

    • The hand comes down beside the body along a continuous path, never flung or wrapped behind the back.

    • The power shot holds a longer, trembling full draw and recoils harder.

    • test: the loose outpaces the draw, and the hand flies at least 5 cm past the jaw.

Adapting to a new move type

  • A staff, spell or two-handed weapon. Write its phases and contact on its rule clock. Add its prop clearance (head, ground, off-hand) to a measure probe, and add the move to MOVES in arm-ranges.test.js. Every arm rule applies unchanged.

  • Monsters. These have their own rigs. Re-derive the arm lengths, the shoulders, and every bone-local axis from mesh landmarks before reusing any number here.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Python, Needs Node.js

Security

What our scanner noticed· Low risk

  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Meng To
Publisher
Meng To (Community)
Source
MengTo/Skills · agent-skills/game-combat/game-dev-combat-animation · commit 5ea1661
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Meng To.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download game-dev-combat-animation.zip