本文へスキップ

スプライトエディター オンライン · ゲーム用スプライト編集

絵は描き終えたのに、エンジンに入れるまでが面倒——そんなときの続きの作業場です。.asepriteファイル、スプライトシート、連番PNG、GIFを入れると、時間・ピボット・ボックス付きのアニメーションになり、エンジンがそのまま開けるファイルにまとまります。

ゲーム用のスプライトエディターの仕事は2つです。フレームごとにピクセルを描くことと、フレームをエンジンが再生できる形にすること(タグ、フレームごとのタイミング、ピボット、ボックス、パックしたアトラス、エンジン用データファイル)です。Nerulio Studioはブラウザの1つのプロジェクトで両方を行います。ピクセル作業画面で描き(鉛筆・塗りつぶし・図形・選択・レイヤー・パレット・オニオンスキン)、スプライト作業画面でフレームに時間と印を付け、Pack & ExportがGodot 4、Unity 6ほか16形式を書き出します。長時間の作画やタイルマップレイヤー、スクリプトを使う作業は、今もAsepriteの出番です。

スプライトシート、連番フレーム、GIF・APNG、.asepriteファイルをドロップ
空のStudioを開く
ブラウザ内で処理し、ファイルはアップロードされません。
Studio のスプライト作業画面:ピボット・ヒットボックス・ハートボックス付きのフレームと、アニメーションタグ付きタイムライン
CC0アセット(OpenGameArt)を開いた実際のStudio画面です。
書き出し先
  • Godot 4検証済み· Godot 4.7.2
  • Unity 6検証済み· Unity 6000.5.3f1
  • Phaser 3 / 4検証済み· Phaser 3.90 + 4.2
  • PixiJS 8検証済み· PixiJS 8.21
  • Aseprite JSON検証済み· Phaser load.aseprite · PixiJS 8.21
  • .aseprite検証済み· Aseprite 1.3.18
  • Spine / libGDX検証済み· spine-canvas 4.2
  • Starling / Sparrow XML検証済み· Phaser 4.2
  • LÖVE検証済み· LÖVE 11.5
  • Defoldビルド確認· Defold bob.jar 1.13.1
  • GameMaker未検証
  • CSS sprites検証済み· Chromium
  • GIF / APNGデコード確認· Pillow

スプライト編集の2つの半分

作画はピクセルの仕事です。キャンバス、パレット、レイヤー、アンチエイリアスしない鉛筆、中割りを描くためのオニオンスキン。準備はデータの仕事です。どのフレームが「run」か、それぞれ何ミリ秒出すか、どのピクセルをキャラの位置に置くか、攻撃がどこに当たるか、そしてそれらをGodot・Unity・Phaser向けにどう書くか。多くのツールは片方が得意で、そのあいだの受け渡し(シートで書き出し、切り直し、タイミングを入れ直す)でタイミングやピボットやそろえが失われます。

Studioでは両方が同じフレームを編集します。ピクセル作業画面の1ストロークは現在のフレームに対する1回の取り消し単位で、スプライト作業画面に切り替えると同じフレームが長さ・ピボット・ボックスとともにタイムラインに並びます。プロジェクトはブラウザのIndexedDBに自動保存され、.nerulioファイルにも保存できます。何もアップロードしません。

書き出しはエンジン自体で確認しています。検証済みの書き出し先は、UIで作ったバンドルをそのエンジンが読み込んで描画しており、書き出し先の行にそう表示されます。GameMakerは実行できないためUNVERIFIEDと表示します。

ピクセル作業画面
作画:鉛筆・消しゴム・塗りつぶし・図形・選択・合成モード付きレイヤー・インデックスパレット・オニオンスキン。
スプライト作業画面
データとしてのフレーム:読み込み・タイムライン・タグ・長さ・ピボット・ボックス・そろえ。
Pack & Export
アトラスのパックとエンジン用ファイル。

例:白紙のキャンバスからUnity 6まで、4フレームの歩き

1行が1つのプロジェクト内の1工程です。

