GDevelop スプライトシート · フレーム画像に分割して使う
GDevelopのスプライトオブジェクトは、アニメーションをフレームごとの別々の画像で組み立てます。そのためスプライトシート1枚は、使う前に分割が必要です。従来のスプライトラボがフレームを見つけ、ずれた枠を直させてから、フレームごとに1枚ずつ順に番号を振ったPNGのZIPを保存できます。

- Frame PNGs測定確認· Pillow
できること
- グリッドモードはセルサイズ・余白・間隔を測るので、すべてのPNGが同じサイズになり、GDevelopで再生してもフレームがぶれません。
- 自動モードは、サイズがばらばらのシートから透明なすき間で分かれたスプライトを見つけ、帽子や剣のように離れた小さなパーツも本体とまとめます。
- ファイル名はシート名+ゼロ埋めの番号(hero_001.png、hero_002.png …)なので、ファイル選択画面でもフレーム順に並びます。
- ピクセルは描き直さずそのままコピー。各PNGがシート上で示した枠と一致することを測定済みで、拡大や補間はありません。
- 詳細設定のキーカラーで、マゼンタなどの不透明な背景を分割前に透明にできます。
- 正直に書くと、これらのファイルをGDevelopで開いて確認はしていません。表の手順はGDevelopの一般的な流れです。
使い方
- スプライトシートをスプライトラボにドロップ。
- そろったシートはグリッド、ばらばらなシートは自動を選び、枠を確認。
- ずれた枠をドラッグか数値で直し、フレームを読み順に並べる。
- フレームのPNGをZIPで保存して展開。
- GDevelopで1つのアニメーションの画像を順にスプライトオブジェクトへ追加し、フレーム間の時間とループを設定。
ZIPからGDevelopのアニメーションまで
| GDevelopでの作業 | ZIPから使うもの | ヒント |
|---|---|---|
| フレーム画像を順番に追加 | 1行分のPNG(例:hero_001〜hero_008) | ゼロ埋めの番号なのでファイル選択画面でも順番どおり |
| 動作ごとに1アニメーション | シートの1行ごとに1まとまりのファイル | イベントで呼ぶ名前を付ける |
| フレーム間の時間を設定 | フレーム時間(秒)。10 fpsなら0.1 | ZIPに時間は入らず、1つの値がアニメーション全体に適用 |
| ループ | 待機・歩きはオン、1回きりの攻撃はオフ | アニメーションごとに決める |
| フレームサイズ | グリッドで切れば全PNGが同じサイズ | サイズが混ざるとキャラクターがぶれる |
ここに書いた内容はGDevelopで実行していません。表はオブジェクトエディターの一般的な手順です。PNG自体はシート上の枠と一致することを測定しています。
出力ファイルと検証方法
「測定確認」は、ダウンロードしたファイルをページ外(Pillow・numpy・独立したパーサー)で開き直して性質を測ったという意味です。ゲームエンジンでの読み込みは試していません。
| 書き出し先 | ファイル | 検証 |
|---|---|---|
| Frame PNGs | <sheet>-frames.zip (one PNG per frame) | 測定確認 Pillow各フレームPNGがシート上の枠と一致(Chromium・Firefox)。ZIPに位置情報はありません。 |
検証の根拠
ZIPから読み直したフレームが元シートの該当範囲とピクセル単位で一致。
制限
- 従来のラボにはタイムラインとタグがありません。アニメーションはStudioを使ってください。
- フレームはアルファの島か、確認したグリッドで切ります。
- 非常に大きいシートは帯ごとに分割し、進行状況を表示します。
よくある質問
なぜGDevelopの外でシートを分割するのですか?
GDevelopのスプライトアニメーションは個別のフレーム画像でできています。ここで分割すれば、ピクセルが正確で順番も予測できる画像が手に入り、書き出す前に枠を1つずつ確認できます。
1枚のシートに複数のアニメーションが入っています
ZIPは1回保存すれば十分です。ファイルはシートの読み順(行ごと)に並ぶので、GDevelopで行ごとにアニメーション(idle、walk、attack …)を作り、その行のファイルを追加してください。
読み込んだアニメーションがぶれます
サイズの違うフレームは、再生時に互いにずれることがあります。グリッドで切って同じサイズの枠にするか、保存前に整列(Normalize)の段階で全フレームを共通のキャンバスに載せてください。
ZIPに時間や当たり判定は入りますか?
いいえ、PNGだけです。時間と当たり判定のマスクはGDevelopで設定します。Godot・Unity・Phaser向けにフレームごとの時間を持つアトラスも必要なら、同じシートをStudioで開いてください。
無料ですか?アカウントは必要ですか?
このページの機能はすべて無料で、アカウントなしで使えます。透かしや制限された書き出しはありません。
スプライトはアップロードされますか?
いいえ。Studioはこのブラウザのタブ内でデコード・パック・書き出しを行います。プロジェクトはブラウザ(IndexedDB)に自動保存され、.nerulioファイルとして保存できます。
Asepriteやエンジンのプラグインは必要ですか?
いいえ。.asepriteファイルはブラウザで読み書きします。エンジン別のバンドルには必要なものが入っています(Godotはインポート設定とシーン、UnityとGodotのタイルセットは小さなエディタースクリプト)。