本文へスキップ

Asepriteファイルを開く · インストール不要のビューア

受け取った.asepriteファイルを見たいのに、このPCにAsepriteが入っていない。そんなときはここにドロップしてください。ファイルはこのブラウザのタブ内で解析され、全フレームをAseprite自身のPNG書き出しと同じ方法で合成し、タグはタイムラインですぐ再生できます。

.aseprite・.aseファイルは画像ではなく、Aseprite独自のバイナリ文書です。フレームごとのミリ秒単位の長さ、ブレンドモードと不透明度を持つレイヤー、セル、タグ、スライス、パレットが入っているため、ブラウザや一般的な画像ビューアでは開けません。ここにドロップすると、Nerulioがこのタブの中で解析し、AsepriteのPNG書き出しと同じ方法でフレームを合成し(実ファイル231個をAseprite 1.3.18.6と照合済み)、タグを再生します。Aseprite JSON付きのPNGシート、タグごとのGIF・APNG、新しい.asepriteとして保存もできます。アップロードはありません。

スプライトシート、連番フレーム、GIF・APNG、.asepriteファイルをドロップ
空のStudioを開く
ブラウザ内で処理し、ファイルはアップロードされません。
Studio のスプライト作業画面:4つのタグ(順・逆・ピンポン・繰り返し回数)、フレームごとの長さ、スライス由来のヒットボックスを持つ.asepriteファイル
CC0アセット(Nerulio)を開いた実際のStudio画面です。
書き出し先
  • Aseprite JSON検証済み· Phaser load.aseprite · PixiJS 8.21
  • .aseprite検証済み· Aseprite 1.3.18
  • 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
  • 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

.asepriteファイルの中身

この形式はAsepriteプロジェクト自身が仕様を公開しています。128バイトのヘッダーにはマジックナンバー0xA5E0、キャンバスサイズ、色深度があります。1ピクセル32ビットならRGBA、16ビットならアルファ付きグレースケール、8ビットならインデックスカラーで、全ピクセルがパレット番号になり、そのうち1つを透明色に使えます。その後にフレームが続きます。各フレームは16バイトのヘッダーに自分の長さ(ms)を持ち、レイヤー(最初のフレーム)、セル、パレット、タグ、スライス、ユーザーデータ、タイルマップレイヤー用のタイルセットといったチャンクが続きます。

Asepriteの画面で見える絵は、完成画像としてはどこにも保存されていません。表示中のレイヤーを下から上へ描いてフレームを作ります。セル(1レイヤーの1フレーム分のピクセル、固有のx・y位置)を、レイヤー不透明度×セル不透明度で、NormalからDivideまで19種類のブレンドモードのどれかで重ねます。セルは別フレームのピクセルを参照するリンクセルのこともあり、そのフレームだけレイヤー順を入れ替えるz-indexを持つこともあります。最初のレイヤーしか見せない、あるいはブレンドモードを無視するビューアは、Asepriteが決して書き出さない絵を表示します。

Nerulioは、自前の合成処理でレイヤーを描き直した結果がAsepriteのレンダリングとピクセル単位で一致する場合だけレイヤーを保持します。一致しなければ統合したフレームを表示し、理由を記録します。テスト用の実ファイル231個では222個がレイヤー保持、9個が統合でした(グループ合成が再現できない5個、セルz-indexでレイヤー順を変える4個)。どちらでもフレームのピクセルは同じです。

セル(Cel)
1レイヤーの1フレーム分のピクセル。位置と不透明度を個別に持ちます。リンクセルはピクセルの代わりに別フレームのセルを参照します。
タグ
名前付きのフレーム範囲(from–to)。方向(順方向・逆方向・ピンポン・逆ピンポン)と繰り返し回数を持ちます。繰り返し0は「指定なし」で、Asepriteのエディタでは無限、書き出し時は1回です。
スライス
名前付きの矩形。9パッチの中央やピボット点を持てます。キーはフレーム単位で、あるキーは次のキーまで有効です。
カラーモード
RGBA、グレースケール、インデックス。インデックスのファイルはアニメーションの途中でパレットが変わることがあり、番号の1つが透明色です。

具体例:小さなキャラクターファイルを読む

レイヤー3枚・タグ3つの32 × 32 RGBAファイルを読み込んだときに、インポートパネルとタイムラインに出る内容と、そこから計算できるタイミングです。

hero.aseprite  32 × 32 px · RGBA · 16フレーム · レイヤー3 · タグ3 · スライス2
layers  outline  Normal    255
        shadow   Multiply  128   (下のレイヤーの上に 128/255 ≈ 50 % で描画)
        body     Normal    255