ピクセル   新規スプライト 32 × 32、4フレーム、16色パレット、オニオンスキン オン
スプライト タグ walk = フレーム1–4、各120ms → 1周480ms(8.33FPS)
           ピボット (0.5, 1.0) = ピクセル (16, 32)、(10, 6) に 12 × 26 のハートボックス
パック     Unityプリセット:トリム、シェイプ余白2px、回転なし → 1ページ
書き出し   hero.png + hero.unity.json + Editor/NerulioSpriteImporter.cs + README-UNITY.md
Unity      Tools › Nerulio › Import Studio JSON → スプライト4つ(Point、無圧縮)+ walk.anim

ハートボックスはUnityには渡りません(入れるスプライトの項目がないため)。Godotバンドルと汎用JSONには入ります。ヒットボックスエディターを参照してください。

各作業をどこで行うか

作業Nerulio StudioではAsepriteなどの専用ドット絵エディターでは
ピクセルを描く・直すピクセル作業画面、Asepriteと同じショートカット、レイヤー合成モード19種、インデックスパレットとLospecパレットAsepriteは作画ツールがより充実し、タイルマップレイヤーとスクリプトがある。Nerulioにはレイヤーグループ、タイルマップレイヤー、RotSprite、テキストがない
タグとフレームごとのタイミングスプライトのタイムライン。.asepriteのタグと長さを読み書きAseprite自身のタイムラインとタグ
ピボットとヒット・ハートボックスフレーム・タグ・選択単位のピボットツールとボックスツールピボット点付きのスライスを手で描く
エンジン用ファイルPack & Export:エンジンで確認したプリセット付きの18形式スプライトシート + JSON。エンジン用ファイルはプラグインやインポーターが作る

できること

  • いま使える作業画面は5つ:スプライト(読み込み・タイムライン・ピボット・ボックス)、ピクセル(パレットと拡大画像の整理を備えたドット絵エディタ)、パック&書き出し(アトラスと18形式)、タイル(オートタイルのルールとテストマップ)、テクスチャ(ノーマルマップと2Dライト)。
  • グリッド、背景色、島の切り分け、行ごとのアニメーションといった自動推定は、すべて信頼度(高・中・低)と理由、ワンクリックの代替案つきで表示。「適用」を押すまで何も切りません。
  • ピボットツール(P)、矩形・円・ポリゴンのボックス(B・C・Q)、タグの反転コピー、フレームの整列はすべて整数ピクセル単位。ドット絵がにじみません。
  • ファイルはアップロードされません。プロジェクトはブラウザのIndexedDBに自動保存され、.nerulioファイルとして保存可能。アカウントも透かしもなし。
  • ドットは同じフレーム上でピクセル作業画面から打てます。Asepriteのキーで使う鉛筆・バケツ・選択・レイヤー・インデックスパレット・オニオンスキン。レイヤーグループ、タイルマップレイヤー、RotSprite、テキストなどはないため、大きな描き込みは今もAsepriteが向く場合があります。

使い方

  1. ピクセル作業画面かいつものドット絵ツールで描き、PNGシート・連番フレーム・GIF・.asepriteのいずれかを用意。
  2. このページにドロップすると、切り方の提案とその根拠を表示した状態でスプライト作業画面が開きます。
  3. 「適用」を押し、タイムラインでタグ名と各フレームの時間を決め、フレームごとにピボットとヒット・ハートボックスを置く。
  4. パック&書き出しでGodot 4・Unity 6など18形式から選び、バンドルをダウンロードしてプロジェクトへ。

結果の確認

  • スプライト作業画面で、出荷時と同じ倍率で各タグを再生します(F7のプレビュー、1〜8倍)。
  • 書き出す前に書き出し先の検証の行を、書き出したあとに注記を読みます。
  • バンドルをエンジンで開き、Studioのプレビューと並べて同じタグを再生します。

Studioの6つの作業画面

各作業画面でいまできることと、準備中の1つの代わりに使うページです。

