ai21.net
言語

ピクセルアートの魔法使いが呪文を唱えるアニメーション

ピクセルアートの魔法使いが呪文を唱えるアニメーション — 1ピクセルアートの魔法使いが呪文を唱えるアニメーション — 2ピクセルアートの魔法使いが呪文を唱えるアニメーション — 3

プロンプト

Create a single self-contained HTML file that renders an animated pixel art wizard casting a spell, using vanilla JavaScript and Canvas 2D. No external assets, libraries, or network requests.

RENDERING
- Draw everything to an offscreen canvas at a fixed logical resolution of 128x96, then blit to a fullscreen display canvas scaled by the largest integer factor that fits the window, centered, with imageSmoothingEnabled = false and CSS image-rendering: pixelated.
- All drawing snaps to integer coordinates on the logical canvas. No sub-pixel positions, anti-aliasing, gradients, or shadowBlur.
- Fixed palette of ~24 hex colors: deep blues/purples for night sky, warm robe tones, 3-4 bright magic colors. Every pixel comes from this palette.

CHARACTER
- Build the wizard procedurally from filled rects and pixel runs, ~24x32 logical pixels: pointed hat with a bend, long beard, two-shade robe with darker outline, staff with a gem at the tip.
- Parameterize the pose (staff angle, arm raise, head tilt, robe sway). Animate parameters smoothly, then quantize to the pixel grid each frame so motion reads at an 8-12 fps pixel animation feel even though the loop runs at 60fps.

ANIMATION
- Looping state machine: IDLE (2-frame bob, beard sway) -> CHARGE (staff raises, gem flickers, sparks spiral inward) -> CAST (bright burst, projectile fires across the scene, 1-2 pixel screen shake) -> RECOVER (settle back). Ease pose parameters between keyframes.
- Pooled allocation-free particle system: preallocate and reuse. Sparks orbit the gem during CHARGE, explode outward on CAST, each particle stepping its palette index from white to magic color to dark before despawn. Snap particle positions to the grid when drawing.
- Fixed 60hz timestep update with rAF rendering. Zero object allocation inside the loop.

SCENE
- Minimal background: dark sky, a few twinkling 1px stars, moon, stone floor line. Character silhouette must read clearly.
- Subtle 1px rim light on the wizard from the gem, brightening during CHARGE and CAST.

QUALITY BAR
- Crisp pixels at any window size, seamless loop, stable 60fps, readable silhouette. Should look like a polished 16-bit sprite animation, not vector shapes scaled down.

日本語訳

素の JavaScript と Canvas 2D を使用して、ピクセルアートの魔法使いが呪文を唱えるアニメーションを描画する、単一の自己完結型 HTML ファイルを作成してください。外部アセット、ライブラリ、ネットワークリクエストは一切使用しないでください。

レンダリング
- すべてを 128x96 の固定論理解像度のオフスクリーンキャンバスに描画し、その後、ウィンドウに収まる最大の整数倍率で拡大して中央揃えしたフルスクリーンの表示キャンバスに転送します。imageSmoothingEnabled = false、CSS の image-rendering: pixelated を指定します。
- すべての描画は論理キャンバス上の整数座標にスナップさせます。サブピクセル位置、アンチエイリアス、グラデーション、shadowBlur は使用しないでください。
- 約 24 色の 16 進カラーの固定パレット:夜空用の深いブルー/パープル、暖かいローブの色調、3〜4 色の鮮やかな魔法色。すべてのピクセルはこのパレットから取得します。

キャラクター
- 塗りつぶした矩形とピクセルランから魔法使いをプロシージャルに構築します。論理ピクセルで約 24x32:折れ曲がった先のとがった帽子、長いひげ、暗い輪郭線を持つ 2 色階調のローブ、先端に宝石が付いた杖。
- ポーズ(杖の角度、腕の上げ具合、頭の傾き、ローブの揺れ)をパラメータ化します。パラメータを滑らかにアニメーションさせ、各フレームでピクセルグリッドに量子化することで、ループが 60fps で動作していても、8〜12fps のピクセルアニメーションの質感で動きが伝わるようにします。

アニメーション
- ループするステートマシン:IDLE(2 フレームの上下動、ひげの揺れ)→ CHARGE(杖が上がり、宝石が明滅し、火花が内側へ螺旋状に集まる)→ CAST(明るいバースト、飛翔体がシーンを横切って発射され、1〜2 ピクセルの画面揺れ)→ RECOVER(元の姿勢に戻る)。キーフレーム間でポーズパラメータをイージングします。
- プール方式のアロケーションフリーなパーティクルシステム:事前に確保して再利用します。CHARGE 中は火花が宝石の周囲を周回し、CAST で外側へ爆発します。各パーティクルは、消滅する前にパレットインデックスを白から魔法色、そして暗色へと段階的に進めます。描画時にはパーティクル位置をグリッドにスナップします。
- rAF レンダリングによる固定 60Hz のタイムステップ更新。ループ内でのオブジェクト割り当てはゼロ。

シーン
- 最小限の背景:暗い空、またたく 1px の星をいくつか、月、石床のライン。キャラクターのシルエットははっきりと読み取れる必要があります。
- 魔法使いには宝石からの繊細な 1px のリムライトを当て、CHARGE と CAST の間は明るくします。

品質基準
- どのウィンドウサイズでもピクセルが鮮明で、シームレスにループし、60fps が安定し、シルエットが読み取れること。ベクターシェイプを縮小したものではなく、洗練された 16 ビットのスプライトアニメーションのように見えるべきです。

出典

原作者
zacxbt
公開日
2026-09-22(由推文 ID 反解)
原典
元の投稿を見る ↗
収録元
yihui-dev/awesome-opus5-5-videos · zacxbt-944604 · MIT
yihui-dev/awesome-opus5-5-videos · majidmanzarpour-927543 · MIT
zhuyansen/awesome-opus-5.5-video · 2102476258948927543 · ライセンス未表明
この項目は 3 件の出典を統合・重複排除して作られました