mcpField
C
codeart2d

codeart2d

github.com/0x0funkyクリエイティブ・メディア4.6k53 回インストール3 週間前に更新
リポジトリ

codeart2d について

codeart2dは、テキスト仕様とスクリプトで2Dアートを制作するスキルです。コード描画を明示的に求める場合や画像生成ルートがない場合に使い、ピクセルアート、SVG、リグ、エフェクト、マップ、パララックスをプレビューと品質検査付きで生成します。

主な機能

  1. 01PixelSpecとポータブルSVGの描画
  2. 02アニメーションリグとエフェクトの構築
  3. 03オートタイルセットとプレイ可能なマップの作成
  4. 04パララックス背景と環境モーションの生成
  5. 05プレビューと品質検査を含む成果物のパッケージ化

活用シーン

  1. 01パレット違いのピクセルスプライトを描画
  2. 02リグ付きキャラクターアニメーションを制作
  3. 03継ぎ目検査付きの地形タイルを生成
  4. 04衝突判定とナビゲーションを備えた俯瞰マップを作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/0x0funky/agent-sprite-forge --skill codeart2d

インストール後、Claude Code で/codeart2dを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
examples/
dirt-path.material.json
hero.anim.json
hero.rig.svg
meadow-layout.json
palette.json
parallax-gen.json
plate-effects.json
potion-icons.svg
slash.fx.json
slime.pixelspec.json
walker16x24.pixelspec.json
water-grass.material.json
references/
fx-language.md
fx-runtime-contract.md
layouts-and-parallax.md
pixelspec.md
rasterizers.md
rig-animation.md
style-envelope.md
svg-profile.md
tiles-and-maps.md
references/runtime/
fx-template.mjs
references/schemas/
codeart.schema.json
common.schema.json
map.schema.json
sprite.schema.json
scripts/
ambient_bake.py
autotile_build.py
codeart_core.py

詳細

コードアート 2D

アートはテキスト(PixelSpec JSON、ポータブル SVG、リグ、FX、マテリアル、レイアウト、パララックスの各仕様)で記述し、スクリプトでレンダリング、チェック、パッケージ化します。画像モデルは使用しません。これは宣言されたアートソース(art_source: "code")であり、プレースホルダーではありません。

使用する場合

  • ユーザーがコードで描画するアートを明示的に求めている場合:PixelSpec または SVG スプライト、コードで描画するパレットのバリエーション、コードリグ、コード FX、継ぎ目を検証済みのオートタイルセット、コードで作成するレイアウト、様式化されたパララックスやアンビエントループ。
  • route_media.py が no-route(終了コード 3)を出力する場合:API キーが設定されておらず、ローカルの画像または動画ルートもありません。その旨を伝え、キーや CLI の追加も提案してください。
  • 画像モデルを支援するポーズやレイアウトのガイド(最終アートではなく、補助素材)。

使用しない場合

  • 画像または動画ルートが存在し、ユーザーがコードアートを求めていないあらゆるアートリクエスト:generate2dsprite、generate2dmap、video2dspriteで生成します。
  • 絵画調、有機的、または個性を強く表すアート、似顔絵、ポートレート、HD-2D の背景、テクスチャ付き地形、リアルな炎、煙、水。
  • ライセンスされたキャラクターを仕様にトレースすることは絶対に避けてください。

機能の確認(セッションごとに 1 回)

python "<skill-dir>/../generate2dmedia/scripts/route_media.py" resolve --kind image(または --kind video)を実行します。ルート名が表示された場合、ユーザーがコードアートを求めていない限り、画像または動画スキルがリクエストを処理します。同じフォルダー内の forge_doctor.py で全体像を確認できます。encoding.stdout で失敗した場合は、PYTHONUTF8=1 を設定します。SVG を扱う場合は、マシンごとに 1 回、svg_render.py doctor --report <new.json> も実行してください。

アートソース

このスキルは、ルートの順序における明示的な最終手段です。キーが設定されている場合は API、次にローカル画像ツール、その後にコードアートを使用します。コードアートを使うのは、ユーザーが求めた場合、またはルートが存在しない場合に限ります。生成アートの代わりとして、黙って使用してはいけません。描画する前に、style-envelope.mdでコードアートでうまく描画できるものとできないものを確認してください(この表は強みを示すもので、ルートの順序ではありません)。リクエストに画像モデルが必要な場合は、ユーザーに伝えてください。すべての結果について、「コード描画、画像モデル不使用」と明示してください(codeart-meta.json に "art_source": "code" が記録されます)。画像モデルの出力として提示してはいけません。

