mcpField
S
sprite-editor

sprite-editor

github.com/unity-technologiesクリエイティブ・メディア1.2k5.9k 回インストール1 日前に更新
リポジトリ

sprite-editor について

Unity プロジェクト向けのスキルで、接続中の Editor で C# を実行し、公開 API を使ってスプライトのメタデータを編集します。機能チェックを必須とし、テクスチャ、PSB、カスタムインポーターに対応します。

主な機能

  1. 01Editor eval で C# を実行
  2. 02名前、矩形、境界線、ピボットの編集
  3. 03スプライトの追加、削除、スライス
  4. 04スプライトのアウトライン設定
  5. 05変更前の機能チェック

活用シーン

  1. 01スプライトの領域やピボットの調整
  2. 02スプライトのスライスの追加や削除
  3. 03アウトラインデータの更新

インストール

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

$npx skills add https://github.com/unity-technologies/skills --skill sprite-editor

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

同梱ファイル

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

SECURITY.md
references/
api_reference.md
background.md
templates.md
scripts/
AutomaticSliceTexture.cs
GenerateNewSpriteRects.cs
GetTextureSourceImageSize.cs
GetTextureToSlice.cs
GridSliceTexture.cs
IsometricSliceTexture.cs
README.md
SetPivotExample.cs
SpriteToPng.cs

詳細

スプライトエディター

スプライトのメタデータ(矩形、境界線、ピボット、アウトライン)は、編集可能なファイルではなくインポーター内に保存されています。メタデータにアクセスするには、稼働中のエディターで C# を実行する必要があります。

そこにたどり着く手順は unity-cli スキルに従ってください — CLI のインストール、接続済みエディターの確認、プロジェクトへの com.unity.pipeline パッケージの追加、エディターが本当に存在しない場合とセーフモードで停止している場合の見分け方、エディターのコマンドカタログの確認を行います。まずこの手順に従ってください。ここで同じことを調べ直す必要はありません。

そのスキルで判断できないことが、2 つあります。

  • 単にエディターに接続できるだけではなく、特に eval が必要です。 カタログに表示されることを確認してください。利用できるかどうかは CLI ではなく、Pipeline パッケージのバージョンによって決まります。
  • スプライトのメタデータを変更するために、.meta ファイルを直接編集してはいけません。 データはインポーターが管理しています。データの破損を防ぐため、以下の機能チェックを実施します。エディターに接続できない場合は作業を中止してください。独自に対処しようとしないでください。

接続済みエディターで eval コマンドを使って C# を実行します。パラメーターの形式は、決めつけずに unity command --format json で確認してください。インライン形式は unity command eval --code '<snippet>' です。また、Pipeline のバージョンによっては、ファイル内のスニペットを実行する eval_file が登録されていることもあります。eval_file を使う前に、カタログを確認してください。これは利用できない場合がよくあります。 unity command のタイムアウトは、既定で 30 秒です。

ISpriteEditorDataProvider を使って Unity のスプライトを操作する C# エディタースクリプトを生成します。TextureImporter、PSBImporter、カスタムインポーターで動作します。

eval に渡す C# の記述方法

eval がコンパイルするのはファイルではなくステートメントブロックです。これにより、警告ではなくコンパイルエラーになる次の 2 つの問題が生じます。

  • using ディレクティブは使えません。 コンパイラーは using UnityEngine; をリソース破棄のステートメントとして読み取り、拒否します(CS0210)。
  • 型名は完全修飾する必要があります。 AssetDatabase や Volume のような型名だけでは解決できず(CS0246 / CS0103)、Object だけでは object と曖昧になります(CS0104)。

以下のスニペットが、読みやすさのため、またはプロジェクトへの保存を想定して、using を含むファイル形式で記述されている場合は、eval に渡す前に型名を修飾してください。

ワークフロー

生成するスクリプトはすべて、references/templates.md に記載されている Safe Core Pattern に従う必要があります。このパターンには必須の機能チェックが含まれています。機能チェックに失敗した場合は、操作を絶対に実行しないでください。これはデータの破損を防ぐためです。実行後は、Unity のコンソールと Project ウィンドウで結果を確認してください。

よくある操作

名前/矩形/境界線/ピボットの変更: 対応する SpriteRect フィールドを更新します(ピボットの例は scripts/SetPivotExample.cs を参照してください)

  • 必要な機能:EditSpriteName、EditSpriteRect、EditBorder、または EditPivot

追加/削除/スライス: SpriteRect 配列を作成またはフィルタリングします(Unity 2021.2+ の要件については references/background.md を参照してください)

  • 必要な機能:CreateAndDeleteSprite

アウトラインの設定: ISpriteOutlineDataProvider を取得 → GUID と Vector2 配列を指定して SetOutlines() を呼び出します

重要な注意事項

  • AssetPostprocessor パターンや MenuItem パターンは使わないでください
  • 単独で実行できるスニペットのみを生成してください — AssetPostprocessor も MenuItem も使わないでください
  • 列挙型の代入: 必ず列挙型の値を使い、数値型にキャストしてください。数値を直接指定してはいけません。
    • ✅ 正しい例:(int)SpriteAlignment.Center
    • ❌ 誤った例:1(マジックナンバー)

コメント