本文へスキップ

GDevelop スプライトシート · フレーム画像に分割して使う

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

スプライトシート(PNG)をドロップ
ブラウザ内で処理し、ファイルはアップロードされません。
従来のスプライトラボ:書き出し前に全フレームの枠を表示したCC0シート
CC0アセット(OpenGameArt)を開いた実際のスプライトラボ(従来)画面です。
出力
  • Frame PNGs測定確認· Pillow

できること

  • グリッドモードはセルサイズ・余白・間隔を測るので、すべてのPNGが同じサイズになり、GDevelopで再生してもフレームがぶれません。
  • 自動モードは、サイズがばらばらのシートから透明なすき間で分かれたスプライトを見つけ、帽子や剣のように離れた小さなパーツも本体とまとめます。
  • ファイル名はシート名+ゼロ埋めの番号(hero_001.png、hero_002.png …)なので、ファイル選択画面でもフレーム順に並びます。
  • ピクセルは描き直さずそのままコピー。各PNGがシート上で示した枠と一致することを測定済みで、拡大や補間はありません。
  • 詳細設定のキーカラーで、マゼンタなどの不透明な背景を分割前に透明にできます。
  • 正直に書くと、これらのファイルをGDevelopで開いて確認はしていません。表の手順はGDevelopの一般的な流れです。

使い方

  1. スプライトシートをスプライトラボにドロップ。
  2. そろったシートはグリッド、ばらばらなシートは自動を選び、枠を確認。
  3. ずれた枠をドラッグか数値で直し、フレームを読み順に並べる。
  4. フレームのPNGをZIPで保存して展開。
  5. GDevelopで1つのアニメーションの画像を順にスプライトオブジェクトへ追加し、フレーム間の時間とループを設定。

ZIPからGDevelopのアニメーションまで

GDevelopでの作業ZIPから使うものヒント
フレーム画像を順番に追加1行分のPNG(例:hero_001〜hero_008)ゼロ埋めの番号なのでファイル選択画面でも順番どおり
動作ごとに1アニメーションシートの1行ごとに1まとまりのファイルイベントで呼ぶ名前を付ける
フレーム間の時間を設定フレーム時間(秒)。10 fpsなら0.1ZIPに時間は入らず、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のタイルセットは小さなエディタースクリプト)。