by bayshier
pixelfx 中文版:244 种代码实时生成的顶级游戏像素特效(爆炸/闪电/魔法/连招),MIT 可商用,附 Claude Code 特效师 Skill,汉化自 patch-gg/pixelfx
# Add to your Claude Code skills
git clone https://github.com/bayshier/pixelfx-zhGuides for using ai agents skills like pixelfx-zh.
See how pixelfx-zh compares with popular alternatives.
pixelfx-zh is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by bayshier. pixelfx 中文版:244 种代码实时生成的顶级游戏像素特效(爆炸/闪电/魔法/连招),MIT 可商用,附 Claude Code 特效师 Skill,汉化自 patch-gg/pixelfx. It has 51 GitHub stars.
pixelfx-zh's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/bayshier/pixelfx-zh" and add it to your Claude Code skills directory (see the Installation section above).
pixelfx-zh is primarily written in JavaScript. It is open-source under bayshier on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh pixelfx-zh against similar tools.
No comments yet. Be the first to share your thoughts!
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
244 pixel art effects and animations, every one a small piece of code. Fire, explosions, magic, weather, UI, pickups, critters and more. Play them live, recolor and mirror them, drop them into a browser game, or export sprite sheets for any engine. Plus a Claude Code skill that makes new ones the way a picky pixel artist would: draft, render, look, refine.
Every effect that involves a character is acted out: he winds up, lets go, freezes on contact and recovers, and a target takes the hit. Twelve whole moves chain the effects into attacks from wind-up to recovery.
open the gallery · catalog · acting · the skill · make your own · how it works
The method is Hugo Duprez's, from How to make (good) pixel art effects with
Claude: code is clay, trust your
eyes, feed your references. His open-source effects at Sprite Fusion
set the bar, and src/core/sim.js and the effects that say so at the top adapt his code. This repo is our take on
the idea at library scale, with a skill to keep going.
| category | effects | some of them |
|---|---|---|
| moves | 12 | arrow shot, dash strike, earth stomp, fireball throw, ground pound, holy smite… |
| fire | 12 | brazier, campfire, candle, fire breath, fire ring, fire tornado… |
| explosions | 12 | barrel explosion, big explosion, cartoon pow, dirt explosion, firework burst, firework rocket… |
| water | 12 | bubbles, drip, fountain, geyser, rain splash, ripples… |
| ice | 10 | blizzard vortex, freeze, frost breath, frost nova, ice crystal, ice lance… |
| lightning | 11 | ball lightning, chain lightning, charge up, electrified, lightning strike, plasma ball… |
| sci-fi | 12 | emp blast, energy core, force field, glitch, hologram, jetpack… |
| melee | 12 | claw swipe, dagger flurry, double slash, hammer smash, heavy cleave, scythe reap… |
| impacts | 11 | blunt hit, bullet impact, critical hit, ground slam, heavy landing, hit flash… |
| projectiles | 13 | arrow, bullet tracer, cannon shot, energy disc, signal flare, homing missile… |
| spawn & death | 10 | coin drop, disintegrate, dissolve burn, egg hatch, poof, respawn beam… |
| arcane | 12 | arcane beam, arcane missiles, arcane orb, blink in, blink out, magic circle cast… |
| holy | 10 | blessing, divine shield, feather burst, halo, heal, healing ring… |
| shadow | 12 | black hole, curse, dark explosion, eclipse, grasping hands, hex sigil… |
| status | 13 | bleeding, burning, charmed, confused, cursed, frozen… |
| nature | 13 | acid splash, boulder, earth spike, healing bloom, leaf storm, poison cloud… |
| weather | 12 | aurora, blizzard, cherry blossoms, clouds, falling leaves, fireflies… |
| ui | 12 | achievement, coin collect, combo counter, confetti, countdown, crit number… |
| pickups | 11 | chest open, coin spin, collect burst, crystal shard, gem spin, heart pickup… |
| transitions | 10 | blinds, burn away, crt off, diamond wipe, glitch wipe, iris… |
| critters | 12 | bat, bird, butterfly, eyeball, fish school, flying skull… |
Every effect is a file in src/fx/<category>/<name>.js. The catalog lists them all.
In a browser game (canvas, Phaser, PixiJS, Kaplay, three.js), use the code. No dependencies.
import { createFrame, clearFrame, createFx, composite } from "pixelfx";
import * as frostNova from "pixelfx/fx/ice/frost-nova";
const frame = createFrame(320, 180); // your game's pixel resolution
const img = new ImageData(320, 180);
const fx = createFx(frostNova, { x: 160, y: 140 }); // also: flip, angle, seed, palette, light...
function tick(dt) {
fx.update(dt);
clearFrame(frame);
fx.draw(frame, "back"); // behind characters
drawCharacters();
fx.draw(frame, "front");
composite(frame, img.data, backgroundColor); // color, then light added on top
ctx.putImageData(img, 0, 0); // scale up with image-rendering: pixelated
}
Install from GitHub with npm i github:patch-gg/pixelfx, or copy src/core and the effects you want.
In any engine (Godot, Unity, GameMaker, Defold, LÖVE, Bevy), use sprite sheets:
node tools/render.mjs ice/frost-nova --sheet
That writes a transparent PNG of every frame in a grid and an Aseprite-style JSON (frame rects, durations, and
meta.pixelfx with fps, loop, columns and the pivot). Phaser's atlas loader and the Aseprite importers for Godot
and Unity read it. node tools/sheets.mjs exports the whole library to sheets/.
Any effect takes a palette (a dark-to-bright ramp of hex colors), so a fire can burn blue and a heal can glow
pink without touching its code:
node tools/render.mjs fire/torch --gif --opts '{"palette": ["#102","#215","#43a","#8cf","#cff","#fff"]}'
An effect on its own looks like a sticker. What sells a hit is the body around it: the wind-up that says something is coming, the freeze on contact, the target rocking back, the recovery. So the 61 effects with a character, and the 12 moves, say what the body does and when:
export const act = {
target: { x: 58 },
poses: [
[-0.55, GUARD], // he starts before the effect does (t = 0 is the effect's first frame)
[-0.3, WIND_UP],
[0, CUT, "snap"], // "snap" holds the last pose and jumps on the key
[0.06, FOLLOW_THROUGH, "snap"],
[0.86, GUARD],
],
hits: [{ t: 0.06, stop: 0.14, shake: 0.18, amp: 2, push: 2.8, straw: 18 }], // freeze for 0.14 s on contact
};
Play the whole thing, character and target included, by swapping createFx for createAct:
import { createFrame, clearFrame, createAct, composite } from "pixelfx";
import * as slash from "pixelfx/fx/melee/sword-slash";
const act = createAct(slash, { x: 80, y: 140 });
function tick(dt) {
act.update(dt); // holds still by itself during a freeze
clearFrame(frame);
act.draw(frame); // { body: false } and { target: false } leave them out
composite(frame, img.data, backgroundColor);
const [sx, sy] = act.shake; // throw the picture this far
ctx.putImageData(img, sx, sy);
}
Got your own character? Effect ids haven't changed and a sprite sheet is still the effect alone, so existing games
keep working. (Effects drawn on the body paint the stock dummy, so regenerate those if you ship them.) The timing is plain data: read slash.act, or meta.pixelfx.act in a sprite sheet's
JSON (windup, recovery, hits with t and freeze, poses). Start your own wind-up animation that long before the effect, and
stop updating everything for freeze seconds at each hit.
Effects drawn on the body (frost, poison, a scan line) are written against the standing character and follow him
wherever he goes: each pixel of a pose knows which pixel of the standing body it came from. node tools/act.mjs <id> --sheet bakes a whole act, character included, into a sprite sheet.
The body is yours to use too: skeleton(pose) gives you every joint of a pose in 3D, to hang your own things on, and
posedParts(pose) gives you each part drawn on its own.
The pixelfx skill teaches Claude Code to find, use, export and make effects. Install it as a plugin:
/plugin marketplace add patch-gg/pixelfx
/plugin install pixelfx@pixelfx
or copy skills/pixelfx into ~/.claude/skills/. Then ask for what you want:
node tools/new.mjs arcane/my-spell # a working starting point (add --loop for a loop)
node tools/render.mjs arcane/my-spell # records/arcane/my-spell/contact.png: look at it
node tools/check.mjs arcane/my-spell # spills, seams, unseeded randomness, slow frames
Then go round: look at the contact sheet, fix the worst thing, render again. --gif and --mp4 show the motion,
--all shows every frame. node tools/act.mjs arcane/my-spell shows an act as consecutive 12 fps steps, because motion
bugs don't show in samples. docs/AUTHORING.md has the contract, the drawing API and the quality
bar. node tools/serve.mjs runs the gallery locally with your effects in it.
draw(p, t, o), the frame at t seconds from t alone, so
loops tile with no seam. Simulated effects export create(o) and step real particles, debris and lights at 120 Hz,
so sparks bounce and smoke rolls the same at any frame rate.color takes pixels: opaque, dithered or truly translucent. light takes additive glow, added on
top. Hot things look hot because of the light buffer.