作業画面いまできること状態
スプライトシート・フレーム画像・GIF/APNG・.aseprite・アトラスデータの読み込み、タグとフレームごとの時間を持つタイムライン、ピボット・ボックス・衝突ポリゴン、フレームの整列利用可
パック&書き出しMaxRects・Skyline・Guillotineでのパック、トリム・重複除去・縁の拡張・マルチパック、Godot 4・Unity 6からCSS・GIFまで18形式利用可
タイルピクセルからオートタイル配置を認識、地形ビット、足りないタイルの確認、テストマップ、セットの生成、Godot・Tiled・Unity・LDtk用ファイル利用可
テクスチャシルエットからノーマルマップを生成、Godot 2Dと同じ計算のライティング、OpenGLかDirectXかの判定、Godot・Unity用バンドル利用可
ピクセルAsepriteのキーで使う鉛筆・バケツ・図形・選択、19種の合成モードのレイヤー、インデックスパレットとLospec、オニオンスキン、拡大したドット絵を1倍に戻す整理利用可
UIナインスライスのパネル、ボタンの状態、ビットマップフォントはいまUIラボで対応準備中(当面はUIラボ)

トラブルシューティング

症状考えられる原因確認方法対処
エンジンでピクセルがぼやけるエンジンが最近傍ではなくフィルタリングでテクスチャを描いている拡大すると縁がにじむ同梱のインポート設定(UnityはPoint、GodotのシーンはNearest)を保つか、エンジン側で最近傍フィルターにする
Unityのインポータースクリプトがコンパイルできない2D Spriteパッケージ(com.unity.2d.sprite)がない。3DテンプレートなどコンソールにUnityEditor.U2D.Sprites関連のエラー2D Spriteパッケージを入れてから取り込み直す
書き出したGIFの色が変わる255色を超えるとmedian cutで減色し、アルファはオンかオフだけになる書き出しの注記にパレットを減らしたと出る色を正確に残したいならPNGかAPNGで書き出す
ブラウザのデータを消したら作業が消えたプロジェクトはブラウザの保存領域に自動保存され、サイトデータを消すと一緒に消えるプロジェクト一覧が空残したい作業は.nerulioファイルに保存する

ほかの方法

方法こんなときに向いています
Aseprite(デスクトップ)長時間の作画、タイルマップレイヤー、スクリプト。Nerulioは.asepriteを読み書きするので併用できます:Asepriteの代わりを参照。
エンジンのエディター(UnityのSprite Editor、GodotのSpriteFramesパネル)長さが均一でほかに何も要らないとき、シート1枚をプロジェクト内で切ってアニメーションにする。

エンジン別の書き出しと検証方法

「検証済み」は、実際のCC0アセットから書き出したファイルを本物のエンジン・ツールで読み込み、元データと比較したという意味です。読み込んでいない形式はそのように表示します。

書き出し先ファイル検証
Godot 4.tres SpriteFrames · .tscn AnimatedSprite2D · .png.import検証済み Godot 4.7.2Godotで読み込み、全アニメーションフレームを描画して元ファイルと比較。シーンはNearestフィルターで、回転は使いません。
Unity 6.unity.json · Editor/NerulioSpriteImporter.cs · AnimationClip検証済み Unity 6000.5.3f1バッチモードでスプライト範囲・ピボット・ピクセル・クリップのキーと長さを確認。
Phaser 3 / 4atlas JSON (multiatlas) · .anims.json検証済み Phaser 3.90 + 4.2両バージョンでフレームとアニメーションを描画。
PixiJS 8spritesheet JSON · animations · anchor · meta.scale検証済み PixiJS 8.21回転・複数ページのアトラスも確認。
Aseprite JSONhash / array · frameTags · slices検証済み Phaser load.aseprite · PixiJS 8.21タグの方向と繰り返し回数を保持。
.asepritelayers · tags · durations · slices検証済み Aseprite 1.3.18Asepriteのコマンドラインで開いて描画。
Spine / libGDX.atlas検証済み spine-canvas 4.2Spineランタイムで回転・トリム領域をすべて描画。libGDX本体は未実行。
Starling / Sparrow XMLXML per page検証済み Phaser 4.2Phaser 3.90はトリムされたXMLフレームを誤って描画します(Phaser側の不具合)。「Sparrow XML (Phaser 3)」プリセットはトリムを切り、3.90・4.2とも合格。
LÖVELua quads · nerulio_atlas.lua · main.lua検証済み LÖVE 11.5同梱ヘルパーで全フレームを描画し、全アニメーションを再生。
Defold.atlas · .tilesourceビルド確認 Defold bob.jar 1.13.1Defoldのコマンドラインビルダーでビルドし、生成テクスチャのUVを読み戻して確認。
GameMakerspr_<name>_stripN.png · gamemaker.json未検証GameMakerでは読み込んでいません(ヘッドレス実行不可)。ストリップはGameMakerの取り込み方式どおりに切ります。
CSS sprites.css · preview .html検証済み Chromium同梱スタイルシートで全クラスを描画。
GIF / APNGone file per animationデコード確認 Pillow書き出し後に全フレームと遅延を再デコード。APNGは完全一致。

