本文へスキップ

ピクセルパーフェクト チェッカー · 倍率・ぼけ・グリッドずれの検出

このスプライトは本当に3倍ニアレスト?それとも2.5倍バイリニア? チェッカーは色が変わる列と行を見つけ、そこからブロックサイズを証明します。サンプリングも推測もしません。

スプライトのフレーム(PNG)をドロップ。複数フレームでひとつのパレットを共有します
ピクセルラボを開く
ブラウザ内で処理し、ファイルはアップロードされません。
ピクセルラボ:抽出した1つのパレットに固定したCC0スプライトのフレームと色ごとのピクセルの割合
CC0アセット(OpenGameArt)を開いた実際のピクセルラボ画面です。
出力
  • PNG frames測定確認· Pillow
  • Palette測定確認· re-import
  • pixel-lab.json未検証

できること

  • 色が変わる位置から正確な整数倍率とオフセットを検出(グリッドのずれた切り抜きも検出)。
  • 最も短い連続区間だけから非整数倍率を推定(2.5倍ニアレスト拡大は2.500倍と判定)。
  • ぼけ検出:2つの隣接色の中間色を持つ縁のピクセルと半透明ピクセルを数えます。
  • 正確なグリッドが証明されたときだけ1倍の元画像を復元、1×〜8×の整数拡大、色数予算・シルエットのチェック。

使い方

  1. 画像をドロップ。
  2. レポートで倍率・オフセット・ぼけた縁を確認。
  3. 正確なグリッドがあれば1倍を復元、なければ整数倍で拡大。
  4. 書き出し。

出力ファイルと検証方法

「測定確認」は、ダウンロードしたファイルをページ外(Pillow・numpy・独立したパーサー)で開き直して性質を測ったという意味です。ゲームエンジンでの読み込みは試していません。

書き出し先ファイル検証
PNG framesanim_N.png · 1×–8× nearest測定確認 Pillow書き出したPNGを読み直し、すべての色が固定パレット内にあることを確認。
Palette.gpl · .hex (Lospec) · .json測定確認 re-import各形式を書き出してUIで読み戻し、16 → 16色を確認。
pixel-lab.jsongeneric frames + palette未検証汎用JSONで、どのエンジンでも読み込んでいません。

検証の根拠

アンチエイリアスのかかった8フレーム → 16色パレット1つ、パレット外の色0。ディザーなしとBayer 4×4の両方で変化のない領域が全8フレームで同一。アンチエイリアス除去で271色 → 16色、シルエットの移動0ピクセル。整数倍率・オフセット・2.5倍の非整数倍率を正確に検出。

制限

  • 4096 × 4096より大きいフレームは受け付けません。すべての処理がメインスレッドで動き、まだキャンセルボタンがありません。
  • スプライトシートは1枚の画像として扱います。先にフレームに分割してください(スプライトシート分割)。
  • ディザーを有効にすると、クリーンアップの件数にディザーのピクセルが含まれます。先にディザーを「なし」にしてください。
  • 書き出すJSONは汎用形式で、Godot・Unityへの読み込みは試していません。

よくある質問

「確信なし」と出るのはなぜ?

単色の画像や一方向にしか変化しない画像には測るグリッドがありません。推測せずにそう伝えます。

ぼけた(バイリニア)拡大を直せますか?

測定はします。テストのスプライトでは縁のピクセル1243個(86.3%)が中間色でした。ただし正確な復元は、きれいなブロックグリッドがあるときだけです。

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

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

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

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

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

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