GIF作成
複数の画像フレームやスプライトシートからGIFを作成し、FPSとサイズを調整できます。
無料画像ツールキット
PNGフレームを1枚のスプライトシートにまとめ、ピクセル間隔、メタデータ、アニメーションプレビューを調整できます。
登録や支払いなしで使え、ファイルは可能な限りブラウザ上で処理されます。
画像をアップロード
クリックまたはファイルをドロップ
大きな画像ではブラウザが遅くなる場合があります。
スプライトシートはブラウザのcanvasで生成されます。非常に大きなcanvasはブラウザ制限にかかる場合があります。
推定canvasサイズ: アップロード後に自動計算 / 列数: 4 / 行数: -
フレーム間隔は各フレームの間の距離です。ゲームエンジンで自動スライスしやすくする場合は0px、見やすいシートにしたい場合は2〜4px程度がおすすめです。
推奨単位はpxです。スプライトシートは正確なピクセル座標が重要なため、%、remなどの相対単位よりpxが適しています。
行は下・上・左・右などの方向アニメーションとして使えますが、実際の意味は画像構成に合わせて自由に決められます。
const image = new Image();
image.src = "spritesheet.png";
const canvas = document.querySelector("canvas");
const ctx = canvas.getContext("2d");
ctx.imageSmoothingEnabled = false;
const frameWidth = 32;
const frameHeight = 32;
const columns = 4;
const frameSpacing = 2;
const cellPadding = 0;
const outerMargin = 0;
let frame = 0;
let last = 0;
function drawFrame(index) {
const col = index % columns;
const row = Math.floor(index / columns);
const sx = outerMargin + col * (frameWidth + cellPadding * 2 + frameSpacing) + cellPadding;
const sy = outerMargin + row * (frameHeight + cellPadding * 2 + frameSpacing) + cellPadding;
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(image, sx, sy, frameWidth, frameHeight, 0, 0, frameWidth, frameHeight);
}
function loop(time) {
if (time - last > 125) {
drawFrame(frame);
frame = (frame + 1) % 1;
last = time;
}
requestAnimationFrame(loop);
}
image.onload = () => requestAnimationFrame(loop);CSS steps例はフレーム間隔が0pxの単一行スプライトシートで最も単純に動作します。複数行や間隔がある場合はJavaScript方式がより柔軟です。
.sprite {
width: 32px;
height: 32px;
background-image: url("spritesheet.png");
animation: play 0.13s steps(1) infinite;
}
@keyframes play {
from { background-position: 0 0; }
to { background-position: -32px 0; }
}フレームアニメーションをGIFとして保存したい場合はGIF作成ツールを使ってみましょう。
GIF作成ツールを開くファイルは可能な限りブラウザ上で処理され、サーバーには保存されません。
このツールはゲーム素材向けのスプライトシート作成に重点を置いています。フレームアニメーションをGIFで保存したい場合はGIF作成ツールを使ってください。