検証の根拠

GIFデコーダー:実在のGIF 29本で408/408フレームがPillowと一致、APNG 16本で132/132。.aseprite:コーパス231ファイルを読み込み・書き直し、Aseprite 1.3.18で開いてタグ・長さ・ピクセルが231/231一致。書き出し:実在のCC0アセットで実際のエンジンを49回実行し47回合格。失敗2回はPhaser 3.90のトリムXMLの不具合で、Phaser 3プリセットで回避できます。

制限

  • ピクセル作業画面にはレイヤーグループ、タイルマップレイヤー、RotSprite、テキストがありません。
  • UI作業画面(ナインスライス、ボタンの状態、ビットマップフォント)はまだStudioになく、UI Labが担当します。
  • GameMaker書き出しはGameMakerではUNVERIFIEDです。
  • グリッド・島の推定は信頼度つきのプレビューで、「適用」を押すまで何も切りません。すべての選択に代替案があり、ワンクリックで切り替えられます。
  • レイヤーが正確に合成できない.asepriteファイル(グループの不透明度など)は統合して読み込み、理由を読み込みパネルに表示します。
  • 読み込んだアトラス内の回転フレームは回転したままで、その書き出しは未検証です。
  • 画像は一辺32,768px(2億6,800万ピクセル)まで。ブラウザのメモリにも依存します。

バージョンと出典

.asepriteのテストファイル231件すべてが、同じタグ・長さ・ピクセルのままAseprite 1.3.18で開き直せました。Unity 6書き出しはUnity 6000.5.3f1のバッチモードで適用されました(矩形、ピボット、ピクセル、クリップのキー)。

参照した公式ドキュメント

よくある質問

このエディターでドット絵を描けますか?

はい、ピクセル作業画面で描けます。ピクセルのタブに切り替えると鉛筆・消しゴム・バケツ・図形・選択が現在のフレームで使え、1本の線が1回の取り消しです。Aseprite・Pixelorama・Piskelのファイルも読み込めます。.asepriteはレイヤー・タグ・長さ・スライスごと、ほかのツールはPNGシートかフレーム画像で。

UnityのSprite Editorと同じものですか?

違います。UnityのSprite Editorはプロジェクト内でテクスチャを切る機能です。こちらはブラウザでグリッドを測り、スプライト範囲・ピボット・タグごとのAnimationClipを作るJSONと小さなエディタースクリプトを書き出します(Unity 6000.5.3f1のバッチモードで確認)。

どのくらい大きなシートまで開けますか?

一辺32,768px(2億6,800万ピクセル)までで、ブラウザのメモリにも左右されます。パックはChromiumのワーカーで1,000フレームを2.4秒で処理し、キャンセルすればすぐ止まります。

無料ですか?アカウントは必要ですか?

このページの機能はすべて無料で、アカウントなしで使えます。透かしや制限された書き出しはありません。

スプライトはアップロードされますか?

いいえ。Studioはこのブラウザのタブ内でデコード・パック・書き出しを行います。プロジェクトはブラウザ(IndexedDB)に自動保存され、.nerulioファイルとして保存できます。

Asepriteやエンジンのプラグインは必要ですか?

いいえ。.asepriteファイルはブラウザで読み書きします。エンジン別のバンドルには必要なものが入っています(Godotはインポート設定とシーン、UnityとGodotのタイルセットは小さなエディタースクリプト)。