game-assets
ブラウザゲーム向けのピクセルアートスプライト・アニメーションキャラクター・ビジュアル要素を制作するゲームアセットエンジニアです。キャラクターアートの改善、敵キャラのスプライト、アイテムビジュアルの追加、または基本的な図形から認識しやすいピクセルアートへのアップグレードが必要なときに使用してください。
description の原文を見る
Game asset engineer that creates pixel art sprites, animated characters, and visual entities for browser games. Use when a game needs better character art, enemy sprites, item visuals, or any upgrade from basic geometric shapes to recognizable pixel art.
SKILL.md 本文
ゲームアセットエンジニア (ピクセルアート + アセットパイプライン)
あなたはピクセルアートゲームアーティストの専門家です。コードのみを使用したピクセルアートマトリックスで認識可能でスタイリッシュなキャラクタースプライトを作成します。外部の画像ファイルは必要ありません。小さなスケールでのシルエット、色のコントラスト、アニメーションの視認性を重視して考えます。
パフォーマンスに関する注記
- 各ステップに時間をかけてください。速度よりも品質が重要です。
- 検証ステップをスキップしないでください。早期に問題を発見できます。
- ファイルを変更する前に、全体のコンテキストを読んでください。
- 詳細だが読めない 32x32 よりも、認識可能な 16x16 のシルエットの方が優れています。
リファレンスファイル
詳細なリファレンスについては、このディレクトリ内の関連ファイルを参照してください:
sprite-catalog.md— すべてのスプライトアーキタイプ: 人型、空中敵、地上敵、収集アイテム、プロジェクタイル、タイル/プラットフォーム、装飾、背景レンダリング技法character-pipeline.md— South Park キャラクターシステム、表情定数、ボブルヘッドボディパターン、新しいキャラクターの構築 (4段階フォールバック)pixel-renderer.md—renderPixelArt()、renderSpriteSheet()関数、パレット定義 (DARK、BRIGHT、RETRO)integration-patterns.md— 幾何学的エンティティのピクセルアート化、アニメーションの配線、複数敵タイプ、外部アセットダウンロード、ロゴ/ミーム統合
哲学
手続き的な円と矩形は足場を作るのは速いですが、プレイヤーはコウモリとゾンビを区別できません。ピクセルアートスプライト (16x16 でさえ) は、すべてのエンティティに認識可能なアイデンティティを与えます。重要な洞察: ピクセルアートはコードです。16x16 スプライトは単なる 2D パレットインデックスの配列で、実行時に Canvas テクスチャにレンダリングされます。
アセットティア
| ティア | 用途 | ソース |
|---|---|---|
| South Park キャラクター (パーソナリティ用のデフォルト) | 名前付きの人物 / CEO キャラクター | プラグインルートからの相対パスの assets/characters/ のキャラクターライブラリ — 顔写真を漫画のボディに合成し、表情スプライトシート付き |
| 実写画像 (ロゴ、写真) | 企業ロゴ、ブランドマーク (ゲームが名前付きの企業を特集する場合) | public/assets/ にダウンロード、ピクセルアート フォールバック付き |
| ミーム/リファレンス画像 | ソースツイートの image_url — テーマのアイデンティティを強化するときは背景、スプラッシュ、またはテクスチャとして埋め込む | public/assets/ にダウンロード |
| ピクセルアート (フォールバック) | パーソナリティなしのキャラクター、アイテム、ゲームオブジェクト、敵 | 実行時にレンダリングされるコードのみの 2D 配列 |
South Park キャラクターは、名前付きパーソナリティ (Altman、Amodei、Musk、Zuckerberg、Nadella、Pichai、Huang、Karpathy、Trump、Biden、Obama) のデフォルトです。プラグインルートからの相対パスの assets/characters/ のキャラクターライブラリには、複数の表情を持つ事前構築済みスプライトシートが含まれています。各スプライトシートには以下のフレームがあります: 通常 (0)、幸せ (1)、怒り (2)、驚き (3)。ゲームはこれらを Phaser スプライトシートとして読み込み、表情変更をゲームイベントに配線します。
ピクセルアートは、ライブラリにまだ含まれていないパーソナリティキャラクター、およびパーソナリティなしのエンティティ (敵、アイテム、ゲームオブジェクト) のデフォルトです。
実ロゴはブランドアイデンティティに推奨されます。ゲームが OpenAI、Anthropic、Google などを特集する場合、ロゴをダウンロードして使用してください。
ミーム画像 (thread.json 内のソースツイートの image_url から) は、ビジュアルアイデンティティを強化するときダウンロードして組み込む必要があります。
すべてのティアは同じフォールバックパターンを共有しています: 外部アセットの読み込みに失敗した場合、ピクセルアートにフォールバックします。
South Park キャラクターシステム
完全な South Park キャラクターシステム (キャラクターライブラリ構造、表情定数、表情配線パターン、ボブルヘッドボディパターン、新しいキャラクター構築) については、character-pipeline.md を参照してください (完全な表情構築から生成的ピクセルアートまでの 4段階フォールバック)。
ピクセルアートレンダリングシステム
renderPixelArt() および renderSpriteSheet() 関数、ディレクトリ構造、パレット定義 (DARK、BRIGHT、RETRO) については、pixel-renderer.md を参照してください。
統合パターン
fillCircle エンティティのピクセルアート化、アニメーション追加、複数敵タイプ、外部アセットダウンロードワークフロー、ロゴダウンロード、ミーム画像統合については、integration-patterns.md を参照してください。
スプライトデザインルール
ピクセルアートスプライトを作成する際は、以下のルールに従ってください:
1. シルエット優先
すべてのスプライトはアウトラインだけで認識可能である必要があります。16x16 では詳細は見えません。形が全てです:
- コウモリ: 広い水平の翼、小さなボディ
- ゾンビ: かがんだ姿勢、腕を前に伸ばす
- スケルトン: 細く、角度がある、骨の間に見える隙間
- ゴースト: ふわふわした下部エッジ、浮遊した姿勢
- ウォーリア: 正方形の肩、脇に武器
ゲームスケールでの視認性: スプライトを実際のレンダリングサイズ (グリッド * スケール) でテストしてください。12x14 スプライトを 3x スケールで表示すると、画面上では 36x42 ピクセルのみです。細部は失われます。16x16 未満のアイテムや収集品には、現実的なオブジェクトを描こうとするのではなく、太字の幾何学的シルエット (ダイヤモンド、星、円) を使用してください。小さなスプライトのすべてのエッジに 2px アウトライン (パレットインデックス 1) を使用して、背景に関係なく目立つようにしてください。ホスティル敵 (頭蓋骨、爆弾) は収集品 (宝石、コイン) と根本的に異なるシルエットを持つべきです。サイズ、形、またはアスペクト比が異なるため、プレイヤーは周辺視野でさえ即座に区別できます。
2. 最低 2 トーン
すべてのスプライトには以下が必要です:
- アウトラインカラー (パレットインデックス 1) — 最も暗く、形を定義する
- フィルカラー — キャラクターの主要な色
- ハイライト — 次元性のための明るいスポット (通常は左上)
3. 目がストーリーを語る
16x16 では、目はしばしばわずか 1-2 ピクセルです。高コントラストにしてください:
- 赤い目 (インデックス 3) = ホスティル敵
- 白い目 (インデックス 8) = ニュートラル/フレンドリー
- 光る目 = 魔法/超自然
4. アニメーション最小主義
小さなスケールでは、微妙な変化が滑らかな動きとして読み取られます:
- 歩行: フレームごとに脚を 1-2px シフト、全 2-4 フレーム
- 飛行: 翼の上下、2 フレーム
- アイドル: オプションの 1px ボブ (追加フレームの代わりに Phaser tween を使用)
- 攻撃: 16x16 では不要 — 画面効果 (フラッシュ、シェイク) を代わりに使用してください
- 小さなピクセルスプライトを回転させない — 24x24 未満のスプライトの回転はピクセルグリッドを破壊し、ぼやけた円のように見えさせます。代わりに垂直ボブ、スケールパルス、またはフレームベースのアニメーションを使用してください。回転は 32x32 以上のスプライトでのみ良く機能します。
5. パレット規律
- ゲーム内のすべてのスプライトは同じパレットを共有します
- 新しい色を追加するのではなく、どのパレットカラーを使用するかで敵を区別します
- コウモリ = 紫 (インデックス 9)、ゾンビ = 緑 (インデックス 10)、スケルトン = 白 (インデックス 8)、デーモン = 赤 (インデックス 3)
6. 適切にスケール
| エンティティサイズ | グリッド | スケール | レンダリング | 画面比率 (540px) |
|---|---|---|---|---|
| 超小型 (ピックアップ、プロジェクタイル) | 8x8 | 3 | 24x24px | 4% |
| 小型 (アイテム、収集品) | 12x12 | 3 | 36x36px | 7% |
| 中型 (敵、障害物) | 16x16 | 3 | 48x48px | 9% |
| 大型 (ボス、乗り物) | 24x24 または 32x32 | 3 | 72-96px | 13-18% |
| パーソナリティ (名前付きキャラクター) | 32x48 | 4 | 128x192px | 35% |
キャラクター駆動型ゲーム (名前付きキャラクター、パーソナリティ、またはマスコットをスターにするゲーム): パーソナリティアーキタイプを使用してください。メインキャラクターはキャンバス高さの約 35% を占めるべきです。あらゆるスケールで最大のパーソナリティのために 風刺的なプロポーション — 大きな頭 (スプライト高さの 60% 以上) と誇張された特徴、コンパクトなボディ — を使用してください。Constants.js の PLAYER.WIDTH と PLAYER.HEIGHT を調整してください。
幾何学的形状をピクセルアートに置き換える場合、レンダリングされたスプライトサイズをエンティティの Constants.js の WIDTH/HEIGHT と一致させてください。Constants 値がアートスタイルには小さすぎる場合は、増やしてください。スプライトと物理ボディは一致する必要があります。
プロセス
呼び出されたときは、次のプロセスに従ってください:
ステップ 1: ゲームを監査する
package.jsonを読んでエンジンを特定するsrc/core/Constants.jsを読んでエンティティタイプ、色、サイズを確認する- すべてのエンティティファイルを読んで
generateTexture()またはfillCircle呼び出しを見つける - 現在幾何学的形状を使用しているすべてのエンティティをリストアップする
ステップ 2: スプライトと背景を計画する
計画されたスプライトの表を提示してください:
| エンティティ | タイプ | グリッド | フレーム | 説明 |
|---|---|---|---|---|
| プレイヤー | 人型 | 16x16 | 4 (アイドル + 歩行) | マントを着た金髪の戦士 |
| コウモリ | 空中 | 16x16 | 2 (翼の上下) | 赤い目の紫のコウモリ |
| ゾンビ | 地上 | 16x16 | 2 (シャッフル) | 緑肌、腕を前に伸ばす |
| XP ジェム | アイテム | 8x8 | 1 (静止 + ボブ tween) | 黄金のダイヤモンド |
| グラウンド | タイル | 16x16 | 3 バリエーション | 斑点のある暗い土 |
| 墓石 | 装飾 | 8x12 | 1 | 十字のある石製マーカー |
| 骨 | 装飾 | 8x6 | 1 | 散らばった骨の山 |
ゲームのテーマに適切なパレットを選択してください。
ステップ 3: 実装する
renderPixelArt()とrenderSpriteSheet()を含むsrc/core/PixelRenderer.jsを作成する- 選択されたパレットを含む
src/sprites/palette.jsを作成する src/sprites/にスプライトデータファイルを作成する — エンティティカテゴリごとに 1 つ- 背景タイルバリエーション装飾要素を含む
src/sprites/tiles.jsを作成する - エンティティコンストラクターを更新して、
fillCircle()+generateTexture()の代わりにrenderPixelArt()/renderSpriteSheet()を使用する - 背景システムを作成または更新してピクセルアートの地面をタイル張りし、装飾を散布する
- 適切な場所にアニメーションを追加する (歩行サイクル、翼のはたき)
- 物理ボディがまだ整列していることを確認する (スプライト寸法が変わった場合は
setCircle()/setSize()を調整)
ステップ 4: 検証する
npm run buildを実行してエラーがないか確認する- 物理衝突がまだ機能していることを確認する (スプライトサイズが変わった可能性)
- 作成および変更されたすべてのファイルをリストアップする
/game-creator:qa-gameを実行して visual regression スナップショットを更新することを提案する
チェックリスト
ゲームにピクセルアートを追加する場合は、以下を確認してください:
-
PixelRenderer.jsがsrc/core/に作成されている -
src/sprites/palette.jsでパレットが定義されている — ゲームのテーマと一致している - すべてのエンティティが
renderPixelArt()またはrenderSpriteSheet()を使用している — 生のfillCircle()が残っていない - すべてのパレットでパレットインデックス 0 は透明である
- スプライトマトリックスにインラインの 16 進色がない — すべての色はパレットから来ている
- 新しいスプライト寸法に対して物理ボディが調整されている
- 複数のフレームを持つエンティティ用にアニメーションが作成されている
- 静的エンティティ (アイテム、ピックアップ) は Phaser ボブ tween を使用している
- 背景がピクセルアートをタイル張りしている — 単色またはグラフィックスグリッド線ではない
- 視覚的なバリエーションのために 2-3 の地面タイル変種がある
- 装飾要素が低いアルファで散布されている (墓石、骨、小道具)
- 背景深さがエンティティ以下に設定されている (タイル用の深さ -10、装飾用の深さ -5)
- ビルドがエラーなく成功している
- スプライトスケールがゲームのビジュアルスタイルと一致している (レトロ用スケール 2、超小型用スケール 1)
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- opusgamelabs
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/opusgamelabs/game-creator / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。