コンテンツへスキップ

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

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

  • サイズと時間は、実際の映像ではなく生成したテスト用アニメーションで測定しました。結果はファイルによって変わります。
  • 一度に処理できるファイルは1つです。大きなジョブの前に、制限を確認してください。
  • シートの上限は、1辺16384px、合計16,777,216ピクセル(16.8メガピクセル)です。上限を超えると、ページで実行前に警告が表示されます。

ここに画像をドロップ

PNG、JPG、WebP、AVIF、GIF、BMP、TIFF(5 MBまで)

フレームは左から右、上から下の順に並べます。空のままにすると、正方形に近い格子になります。

各セルには1フレーム分の画像がそのまま入ります。末尾の空のセルは透明です。フレームの余白の切り詰めや、重複の削除はしません。

セキュリティ確認を完了すると、ボタンが有効になります。

結果

ここにPNGが表示されます。

無料のWebツールは5 MBまでの画像を、1日30枚まで処理できます。ログインすると上限は10 MBになります。

保存期間:Webツールの結果は10分後に削除され、履歴は保存されません。APIの結果は無料プランでは1日、StarterとProでは7日保存されます(BusinessとScaleでは30日)。

  • アカウント登録なしで利用可能

    無料で毎日30枚まで、透かしなし。

  • フレーム単位で編集

    フレームを1回だけ読み込んで編集し、1回だけ書き出します。元のファイルは変更されず、アップロードしたファイルは処理が終わると削除されます。

  • 自動的に削除

    Webツールの結果は10分後に削除されます。

プライバシー:送信された内容は、このファイルを作成するためにのみ使用されます。作業用のコピーはジョブの終了時に削除され、結果は10分後に削除されます。詳しくはプライバシーポリシーをご覧ください。

コードから実行する

上の入力と設定から作成した、同じリクエストです。APIキーを取得するには、アカウントを作成してください。

curl -X POST https://api.aiipworld.com/v1/render \
  -H "Authorization: Bearer $AIIPWORLD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"html":"","output":"pdf","options":{}}'

# returns {"job_id": "...", "status": "queued"}; then poll:
curl https://api.aiipworld.com/v1/jobs/JOB_ID -H "Authorization: Bearer $AIIPWORLD_API_KEY"

一括処理

Webツールは一度に1画像まで処理します。APIでは画像ごとに一つのリクエストとなるため、プランが許す数だけスクリプトで処理できます。

保存期間

Webツールの結果は10分保存されます。無料APIの結果は1日、StarterとProの結果は7日、BusinessとScaleの結果は30日保存されます。Webツールでは、訪問者ごとに毎分10回、毎日50回まで変換できます。

ひとことで言うと

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

主な仕様

  • 入力:アニメーション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のスプライトシートを保存します。

出力例

Original GIF, 160 x 120 px, 24 frames, 60 KB

The sample animated GIF before it is made into a sprite sheet

Sprite sheet, 800 x 600 px, 5 columns x 5 rows, 56 KB

サンプルのアニメーションGIFを、5列と5行のグリッドに並べたスプライトシートの画像
生成したテスト用アニメーション(160 x 120 px、24フレーム、1.9 s、60 KBのGIF)を、列数を自動にしてスプライトシートにした例です。結果は800 x 600 pxのPNG、56 KB、5 columns x 5 rowsで、最後のセルは空です。 このサイトの独自エンジンで変換しました。 変換後のファイルを開く(または画像を選択)で原寸で確認できます。

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を使います。

アプリ内や一括処理で使いたい場合

このツールはAPIと同じプラットフォームで動作するため、同じ画像を、お使いのコードから一回のHTTPリクエストで取得できます。 無料アカウントには、毎月100クレジットが含まれています。

関連ツール