本文へスキップ

Pixel Snapperの代替 · ドット整理ツールを実測比較

偽物のドット絵を本物のグリッドに戻すという無料ツールはいくつもあります。Sprite FusionのPixel Snapper、unfake.js、perfectPixelをそれぞれの初期設定で、元の1倍画像が分かっているCC0スプライト69件に同じように実行し、同じ方法で採点しました。Nerulioが勝った所と負けた所を両方載せます。

描くスプライト・フレーム・GIF・.aseprite、または整理する拡大画像をドロップ
空のStudioを開く
ブラウザ内で処理し、ファイルはアップロードされません。
Studio のピクセル作業画面の整理パネル:画像生成で作られたCC0画像を「不確か」と判定し、自動では適用しない
CC0アセット(OpenGameArt)を開いた実際のStudio画面です。
書き出し先
  • .aseprite検証済み· Aseprite 1.3.18
  • Palette files測定確認· read back
  • Engine bundles検証済み· Godot 4.7.2 · Unity 6000.5
  • Frame PNG · .nerulio通常ファイル

できること

  • ケース:CC0のスプライト・タイル13点(Kenney、Eris、GrafxKid、DezrasDragonsなど)を決まった方法で劣化させたもの。ニアレスト×2〜×8、小数倍ニアレスト、バイリニア・バイキュービック・Lanczos拡大、JPEG、ぼかし、ドットの大きさが不揃いな模擬生成画像。
  • 採点:最大2pxずらして最も合う位置での完全一致ピクセル、Oklab ΔE 0.02以内のピクセル、結果のサイズが正確か1px以内か。失敗した実行は0として数えるので、難しいケースを飛ばして良く見せることはできません。
  • 画像生成で作られた実際の画像7枚には正解がありません。Nerulioは7枚とも「不確か」と判定してサイズを変えず、弱い候補を表示しました。ほかのツールは必ず推定を返し、同じ3枚でunfake.jsはドットの大きさ3、Pixel SnapperとperfectPixelは約6を選びました。
  • Nerulioは変更の前に測ったグリッドと確かさを表示し、結果はエディタの新しいスプライトになるので、はみ出しピクセル・パレット・縁取りを手で直せます。
  • すべてを再実行できるスクリプトとデータが、ツールのバージョンと設定つきでリポジトリ(docs/pixel-bench)にあります。

同じ69件、同じ採点

全体の結果で、失敗した実行は不正解として数えます。docs/STUDIO-PIXEL.md §5、docs/pixel-bench/H2H.md §3。

ツールサイズ一致サイズ±1px完全一致ピクセルΔE 0.02以内失敗
Nerulio、初期設定81 %90 %63.2 %75.4 %0
Nerulio、背景を残す81 %90 %74.0 %91.1 %0
unfake.js(ライブラリ初期設定)25 %41 %44.6 %64.6 %0
unfake.js(ブラウザツール、グリッド自動)26 %42 %40.7 %64.8 %0
perfectPixel30 %43 %33.9 %55.9 %15
Sprite Fusion Pixel Snapper6 %28 %33.4 %54.7 %0

この数値の出典: docs/STUDIO-PIXEL.md §5, docs/pixel-bench/H2H.md

Pixel Snapper, unfake.js and perfectPixelのほうが向いている場合

  • スクリプトから呼べるライブラリであること。Pixel Snapperはコマンドライン付きのRust、unfake.jsはJavaScript、perfectPixelはPython。Nerulioの整理はStudioの中だけで動き、コマンドラインはありません。
  • JPEG入力を初期設定で処理すると、unfake.jsのほうがΔE 0.02以内のピクセルを多く残しました(74.6 %、Nerulioの初期設定は48.4 %)。Nerulioは背景を残して84.0 %になります。
  • 生成画像にも必ず答えを返すこと。Nerulioは不確かな画像を、ドットの大きさを入力するまでそのままにします。
  • perfectPixelは模擬生成画像のサイズを2倍の頻度で正確に当て(40 %対20 %)、きれいなニアレスト拡大でグリッドを検出できれば結果は正確です。

使い方

  1. 拡大された画像や生成画像をこのページにドロップすると、ピクセル作業画面に開きます。
  2. 整理パネルで「測定」を押して判定を読みます。正確なブロックのグリッド、小数倍やなめらかな拡大、または推奨サイズつきの「不確か」。
  3. 不確かな画像は、描かれたグリッドを拡大して見えるドットの大きさを入力します。色が汚れていれば色数の上限かパレットへの減色をオンに。
  4. プレビューのあと新しいスプライトとして適用し、書き出す前に鉛筆で数ピクセルを整えます。

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

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