tags    idle    0–3    4 × 125 ms                    順方向 ∞   1サイクル 500 ms
        walk    4–9    6 × 100 ms                    順方向 ∞   1サイクル 600 ms
        attack  10–15  100,100,100,100,150,250 ms    順方向 ×1  1回再生、800 ms
slices  pivot  点 (16, 31)、全フレーム        → フレームのピボット、信頼度 高(名前)
        hit    20 × 8、フレーム12から          → ヒットボックス、信頼度 中(名前)

idleをピンポンにすると1サイクルは0-1-2-3-2-1の6ステップ、750 msになります。2つのスライスの推定はインポートパネルの判断項目なので、クリックしてhitをハートボックスに変えたり無視したりできます。

できること

  • 19種類のブレンドモード、レイヤーとセルの不透明度、グループ、非表示・参照レイヤー、セルのzインデックス、リンクセルまでAsepriteの書き出しと同じに合成。
  • RGBA・グレースケール・インデックスカラーに対応し、フレームごとに変わるパレットと透明インデックスも反映。タイルマップレイヤーはX・Y・斜めの反転込みでタイル単位に描画。
  • タグの方向(順・逆・ピンポン・逆ピンポン)と繰り返し回数、フレームごとの長さ(ms)。
  • スライスはStudioのデータに。pivot・origin・anchorという名前ならピボット、それ以外は名前からhit・hurt・interact・カスタムのボックスに、9パッチは中央領域を保持。

使い方

  1. .asepriteか.aseファイルをStudioのどこかにドロップ。
  2. インポートパネルで、レイヤーを保ったか統合したかとその理由、各スライスの割り当てを信頼度付きで確認。
  3. Enterで現在のタグを再生し、, と . で1コマずつ送り、オニオンスキン(F3)やフローティングプレビュー(F7、最大8倍)を使う。
  4. タイムラインでフレームをクリックすると、フレームパネルに長さ・ピボット・ボックスが出ます。
  5. 別の形式で残すなら、パック&書き出し(PNGシート+Aseprite JSON、タグごとのGIF・APNG)か、スプライトメニューの「.aseprite を書き出し…」を使う。

ビューアから保存できるもの

ファイル用途
hero.png + hero.jsonパック&書き出し › Aseprite JSON(ハッシュまたは配列):frames、meta.frameTags、meta.slicesを持つパック済みシート1枚。Aseprite自身のスプライトシート書き出しと同じ構造です。Asepriteからスプライトシートへを参照。
hero_idle.gif …パック&書き出し › Animated GIF:タグごとに1ファイル、ディレイは1/100秒単位に丸め。AsepriteからGIFへを参照。
hero_idle.png …パック&書き出し › APNG:タグごとにアニメーションPNG 1つ、全ピクセルとミリ秒がそのまま。
hero.asepriteスプライト › .aseprite書き出し…:レイヤー・タグ・長さ・スライスを持つ、Asepriteで開ける新しいファイル。ドロップした元ファイルは変わりません。

結果の確認

  • インポートパネルのレイヤー判断:「layered」はレイヤー行が全フレームでAsepriteのレンダリングを再現するという意味、「flattened」には理由と最初に食い違ったフレームが書かれます。
  • ,と.でタグを1フレームずつ送り、フレームパネルで長さを読みます。合計が1サイクルです(walk:6 × 100 ms = 600 ms)。
  • Enterでタグを再生します。繰り返し×1なら最後のフレームで止まり、∞ならループし続けます。

.asepriteファイルから読み取るもの

ファイル内の情報Studioでの表示照合先
レイヤー・グループ・ブレンド・不透明度タイムラインのレイヤー行。正確に再現できない場合は理由付きで統合Aseprite 1.3.18.6のフレーム書き出し:231/231ピクセル一致
タグとフレームの長さフレーム上のタグ行とフレームごとのms。再生は方向と繰り返しに従うAsepriteのスクリプトで見た値:231/231一致
スライス:ピボット・通常・9パッチフレームのピボット、hit・hurt・interact・カスタムのボックス、9スライスの境界スライスを含むコーパス31ファイル
タイルマップレイヤーとタイルセット反転込みでタイル単位にフレームへ描画タイルマップを含むコーパス23ファイル
インデックス・グレースケールAsepriteのPNG書き出しと同じくインデックスで合成したフルカラーインデックス54本、グレースケール13本

ICCカラープロファイルは読み込んで保持しますが、色には適用しません。AsepriteのPNG書き出しも適用しません。

トラブルシューティング

