# GIF スプライトシートを作成

> アニメーションGIFやWebPの全フレームを一枚のPNGにまとめる無料のオンラインツールで、フレームの位置と遅延時間を記したJSONファイルも任意で出力できます。

GIF スプライトシートは、アニメーションGIFの全フレームを1枚のPNGにまとめる無料のオンラインツールです。ファイルをアップロードしてレイアウトを選び、ジョブを実行するだけで作れます。出力はPNGで、必要に応じてJSONファイルも付けられます。例えばゲームエンジンで、アニメーション全体を1枚の画像として読み込みたいときに使えます。

## 主な仕様

- 入力：アニメーションGIFまたはWebP、無料ツールでは5 MBまで、ログイン時は10 MBまで、各フレームは16 MP (4096 x 4096)まで
- 出力：PNG、各セルに全体のフレーム、左から右、次に上から下へ並べ、余ったセルは透過。JSONオプション選択時はsprite.pngとsprite.jsonのZIP
- シートの上限：一辺16384px、合計16.8メガピクセルを超えるとサイズを示して拒否
- テスト結果：生成した24フレーム、160 x 120 px、60 KBのGIFが、800 x 600 px、56 KBのPNGになり、5 columns x 5 rows。テスト用アニメーションはスクリプトで生成し、結果はファイルによって変わります
- 保存と料金：処理後にアップロードファイルは削除、無料の結果は10分保存。ログイン時はファイルごとに1クレジットに加え、10メガピクセルを超えるフレームは、始まった10メガピクセルごとに1クレジット
- アカウント登録なしの無料利用では、訪問者ごとに毎分10件、毎日50件まで変換でき、透かしは入りません。ログインしているユーザーは、レンダリングごとに1クレジットを使用します。毎月100無料クレジットが付与されます。
- ファイルは自動的に削除されます。アカウント登録なしの場合は変換後10分、無料アカウントの場合は1日で削除されます。
- 開発者は、APIキーを付けてPOST https://api.aiipworld.com/v1/renderを送信すると、同じレンダリングを実行できます。詳しくはAPIドキュメントページをご覧ください。

## 使い方

1. 「ファイルを選択」からアニメーションGIFまたはアニメーションWebPを1つ選びます。ブラウザは、アップロード前にファイル形式、サイズ、フレーム数を確認します。
2. 「レイアウト」を「格子状」のままにして列数を自動にするか、「横1行」または「縦1列」を選びます。
3. 「スプライトシートを作成」をクリックし、ジョブが終わるまで待ちます。
4. 結果パネルで、シートのサイズとグリッドを確認します。
5. 「ダウンロード」をクリックして、PNGのスプライトシートを保存します。

## GIF スプライトシートの作り方

アニメーションGIFをアップロードして「スプライトシートを作成」をクリックすると、ツールがすべてのフレームを読み取り、1枚のPNGの各セルに配置します。結果は、アニメーション全体を1つのファイルにまとめたものになります。

実行前の概要行で、シートのサイズを確認できます。実行後は結果パネルに表示されるので、プロジェクトで使う前にサイズを必ず確認してください。

## 出力されるスプライトシートの中身

ツールは、入力したアニメーションGIFのフレームからスプライトシートを作ります。各セルには1つのフレーム全体が入り、フレームは元の順番を保ちます。出力は1つのPNGファイルです。

PNGは可逆圧縮なので、各セルのピクセルは元のフレームと一致します。フレームのリサイズ、トリミング、フィルター処理は行いません。

## グリッド・横一列・縦一列の選び方

レイアウトは、グリッド、横一列、縦一列から選べます。初期設定はグリッドで、列数は自動です。自動の列数は、フレーム数の平方根を切り上げた値になります。列数は手動で設定することもできます。

短いアニメーションには横一列、縦に長いゲームのスプライトレイアウトには縦一列が向いています。読み込み方法に合わせて選んでください。

## フレームの配置順とセルのサイズ

フレームは左から右へ、次に上から下へ並びます。最初のフレームは左上のセルに置かれ、最後のフレームは並び順の最後のセルに置かれます。

フレームのトリミングや重複フレームの削除は行いません。すべてのフレームは元のサイズのままで、すべてのセルが同じサイズになります。

## JSONファイルのフレーム情報

任意でJSONファイルを付けると、すべてのフレームのサイズ、位置、遅延時間がわかります。JSONオプションを選ぶと、ダウンロードはsprite.pngとsprite.jsonを含むZIPになります。

JSONには、version、order、sheet size、frame size、columns、rows、frames、loop count、total duration in msの項目が入ります。フレームごとにはindex、x、y、delay_msがあります。ブラウザは10ms以下の遅延を100msとして再生するため、JSONにはブラウザが実際に再生する遅延時間が記録されます。

## 透過と空のセルの扱い

フレームに透過ピクセルがある場合、PNGは透過を保ちます。最後の行が埋まっていない場合も、透過が保たれます。シートの末尾にある空のセルは透明になります。

GIFのフレームは、完全に透明か完全に不透明のピクセルだけで構成されています。シートもその値を保ちます。セルの間に余白や間隔は追加されません。

## スプライトシートのサイズ上限