書き出し先ファイル検証
.asepritelayers · blend · opacity · locked · indexed palette · frames · tags検証済み Aseprite 1.3.18実際のAsepriteコマンドラインで、インデックスモード・レイヤー2枚・不透明度160の乗算・編集不可のロックレイヤーのまま開き直し、フレームのピクセルも一致しました。
Palette files.gpl · .pal · .hex · .ase · .act · .json測定確認 read back各形式を書き出して読み戻し、一致を確認。Asepriteが書いた.gpl・.pal・.hex・.actと実際のAdobe .ase(16色)も読み込めました。
Engine bundlesGodot 4 · Unity 6 · Phaser 3/4 · PixiJS 8 … through Pack & Export検証済み Godot 4.7.2 · Unity 6000.5描いたスプライトはパック&書き出しでまとめます。そのエンジン用ファイルは実在のCC0アセットで各エンジンに読み込んで確認済み(49回中47回合格。失敗2回はPhaser 3プリセットで避けられるPhaser 3.90のバグ)。
Frame PNG · .nerulioPNG-8 with the palette when an indexed frame fits it · project file通常ファイルどのツールでも使える通常ファイルで、エンジンでの検証は主張しません。

検証の根拠

整理のベンチマーク(元の1倍画像が分かっているCC0ケース69件):サイズを正確に当てたのは81 %(±1px:90 %)、背景を残すとピクセルの74.0 %が完全一致。最も良い競合ツールはサイズ30 %(perfectPixel)、完全一致ピクセル44.6 %(unfake.js)。Asepriteで作った×4ニアレスト拡大は100 %、×3.78バイリニアは99.7 %一致で戻り、どちらもサイズは自動で判定。1pxのアウトラインとドロップシャドウはAsepriteの結果とピクセル単位で一致(1846px・705px)。ここで書いた.asepriteはAseprite 1.3.18でインデックスモード・レイヤー・合成モード・ロックのまま開きます。

制限

  • ピクセル作業画面にないもの(Asepriteにはある):レイヤーグループ、リンクセル、タイルマップレイヤー、参照レイヤー、RotSpriteと選択範囲の自由回転・拡縮(反転と90°のみ)、グラデーション・スプレー・輪郭・テキストツール、カスタムブラシ(四角・丸の1〜16px)、タイル状の連続描画、LuaスクリプトとCLI。
  • 対称軸は数値入力で、キャンバス上でドラッグできません。タッチでは右ボタンがないため、背景色は入れ替えボタンかXで使います。
  • 整理:JPEGは近い色で戻りますが(背景を残すと84 %がΔE 0.02以内)、完全一致はまれ(12 %)。模擬的な生成画像でサイズが完全一致したのは20 %(±1px:80 %)、実際の生成画像7枚は1枚も自動では合わせません。パネルが示すピクセルサイズを入力してください。
  • インデックス変換はAsepriteのRGB距離ではなくOklabで最も近い色を選びます。テスト用スプライトでは68 %のピクセルが別の(見た目により近い)色になりました。Lospec検索が唯一の通信で、事前に確認します。

よくある質問

画像生成で作った絵にはどのツールが一番いいですか?

まだ頼れるツールはありません。模擬生成画像でサイズを正確に当てた回数が最も多いのはperfectPixelで(40 %、Nerulioは20 %)、Nerulio・perfectPixel・Pixel Snapperは80 %のケースで1px以内でした。差が大きいのは完全一致ピクセルで、背景を残したNerulioは70.3 %、ほかのツールはすべて7 %未満でした。

Nerulioが一部の画像を合わせないのはなぜ?

グリッドの根拠が弱いと推測せず「不確か」と伝えます。それでも最良の候補とそのグリッドを表示するので、そのサイズを入力して適用できます。競合ツールはどれだけ確かかを示さずに推定を出力します。

競合ツールは公平に実行しましたか?

利用者が使うのと同じように、それぞれの初期設定で実行しました。Pixel Snapperはサイト自身のWebAssemblyビルドで16色、unfake.jsはライブラリとブラウザツール、perfectPixelはPythonパッケージ。設定とバージョンはdocs/pixel-bench/H2H.mdにあります。

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

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

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

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

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

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