スプライトシートを.asepriteに · 分割してタグ付き保存
配布されているシートや昔のシートをAsepriteで作り直すには、1枚の大きな絵ではなくフレームとタグが必要です。PNGをここにドロップすると、Studioがグリッド(余白・間隔込み)を測るかスプライトを島ごとに見つけて切り、単色の背景を消し、行ごとにタグを作って、時間・ピボット・当たり判定をスライスとして入れた.asepriteを1つ書き出します。
PNGのスプライトシートは1枚の絵なので、フレームの境界、タイミング、アニメーション名、ピボットがありません。.asepriteを作るために、Nerulioはグリッドを測る(またはスプライトを島として見つける)、単色の背景を透明にする、行ごとにタグを1つ、1フレーム100 msで作る、という下ごしらえをします。タグ・タイミング・ピボット・当たり判定を直したら、スプライト › .aseprite書き出し…がフレーム、タグ、長さ、スライスを書き込みます。同じ書き出し処理で作った231ファイルは、すべてAseprite 1.3.18.6で警告なく開けました。

- .aseprite検証済み· Aseprite 1.3.18
- Godot 4検証済み· Godot 4.7.2
- Unity 6検証済み· Unity 6000.5.3f1
- Phaser 3 / 4検証済み· Phaser 3.90 + 4.2
- PixiJS 8検証済み· PixiJS 8.21
- Aseprite JSON検証済み· Phaser load.aseprite · PixiJS 8.21
- Spine / libGDX検証済み· spine-canvas 4.2
- Starling / Sparrow XML検証済み· Phaser 4.2
- LÖVE検証済み· LÖVE 11.5
- Defoldビルド確認· Defold bob.jar 1.13.1
- GameMaker未検証
- CSS sprites検証済み· Chromium
- GIF / APNGデコード確認· Pillow
シートにあるものと、.asepriteに必要なもの
シートにあるのはピクセルだけです。セルサイズ、マージン(シート周囲の空白)、スペーシング(セル同士の隙間)は配置から推し量るしかなく、アニメーションの区切りは作者が一貫していれば行に表れます。フレームのタイミング、アニメーション名、ループ設定、ピボットはファイルのどこにもなく、ゲームのコードや作者のメモの中にあります。
.asepriteではそれらをすべて明示する必要があります。キャンバスサイズ、ミリ秒の長さを持つフレーム、from–to・方向・繰り返し回数を持つタグ、点やボックスのためのスライスです。Nerulioは測れるもの(グリッド、島、キーカラー、行ごとのタグ)を埋め、推定ごとに信頼度を示し、本当のタイミングを決めるまでは1フレーム100 ms(Asepriteの既定値)を使います。
Asepriteのタグは範囲なので、1つのタグは連続したフレームでなければなりません。Nerulioはタイムライン順に続く範囲はそのまま、逆向きに続く範囲は逆方向のタグとして書き、フレームが飛び飛びのタグは誤った範囲にねじ曲げず、名前を知らせます。
- セル
- グリッド内の1フレーム分の矩形。
- マージン/スペーシング
- シート全体の周囲の空白ピクセル/隣り合うセル間の空白ピクセル。
- 島(アイランド)
- 不透明ピクセルがまとまった塊。規則的なグリッドのないシートを切るときに使います。
- スライス
- Asepriteの名前付き矩形。Nerulioはピボットと矩形ボックスをそれぞれスライスとして書きます。
具体例:マージンとスペーシングのある8 × 4シート
シート 267 × 135 px、マゼンタ背景
グリッド 32 × 32 セル、マージン 2 px、スペーシング 1 px
横の検算 2 + 8 × 32 + 7 × 1 + 2 = 267 px
縦の検算 2 + 4 × 32 + 3 × 1 + 2 = 135 px
フレーム 8 × 4 = 32 → タグ row_1 … row_4、各8フレーム
タイミング row_2 を 12 fps に: 1000 / 12 = 83.33 ms → 83 ms で記録
.aseprite 32 × 32 キャンバス、32フレーム、レイヤー1、タグ4、マゼンタ → 透明書き出し前にタイムラインでrow_1 … row_4をidle、walk、jump、hurtのように改名してください。Asepriteはタグ名を書いたとおりに表示します。
何がどこに対応するか
| シート/Studioでは | .asepriteに書かれるもの | 知っておくこと |
|---|---|---|
| グリッドや島で切ったフレーム | 最大のフレームと同じ大きさのキャンバスに1フレームずつ | 各フレームは左上基準のオフセットを保持。サイズの違うフレーム同士はピボットで揃えません |
| 連続したフレームのタグ | from、to、方向、繰り返しを持つタグ | 逆向きの範囲は逆方向に、ピンポンはピンポンのまま |
| 飛び飛びのフレームのタグ | 書かれない | 書き出しメッセージに名前が出ます。フレームを並べ直して書き出し直してください |
| フレームの長さ | 整数ミリ秒、最小1 | 83.33 ms → 83 ms、触っていないフレームは100 ms |
| ピボット | ピボット点を持つpivotスライス、変わるフレームにキー | 全フレームが既定の下中央なら省略 |
| 矩形ボックス | 種類と番号ごとにスライス1つ(hit、hit2、hurt …) | ボックスがなくなるフレームに空のキーを入れて持ち越さない |
| 円・ポリゴンのボックス、コリジョンポリゴン | 書かれない | Asepriteのスライスは矩形だけ。省いたボックスは書き出しメッセージに出ます |
| キーカラー | 透明ピクセル、RGBAカラーモード | 元のシートは取り消し用にStudioに残ります |
| レイヤー | Studioのレイヤー(切ったシートなら1枚) | 同じレイヤーの同一セルはリンクセルとして保存 |
できること
- ピクセルから測ったグリッド:セルサイズ・余白・間隔と信頼度。不規則なシートは島モードで、小さなエフェクト片は本体にくっつけ、置き場のない片は赤で表示。
- マゼンタなどの単色背景を透明に。元の画像は保持するので元に戻せます。
- 最初は1行1アニメーション。タイムラインでタグの名前変更・伸縮・新規作成ができ、方向(順・逆・ピンポン)と繰り返しを設定。
- フレームごと、またはタグ全体の長さ(すべて fps で設定)、ピボット(P)、hit・hurt・interact・自由な名前の矩形ボックス(B)。
- スプライトメニューの「.aseprite を書き出し…」で、フレーム・タグ・整数msの長さ・ピボットのスライス・ボックスごとのスライスを書き込み。
使い方
- スプライトシートのPNGをドロップ。
- グリッドか島の推定と背景色を確認し、違えば別の候補を選んで「適用」(取り消しは1回)。
- タイムラインでアニメーションごとにタグを作り、方向と繰り返しを設定。
- 必要なところに時間・ピボット・当たり判定を入れる。
- 「.aseprite を書き出し…」を選び、Asepriteで開く。
出力されるファイル
| ファイル | 用途 |
|---|---|
hero.aseprite | スプライト › .aseprite書き出し…:フレームごとのオフセット、Studioのレイヤー、タグ、長さ、ピボットとボックスのスライス。 |
hero_aseprite.zip › hero_aseprite/hero.aseprite | パック&書き出し › .aseprite file:全フレームをピボットで揃えた1つのキャンバスに置き、2つのタグが共有するフレームは繰り返して各タグを1つの範囲に保ちます。検証ではAseprite 1.3.18のコマンドラインが開いて全フレームをレンダリングしました。 |
Asepriteで続ける
- Asepriteで
hero.asepriteを開きます。キャンバスはシートではなくフレームのサイズ(例では32 × 32)です。 - フレームの上のタグを確認します。名前・範囲・方向はNerulioで決めたとおりです。書き出しメッセージで省略と出たタグは入っていないので、Nerulioでフレーム順を直して書き出し直してください。
- スライスツールを選ぶと
pivotスライスとボックスのスライスが見えます。それぞれフレームごとのキーを保っています。 - アニメーションを仕上げます。エンジン用のシートが要るならFile > Export Sprite Sheetを使うか、
.asepriteをNerulioに戻してGodot、Unity、Phaser向けに書き出してください。
結果の確認
aseprite -b hero.aseprite --list-tagsがタグ名を最初から最後まで出力します。タイムラインと比べてください。- Asepriteでタグを再生します。1フレーム83 msの
row_2は8 × 83 = 664 msごとにループします。 - 市松模様の背景を表示します。マゼンタだった部分はピンクではなく透明のはずです。
.asepriteファイルに入るもの
| Studioの情報 | .asepriteでの形 | 補足 |
|---|---|---|
| シートから切ったフレーム | 最大のフレームと同じサイズのキャンバスに1フレームずつ | フレームごとのオフセットを保持 |
| タグ | from..to・方向・繰り返し付きのタグ | 逆向きに続く区間は逆再生として |
| フレームの長さ | フレームごとに整数ms | 触っていないフレームはAsepriteの既定値と同じ100ms |
| ピボット | ピボット点付きのpivotスライス | 全フレームが既定(下中央)のままなら書かない |
| 矩形ボックス | 種類ごとのスライス(hit、hurt、hit2 …)、変化するフレームにキー | 円・多角形は飛ばす |
| レイヤー | アセットのレイヤーと不透明度・ブレンドモード | 切り出したシートはレイヤー1枚 |
トラブルシューティング
| 症状 | 考えられる原因 | 確認方法 | 対処 |
|---|---|---|---|
| Asepriteにタグがない | そのタグのフレームがタイムライン上で連続していません | 書き出しメッセージに省略したタグ名が出ます | フレームを隣り合わせに並べ(共有フレームはAlt+Nで複製)、書き出し直してください |
| Asepriteで再生するとフレームが跳ねる・ずれる | サイズの違う島として切ったフレームが、共通キャンバス上で別々のオフセットにあります | フレームを送りながらフレームパネルでサイズを比べます | 書き出し前に整列 › アンカー指定でキャンバスサイズを統一するか、パック&書き出しのピボット揃えのファイルを使ってください。トリム後のガタつきも参照 |
| 円やポリゴンの当たり判定が消える | Asepriteのスライスは矩形だけです | 書き出しメッセージに省いたボックスがすべて出ます | 矩形(B)で描き直すか、GodotやジェネリックJSONの書き出しで保持してください |
| 絵の周りにピンクや緑のピクセルが残る | キーカラーが適用されていない(信頼度が高未満)か、絵がキーカラーの上でアンチエイリアスされています | インポートパネル:背景色の判断 | 検出された色を適用してください。混ざった縁のピクセルは手直しが必要です。スプライト背景の除去を参照 |
| 全フレームが100 ms | PNGにはタイミングがないので、読み込み時は100 msから始まります | フレームパネル:長さ | 書き出し前にタグごとにfpsで一括設定するか、フレームごとにミリ秒を入力してください |
ほかの方法
| 方法 | こんなときに向いています |
|---|---|
| AsepriteのFile > Import Sprite Sheet | グリッドが規則的で、Aseprite内で作業したいとき。オフセット(x, y)、スプライトの幅・高さ、パディングを指定すると、シートの種類の順にフレームを取り込みます。タグ・タイミング・スライスは手で追加します。 |
| パック&書き出し › .aseprite file | サイズの違う島を切ったあとなど、全フレームが最初からピボットで揃っていてほしいとき。 |
| スプライトスライサー | Aseprite文書ではなく、フレームごとのPNGだけが欲しいとき。 |
エンジン別の書き出しと検証方法
「検証済み」は、実際のCC0アセットから書き出したファイルを本物のエンジン・ツールで読み込み、元データと比較したという意味です。読み込んでいない形式はそのように表示します。
| 書き出し先 | ファイル | 検証 |
|---|---|---|
| Godot 4 | .tres SpriteFrames · .tscn AnimatedSprite2D · .png.import | 検証済み Godot 4.7.2Godotで読み込み、全アニメーションフレームを描画して元ファイルと比較。シーンはNearestフィルターで、回転は使いません。 |
| Unity 6 | .unity.json · Editor/NerulioSpriteImporter.cs · AnimationClip | 検証済み Unity 6000.5.3f1バッチモードでスプライト範囲・ピボット・ピクセル・クリップのキーと長さを確認。 |
| Phaser 3 / 4 | atlas JSON (multiatlas) · .anims.json | 検証済み Phaser 3.90 + 4.2両バージョンでフレームとアニメーションを描画。 |
| PixiJS 8 | spritesheet JSON · animations · anchor · meta.scale | 検証済み PixiJS 8.21回転・複数ページのアトラスも確認。 |
| Aseprite JSON | hash / array · frameTags · slices | 検証済み Phaser load.aseprite · PixiJS 8.21タグの方向と繰り返し回数を保持。 |
| .aseprite | layers · tags · durations · slices | 検証済み Aseprite 1.3.18Asepriteのコマンドラインで開いて描画。 |
| Spine / libGDX | .atlas | 検証済み spine-canvas 4.2Spineランタイムで回転・トリム領域をすべて描画。libGDX本体は未実行。 |
| Starling / Sparrow XML | XML per page | 検証済み Phaser 4.2Phaser 3.90はトリムされたXMLフレームを誤って描画します(Phaser側の不具合)。「Sparrow XML (Phaser 3)」プリセットはトリムを切り、3.90・4.2とも合格。 |
| LÖVE | Lua quads · nerulio_atlas.lua · main.lua | 検証済み LÖVE 11.5同梱ヘルパーで全フレームを描画し、全アニメーションを再生。 |
| Defold | .atlas · .tilesource | ビルド確認 Defold bob.jar 1.13.1Defoldのコマンドラインビルダーでビルドし、生成テクスチャのUVを読み戻して確認。 |
| GameMaker | spr_<name>_stripN.png · gamemaker.json | 未検証GameMakerでは読み込んでいません(ヘッドレス実行不可)。ストリップはGameMakerの取り込み方式どおりに切ります。 |
| CSS sprites | .css · preview .html | 検証済み Chromium同梱スタイルシートで全クラスを描画。 |
| GIF / APNG | one file per animation | デコード確認 Pillow書き出し後に全フレームと遅延を再デコード。APNGは完全一致。 |
検証の根拠
GIFデコーダー:実在のGIF 29本で408/408フレームがPillowと一致、APNG 16本で132/132。.aseprite:コーパス231ファイルを読み込み・書き直し、Aseprite 1.3.18で開いてタグ・長さ・ピクセルが231/231一致。書き出し:実在のCC0アセットで実際のエンジンを49回実行し47回合格。失敗2回はPhaser 3.90のトリムXMLの不具合で、Phaser 3プリセットで回避できます。
制限
- 飛び飛びのタグと矩形以外のボックスは、知らせるだけで書き込みません。
- キーカラーの上で半透明に混ざった縁のピクセルはそのまま残ります。
- グリッド・島の推定は信頼度つきのプレビューで、「適用」を押すまで何も切りません。すべての選択に代替案があり、ワンクリックで切り替えられます。
- レイヤーが正確に合成できない.asepriteファイル(グループの不透明度など)は統合して読み込み、理由を読み込みパネルに表示します。
- 読み込んだアトラス内の回転フレームは回転したままで、その書き出しは未検証です。
- 画像は一辺32,768px(2億6,800万ピクセル)まで。ブラウザのメモリにも依存します。
バージョンと出典
スプライト › .aseprite書き出し…は、実ファイル231個で確認した書き出し処理を使います。読み込んで書き直し、Aseprite 1.3.18.6で開いたところ、231個すべてが警告なしでタグ・長さ・ピクセルとも一致しました。パック&書き出しの.asepriteターゲットは、Aseprite 1.3.18のコマンドラインで開いて全フレームをレンダリングしました。上のAsepriteの手順はAsepriteの公式ドキュメントに基づきます。
参照した公式ドキュメント
よくある質問
Asepriteで問題なく開けますか?
このライターは、実際の.aseprite 231本をStudioに読み込んで書き戻す形で確認しました。本物のAseprite 1.3.18.6がすべて警告なしで開き、タグ・長さ・ピクセルも同じでした。ここで切ったシートも同じライターを通ります。
円や多角形の当たり判定はどうなりますか?
Asepriteのスライスは矩形なので、矩形のボックスだけを書きます。円と多角形は飛ばし、書き出しメッセージに名前を出します。コリジョンポリゴンはプロジェクトと、Godot・汎用JSONの書き出しに残ります。
タグの途中にフレームの抜けがあると?
Asepriteのタグはfrom..toの範囲です。タイムライン上で前向きでも後ろ向きでも連続したタグは書き、途中が抜けたタグは誤った範囲にせず、名前を知らせて除外します。フレームをドラッグして並べ直し、もう一度書き出してください。
無料ですか?アカウントは必要ですか?
このページの機能はすべて無料で、アカウントなしで使えます。透かしや制限された書き出しはありません。
スプライトはアップロードされますか?
いいえ。Studioはこのブラウザのタブ内でデコード・パック・書き出しを行います。プロジェクトはブラウザ(IndexedDB)に自動保存され、.nerulioファイルとして保存できます。
Asepriteやエンジンのプラグインは必要ですか?
いいえ。.asepriteファイルはブラウザで読み書きします。エンジン別のバンドルには必要なものが入っています(Godotはインポート設定とシーン、UnityとGodotのタイルセットは小さなエディタースクリプト)。