症状考えられる原因確認方法対処
「Asepriteファイルではない」「途中で終わっている」ヘッダーがAsepriteのマジックナンバー0xA5E0で始まっていない(別のプログラムの.ase)、またはダウンロードが途中で切れています元ファイルとサイズを比べ、可能ならAsepriteで開いてみます完全な元ファイルを入手してください。別のプログラムが作った.aseはここでは読めません
レイヤーが「Flattened」1枚になるセルz-indexやグループ合成など、レイヤーを分けたままでは同じ結果にならない機能を使っていますインポートパネルのレイヤー判断に理由とフレームがありますフレームのピクセルは正確です。レイヤー単位で作業するならAsepriteでレイヤー構成を直して読み込み直してください
Asepriteで見えていたレイヤーがフレームにない非表示(目のアイコンがオフ)か参照レイヤーです。Asepriteの書き出しも両方を除外し、Nerulioも同じですインポートパネルのレイヤー一覧、またはAsepriteの目のアイコンAsepriteでレイヤーを表示にして保存してください。参照レイヤーはフレームに含まれません
スライスが違う種類のボックスになる、ピボットがないボックスの種類はスライス名(hit、hurt …)から推定し、ピボットは名前がpivot・origin・anchorのスライス、なければピボット点を持つ最初のスライスですインポートパネル:スライスごとの判断と信頼度正しい種類(hit、hurt、interact、custom)を選ぶか無視します。ピボットスライスのないフレームは下中央を使います
色がAsepriteのキャンバスと少し違うファイルにICCカラープロファイルがあります。保持はしますが適用はせず、AsepriteのPNG書き出しと同じ扱いですAsepriteのカラープロファイル設定エディタのキャンバスではなく、Asepriteから書き出したPNGと比べてください

ほかの方法

方法こんなときに向いています
Aseprite本体レイヤー・グループ・タイルマップ・スクリプトまで、すべての機能でファイルを編集したいとき。ここで開くのは読み取り専用です。
Asepriteのコマンドライン(aseprite -b)Asepriteがあり、スクリプトで出力したいとき:--sheet、--data、--list-tags、--list-slices、タグごとのGIFは--save-asに{tag}。
ブラウザで使えるAseprite代替ファイルを開くだけでなく、描いてアニメーションを作りたいとき。

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

「検証済み」は、実際の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プリセットで回避できます。

制限

  • グループレイヤーはグループとして残りません。末端のレイヤーごとにarms/leftのようなグループパスを名前にした行になります。
  • 参照レイヤーはAsepriteの書き出しと同じく除外します。
  • グリッド・島の推定は信頼度つきのプレビューで、「適用」を押すまで何も切りません。すべての選択に代替案があり、ワンクリックで切り替えられます。
  • レイヤーが正確に合成できない.asepriteファイル(グループの不透明度など)は統合して読み込み、理由を読み込みパネルに表示します。
  • 読み込んだアトラス内の回転フレームは回転したままで、その書き出しは未検証です。
  • 画像は一辺32,768px(2億6,800万ピクセル)まで。ブラウザのメモリにも依存します。

バージョンと出典

読み込み処理はAsepriteファイル形式の仕様に従い、実際の.asepriteファイル231個で確認しました。各ファイルを読み込み、Nerulioの書き出し処理で書き直してAseprite 1.3.18.6で開いたところ、警告なしでタグ(231/231)、長さ(231/231)、ピクセル(231/231)が一致しました。レイヤーの判断も同じファイル群の結果です(保持222、統合9)。形式の説明は仕様書とAseprite公式ドキュメントに基づきます。

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

よくある質問

Asepriteなしでaseprite をpngに変換できますか?

はい。パック&書き出しがフレームを正確なPNGライターでアトラスのページに描き(1ページが256色以下ならインデックスPNG)、選んだ書き出し先のデータファイルと一緒に出力します。動く絵が必要なら、タグごとに全ピクセルを保つAPNGを使ってください。

レイヤーが1枚に統合されたのはなぜ?

合成し直して元とピクセルが完全に一致する場合だけレイヤーを保ちます。テスト用の231ファイルでは222本が一致し、残り9本(グループ合成が異なる5本、セルのzインデックスを使う4本)はインポートパネルに理由を出して統合しました。見た目のフレームは同じです。

ここで開くと元のファイルが変わりますか?

変わりません。ブラウザは読むだけです。新しい.asepriteは「.aseprite を書き出し…」を選んだときだけ作られ、そうして書き直した231ファイルを本物のAseprite 1.3.18.6で開いたところ、すべて警告なしで開き、タグ・長さ・ピクセルも同じでした。

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

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

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

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

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

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