シートの上限は、1辺16384pxまでです。合計は16,777,216ピクセル（16.8メガピクセル）までです。上限を超えるシートは処理されず、必要だったサイズがメッセージに表示されます。ページでも、実行前に同じ警告が出ます。

結果は20MBまでです。上限を超えた場合は、「列数」の値を変えるか、先にGIFのリサイズ・トリミングツールで調整してください。

## アカウント別のアニメーション上限

ログインしているユーザーは、最大300フレーム、合計64 MPピクセルまで処理できます。合計ピクセルは、フレームの幅×高さ×フレーム数で計算します。

アカウント登録なしの場合は100フレーム、16 MPまでです。どちらの場合も、各フレームは16 MP (4096 x 4096)までです。上限を超えるとジョブは失敗し、クレジットは返却されます。基本料金は1ファイルあたり1クレジットで、10メガピクセルのアニメーションが含まれます。基本料金を超える分は、始まった10メガピクセルごとに1クレジットかかります。

## 対応するファイルとアップロードの制限

対応ファイルは、アニメーションGIFとアニメーションWebPです。1フレームだけのファイルも処理でき、1セルのシートになります。PNG、JPG、そのほかのファイルは、メッセージを表示して受け付けません。ファイル形式は、ファイル名ではなくファイルの中身で判断します。

アカウント登録なしの場合、1ファイル5 MBまで、1日30ファイルまで利用できます。ログインしている場合は、1ファイル10 MBまでです。各フレームは16 MP (4096 x 4096)までです。出力が20MBを超えると、「output too large」というメッセージでジョブが失敗します。

## APIでスプライトシートを作成する

APIでは、https://api.aiipworld.com/v1/image-jobs にPOSTします。本文にはファイルのバイト列をそのまま入れ、Content-Typeはimage/gifまたはimage/webpを指定します。クエリパラメータは、op=gif_editとaction=spriteです。

認証は、Bearer形式のAPIキーか、x-api-keyヘッダーで行います。アニメーションではtimeout_sec=60を指定してください（最大値）。ページでは、選んだ設定に合わせたcURL、Node.js、Pythonの例を表示します。詳しくは/docs/#image-jobsを参照してください。

## プライバシーとファイルの扱い

ファイルはサーバーに送られ、sharp（libvipsを基盤にしたオープンソースの画像ライブラリ）で処理されます。処理は通常の画像処理で、人工知能は使っていません。ジョブが終わると、成功でも失敗でもファイルはすぐに削除されます。

アカウント登録なしの無料の結果は、10分保存されます。履歴は残らず、ダウンロードリンクは短期間だけ有効です。アップロードするファイルの権利を持っていることは、利用ポリシーに従って必要です。

## よくある質問

### GIF スプライトシートは無料で作れますか？

はい、無料で作れますが、1日の上限内に限られます。登録は不要です。アカウント登録なしの場合は、訪問者ごとに1日30ファイルまでです。

### フレームはどの順番で並びますか？

左から右、次に上から下へ、元の順番で並びます。最初のフレームは左上のセルに入ります。

### スプライトシートとは何ですか？

1枚の画像に、グリッド、横一列、縦一列でフレームをまとめた画像です。ゲームやアプリでは、アニメーション全体を1つのファイルから読み込むことがよくあります。

### 列数は指定できますか？

はい、グリッドでは「列数」の値を設定できます。値を空にすると、フレーム数の平方根を切り上げた値になります。

### JSONファイルには何が入っていますか？

version、order、sheet size、frame size、columns、rows、frames、loop count、total duration in msの項目が入ります。フレームごとには、x、y、delay_msがあります。

### シートは透過を保ちますか？

はい、フレームに透過がある場合や、最後の行が埋まっていない場合は透過を保ちます。シート末尾の空のセルは透明です。

### サイズが大きすぎると言われたのはなぜですか？

シートが1辺16384pxまたは合計16.8メガピクセルの上限を超えたためです。「列数」の値を変えるか、先にGIFをリサイズまたはトリミングしてください。

### アニメーションWebPも使えますか？

はい、アニメーションWebPもアニメーションGIFと同じように使えます。PNG、JPGなどの静止画ファイルは受け付けません。

### スプライトシートをGIFに戻せますか？

はい、「スプライトシートからGIFへ」のページを使えます。1枚の静止画から、グリッドのフレームを使ってアニメーションを作ります。

### ファイルはどのくらい保存されますか？

アップロードしたファイルは、ジョブが終わるとすぐに削除されます。無料の結果は10分保存され、履歴は残りません。

### コードからスプライトシートを作れますか？

はい、https://api.aiipworld.com/v1/image-jobs にop=gif_editとaction=spriteを付けてPOSTします。アニメーションではtimeout_sec=60を使います。

## 関連ツール

- [スプライトシート GIF を作る無料ツール](https://aiipworld.com/ja/tools/sprite-sheet-to-gif/index.md)
- [GIF フレーム 抽出](https://aiipworld.com/ja/tools/gif-to-frames/index.md)
- [GIF カット：アニメーションGIFを一部だけ切り出す](https://aiipworld.com/ja/tools/gif-trimmer/index.md)
- [GIF リサイズ｜アニメーションGIFを小さくする](https://aiipworld.com/ja/tools/resize-gif/index.md)

ページ： https://aiipworld.com/ja/tools/gif-to-sprite-sheet/
