sprite-animator について
sprite-animatorは、画像からループするピクセルアートGIFを作るコマンドラインツールです。Geminiで16フレームのスプライトシートを生成し、複数のアニメーションプリセットを利用できます。
主な機能
- 01画像からGIFアニメーションを作成
- 02Geminiによる16フレームのスプライトシート生成
- 03待機・手振り・バウンス・ダンスのプリセット
- 04写真向けの任意のピクセル化処理
- 05スプライトシートと各フレームの書き出し
活用シーン
- 01写真をピクセルアートのキャラクターアニメに変換
- 02イラストから待機や動作のループを作成
- 03生成したフレームを後から編集するために保存
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ olafs-world/ sprite-animator --skill sprite-animatorインストール後、Claude Code で/sprite-animatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
pyproject.toml.gitignoreLICENSEREADME.mduv.lock.github/workflows/ci.ymlsprite_animator/cli.py__init__.pytemplate.py詳細
Sprite Animator
任意の画像を、アニメーション付きのピクセルアートスプライト GIF に変換します。Gemini の画像生成を使って 16 フレームのスプライトシートを作成し、ループ GIF に組み立てます。
要件
GEMINI_API_KEYまたはGOOGLE_API_KEY環境変数を設定する必要があります- インストール:
uv tool install sprite-animator(単発で実行する場合はuvx sprite-animator)
クイック使用方法
# Best quality for photos — two-step converts to pixel art first, then animates
sprite-animator -i photo.png -o dance.gif -a dance --two-step -s 256 -r 2K
# From drawings or pixel art (single step is fine)
sprite-animator -i drawing.png -o idle.gif -a idle -s 256 -r 2K
アニメーションの種類
idle— ゆっくり呼吸し、まばたきします(デフォルト)wave— 腕を上げる → 手を振る → 元に戻すbounce— しゃがむ → ジャンプする → 着地するdance— 体を傾ける、回転する、ジャンプする — パーティーモード全開
主なオプション
| フラグ | 説明 | デフォルト |
|---|---|---|
-i | 入力画像のパス | 必須 |
-o | 出力 GIF のパス | 必須 |
-a | アニメーションの種類(idle/wave/bounce/dance) | idle |
-s | 出力スプライトのサイズ(px) | 128 |
-r | 生成解像度(1K/2K) | 1K |
-d | フレームの表示時間(ms) | 100 |
--two-step | 最初にピクセル化し、その後アニメーション化します(写真に適しています) | オフ |
--keep-sheet | 元のスプライトシートを保存します | オフ |
--keep-frames | 個別のフレーム PNG を保存します | オフ |
ヒント
- 実在する人物の写真には
--two-stepを使用してください。そうしないと、Gemini は元の人物らしさを再現できません - 品質を大幅に向上させるには
-r 2Kを使用してください - より自然な再生速度にするには
-d 180を使用してください(デフォルトの 100ms は速めです) - 出来の良いベースのピクセルアートスプライトを保存して、別のアニメーションにも再利用してください
- Telegram では、MP4 への変換を避けるため、GIF をドキュメントとして送信してください
Python API
from pathlib import Path
from PIL import Image
from sprite_animator.cli import ANIMATION_PRESETS, generate_sprite_sheet, create_gif, call_gemini, get_api_key
from sprite_animator.template import create_template, extract_frames
api_key = get_api_key()
preset = ANIMATION_PRESETS["dance"]
# Create template and generate sprite sheet
template = create_template(cols=4, rows=4, labels=preset["labels"])
template.save("template.png")
generate_sprite_sheet(
api_key=api_key,
input_image=Image.open("input.png"),
template_path=Path("template.png"),
output_path=Path("sheet.png"),
prompt=preset["prompt"],
resolution="2K",
)
# Extract frames and build GIF
frames = extract_frames(Image.open("sheet.png"), cols=4, rows=4)
create_gif(frames, Path("output.gif"), frame_duration=180, size=256)
コメント
Markdown 対応