スプライトシート作成
スプライトを1枚のPNGシートにまとめ、Phaser・PixiJS用のJSONアトラスとCSSクラスも出力。詰め込み・グリッド・ストリップ配置、トリミング、余白に対応。
スプライトシートは、アニメーションのフレーム、アイコン、タイル、UIパーツなどの小さな画像を1つのテクスチャにまとめ、ゲームやWebページが1つのファイルだけを読み込んでその一部の領域を描画できるようにするものです。このジェネレーターは、画像を1枚のPNGにまとめ、PhaserとPixiJSがそのまま読み込めるTexturePacker JSON HashまたはArray形式のJSONアトラスと、Webスプライト用のCSSクラスを出力します。パッキングはブラウザの中で行われ、作品はアップロードされません。
使い方
- スプライト画像をドロップします。ファイル名がフレーム名になります。
- 最小のシートなら詰め込み、同じ大きさのアニメーションフレームならグリッド、あるいはストリップ配置を選びます。
- 余白、エッジの押し出し、トリミング、2のべき乗サイズ、許容する最大シートサイズを設定します。
- PNG、JSONアトラス、CSSをダウンロードします(3つをZIPでまとめて取得することも可能)。
計算式
詰め込み:best-short-side-fitのMaxRects。各スプライトは余る辺が最も短くなる空き矩形に置かれ、空き領域はその周りで分割され、複数のシート幅を試して面積を小さく保ちます。グリッド:セル = 最大のスプライト、列数 = 指定がなければ⌈√n⌉。
各ボックスは幅+余白、高さ+余白(さらに2 ×エッジの押し出し)を確保します。トリミングは完全に透明な行と列を切り落とし、JSONにはsourceSizeとspriteSourceSizeが残るので、エンジンが元のフレームボックスを復元できます。エッジの押し出しは端のピクセルを外側へコピーし、テクスチャフィルタリングが隣のスプライトを引き込まないようにします。回転は使わないため、すべてのフレームがrotated: falseです。
計算例
160 × 100のフレーム2つを2 pxの余白でグリッド配置すると322 × 100のシートになり、フレーム1はx = 0、フレーム2はx = 160 + 2 = 162に置かれるので、CSSはbackground-position: -162px 0です。1 pxのエッジ押し出しを加えると各セルは162 × 102、シートは326 × 102になり、フレーム2は162 + 2 + 1 = 165から始まります。
よくある質問
PhaserやPixiJSではどう読み込みますか?
Phaser 3:this.load.atlas('hero', 'spritesheet.png', 'spritesheet.json')のあと、'walk-1.png'のようなフレーム名を使います。PixiJS:await Assets.load('spritesheet.json')のあと、フレーム名でテクスチャを取得します。
詰め込みとグリッドのどちらを使うべきですか?
詰め込みは最小のシートになり、サイズの異なる画像のアトラスに向いています。グリッドはセルを同じ大きさに保つので、固定サイズのアニメーションフレームや、セルサイズで切り出すエンジンに向いています。
余白やエッジの押し出しを入れるのはなぜですか?
テクスチャを拡大縮小したりミップマップ化したりすると、スプライトの隣のピクセルがにじんで入り込むことがあります。2 pxの余白、または1〜2 pxのエッジ押し出しで、スプライトの端に細い線が出るのを防げます。
画像はアップロードされますか?
いいえ。パッキングとPNGエンコードはブラウザの中で行われます。
出典
最終更新:
この入力内容のページアドレス: https://kakao.mobile/ja/tools/sprite-sheet-generator/
このツールを引用する
kakaoCalc. (2026, November 8). スプライトシート作成. https://kakao.mobile/ja/tools/sprite-sheet-generator/
“スプライトシート作成.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/sprite-sheet-generator/.