ホストに関する注意事項

  • **Codex:**このスキルは明示的なリクエストがあった場合のみ使用します。ユーザーがコードアートを求めていない限り、アートは image_gen と route_media.py で作成します。レビューシートは view_image で確認してください。
  • **Claude Code:**リクエストがあった場合、または no-route の後に限り使用します。報告する前に、すべての preview-*.png と review/*.png を Read で確認してください。ツールは Bash で実行します。<skill-dir> は ${CLAUDE_SKILL_DIR} です。
  • **Grok:**同じ Python ツールを実行します。ユーザーがコードアートを求めていない限り、アートはネイティブ画像ツールで作成します。

コマンド

各ツールは、ユーザーのプロジェクトルートから 1 行のコマンドとして実行します:python "<skill-dir>/scripts/<tool>.py" ...。<skill-dir> はこのスキルのフォルダーです。兄弟スキルはその隣にあります(--build-clips は <skill-dir>/../generate2dsprite/scripts/build_animation_clips.py を呼び出します)。仕様と出力はプロジェクト内に保管してください。すべてのツールは新しい --output-dir に書き込みます。既存のディレクトリーは拒否し、完全な結果だけを公開します。--strict-qc を指定した場合、チェックに失敗すると何も公開しません。成功時は JSON の 1 行を出力し、エラー時は error: ... を出力して終了コード 1 で終了します。使用方法のエラーは終了コード 2 で終了します。コピーして使える例は examples/ にあります。

依存関係:すべての処理に numpy と Pillow が必要です。PixelSpec のレンダリングと pixel_qa.py には、それ以外の依存関係はありません。SVG アートには、次のいずれかのラスターライザーも必要です:resvg-py(python -m pip install "resvg-py>=0.5,<0.6"、推奨)、PATH 上の resvg-js CLI、または Chrome/Edge(CHROME_PATH を設定)(rasterizers.md)。PyMuPDF、skia-python、cairosvg は絶対に使用しないでください。crispEdges、<style>、clipPath、グラデーションが黙って無視されます。fx_verify.mjs には node が必要です。

こんにちは、スプライト

  1. gem.pixelspec.json を作成します(pixelspec.md の「Hello sprite」ブロックを参照)。
  2. python "<skill-dir>/scripts/render_pixelspec.py" --spec gem.pixelspec.json --output-dir out/gem-v1 --preview-scale 8 --strict-qc を実行します。
  3. out/gem-v1/preview-x8.png を開きます。フレームは out/gem-v1/<variant>/frames/ にあります。
  4. コードで描画されていること(画像モデルは使用していないこと)をユーザーに伝えます。

パイプライン

必要なもの方法
パレットバリアントに対応したピクセルキャラクター、プロップ、またはエフェクトPixelSpec(pixelspec.md)を作成し、続けて render_pixelspec.py --spec <spec> --output-dir <new> --build-clips --strict-qc を実行します。pixel_qa.py で確認します
フラットなベクターキャラクター、プロップ、UI、またはアイコンセットパレットクラスを使ったポータブル SVG(svg-profile.md)を作成し、続けて svg_render.py render --svg <svg> --palette <palette.json> --output-dir <new> --zoom N を実行します
SVG 図形で描いた鮮明なピクセルアートsvg_render.py render --crisp --zoom N --strict-qc
レンダリング前の SVG の確認svg_render.py lint --svg <svg> --profile portable(--compile --palette <p> を追加します)
足を地面につけたまま歩く、待機する、または攻撃する小型キャラクターリグ SVG と rig_anim.v1 ファイル(rig-animation.md)を作成し、続けて rig_animate.py --rig <svg> --anim <json> --output-dir <new> --build-clips --strict-qc を実行します。review/*.png を確認します
斬撃、火花、衝撃リング、ヒットフラッシュ、ほこり、飛び道具fx.v1 仕様(fx-language.md)を作成し、続けて fx_build.py --spec <json> --output-dir <new> --build-clips --export-runtime を実行します。ピクセルゲーム用のベイク済みフレーム、またはゲームプレイのタイミングに合わせるエフェクト用の fx-runtime.mjs を使用します(fx-runtime-contract.md)
fx.v1 ランタイムの確認node "<skill-dir>/scripts/fx_verify.mjs" <module.mjs> --report <file>
地形の遷移、水辺に接する道路、地面を通る小道、壁、段差マテリアル仕様を作成し、続けて autotile_build.py --material-spec <json> --output-dir <new> --strict-qc を実行します(Wang-16、3 種類のマテリアル、blob-47、ベベル。tiles-and-maps.md を参照)
正確なタイルマスク内に収まる画像ツールのテクスチャautotile_build.py --material-texture NAME=PATH --quantize-textures(継ぎ目なくつながるタイルを 1 つ作成します)
プレイ可能なトップダウンマップ:道路、プロップ、出口、衝突判定、到達可能性layout_build.py --spec <layout.json> --output-dir <new> --preview --strict-qc を実行します(実際のタイルを使用する場合は --tiles <tileset manifest>)。debug.png を開きます(layouts-and-parallax.md)
スタイライズされたパララックス背景parallax_build.py --spec <parallax.json> --output-dir <new> --validate --sweep-frames 49 を実行します。sweep-sheet.png を確認します
静止画上のアンビエントモーションambient_bake.py --plate <png> --spec <effects.json> --output-dir <new> --preview --strict-qc を実行し、generate2dmap scene_motion.py でエンコードします
ピクセルフレームの QApixel_qa.py --input "<glob>" --palette <palette, spec or codeart-meta.json> --review <new.png> --onion --strict --report <new.json>

受け渡し:クリップは generate2dsprite export_engine.py に渡します(generate2dsprite.py process は使用しないでください)。レイアウトの map_bundle.v2 は generate2dmap map_bundle.py validate、map_nav.py check、および export_tiled.py/export_godot.py/export_ldtk.py に渡します。

ルール

  • SVG(ポータブルプロファイル。リンターで強制):ルートの幅と高さは整数の viewBox に合わせます(1 単位=論理ピクセル)。色には class="c-NAME" を使用します。ボーンは transform="rotate(a cx cy)" で回転させます。<text>、<image>、feTurbulence、feDisplacementMap、mix-blend-mode は使用しません。ピクセルアートでは shape-rendering="crispEdges" を追加し、グラデーション、マスク、フィルター、opacity は使用しません。
  • タイルセットは公開前に継ぎ目のないことを証明します。アトラスから組み立てたタイルを、セットで許可されるすべての隣接パターンについて、独立したグローバルレンダーとピクセル単位で比較します。この証明なしに --strict-qc が合格することはありません。
  • クリップをビルドする前に、空の FX 末尾フレームを削除します。ビルダーは完全に透明なフレームを拒否します。
  • 横視点の歩行・走行サイクル:手前と奥の脚には、はっきりとした明度差をつけます(奥の脚は 2 段階以上暗くし、同じように見える暗色を 2 色使わないでください)。腕または前脚は見える状態に保ちます(スカーフ、マント、バッグの下に隠さないでください)。render_pixelspec.py は、歩行・走行クリップのフレーム i と i+n/2 のシルエットが一致する場合(IoU >= 0.95)、half_cycle_duplicates の警告を出します。脚を修正するか、レビュ​​ーシートで歩幅が読み取れることを確認した後に限り、--allow-duplicate-half-cycle を渡してください。
  • コード描画フレーム(art_source=code)に対する generate2dsprite sheet_qc.py frames:identity_residual と torso_drift は参考情報です。頭部とルートはコードで固定されているため、目視で評価してください。near_duplicates と leg_alternation は実際の問題として扱ってください。

受け入れ条件

報告する前に、ゲームサイズと 1x でプレビューとレビューシートを確認してください(レビュー手順は style-envelope.md を参照)。JSON サマリーから QA ステータスと失敗したチェックを引用してください。公開された各 QA エンベロープについて、WARN または FAIL のチェックをすべて(id、value、threshold、files)原文どおりに報告してください。公開されたエンベロープに WARN が 1 つでもある場合、「すべてのチェックに合格しました」とは決して記載しないでください。仕様、レンダリング済みフレームまたはタイル、クリップまたはバンドル、codeart-meta.json、開示文を納品してください。データ契約は references/schemas/codeart.schema.json にあります。

コメント