Claude Code で Aseprite をソースからビルドして、AI に「ドットを打つところ」を録画させてみた

・Opus 5.5 に依頼を投げてドット絵を作成
・Opus 5.5 は Aseprite のビルドも手伝ってくれる
・ドット絵作成に革命が起きました

Opus 5.5 に依頼して、ドット絵エディタの定番 Aseprite をソースからビルドしました。

最初にお断り:Aseprite は有料ソフトです。ソースからのビルドは EULA で「個人的な目的」に限って認められていますが、ビルドしたものを配布することは禁止されています。詳しくは記事の最後の「ライセンスについて」をご覧ください。


1. はじまり:「この ZIP、ビルド必要?」

まず、Aseprite を GitHub からダウンロードしました。

→https://github.com/aseprite/aseprite → Code →「Download ZIP」

展開すると aseprite-main というフォルダになります。

Claude に中身を見てもらうと、以下の答えが返ってきました。

  • 中身は Aseprite の C++ ソースコード で、exe は入っていない
  • 依存ライブラリ(laf/ と third_party/)の中身が空。これらは git のサブモジュールなので、ZIP には含まれない

つまり、この ZIP のままではビルドできません。サブモジュールごと clone し直す必要があります。

Opus 5.5に依頼をかけると実施してくれるので、以下は読まなくて大丈夫です。

git clone --recursive https://github.com/aseprite/aseprite.git

2. ビルド:3つのつまずき

必要なものは Visual Studio(C++)、CMake、Ninja と Skia(描画ライブラリ)です。VS の Build Tools には CMake と Ninja が同梱されていたので、追加で用意したのは Skia だけでした。Skia は aseprite 公式のビルド済み配布物をダウンロードしました。

build.sh は途中で入力を求めてくるので、Claude は同じ設定を CMake + Ninja のコマンドで直接実行しました。ここで3回つまずいています。

つまずき1:LNK1104(ファイルを開けない)

リンクの途中でエラーになりました。原因は Windows Defender のリアルタイム保護 だと考えられます。ビルド中にできたばかりの exe を、スキャンのためにロックしていたようです(Defender のリアルタイム保護が有効だったことと、除外設定で失敗が大きく減ったことからの推定です)。

つまずき2:PRIo64 が見つからない(本当の原因は同じ)

再開すると、今度は libarchive のコンパイルエラーになりました。一見別の問題ですが、Claude は CMake のログを調べて本当の原因を突き止めました。

configure(環境チェック)の段階で、CMake が作る小さな検査用 exe も Defender にロックされていた。17個のチェックが失敗し、「この環境には inttypes.h がない」という 間違った判定 が記録されていた。

表面のエラーではなく、ログをさかのぼって根本原因を見つけてくれたのは助かりました。

解決:build フォルダだけ一時的に除外

セキュリティ設定の変更は Claude からは行わず、私が自分で Defender の除外に build フォルダだけを追加しました。除外することのリスクも事前に説明してもらえたので、納得したうえで操作できました。ビルドが終わったら除外は外しています。

build フォルダを作り直してビルドすると、aseprite.exe が起動しました。なお、デフォルトは英語なので日本語化したいときはまたOpusに依頼してください。手動なら以下です。

3. 日本語化:翻訳は別リポジトリ

ソースからビルドしたものには 英語しか入っていません。翻訳は公式の別リポジトリ(aseprite/strings)で管理されています。そこから ja.ini を取得して配置し、設定ファイルの言語を ja にしたところ、メニューが日本語になりました。日本語のフォントは Windows のシステムフォントが自動で使われるので、別に入れる必要はありませんでした。

4. 「何か描いて」→ スライムが完成品で出てきた

Claude に絵を頼むと、Aseprite の Lua スクリプト機能 を使って 32×32 のスライムを描いてくれました。

スライム

楕円の内側を塗り、そのふちを輪郭にする計算で体を作り、目・口・ほっぺをドット単位で置いています。かわいいです。

でも、私が見たかったのは ドットを打っているところ でした。

5. 「ドット打つのが見たかったんですが…」

そう伝えると、Claude は方法を変えました。

  • Aseprite の GUI の中でスクリプトを動かす
  • 0.02 秒ごとに、鉛筆ツールで1ドットずつ打つ

(本物のツール操作として記録されるので、理屈の上では描き終わってから Ctrl+Z で1ドットずつ戻せるらしい。)

なお、どこにどの色を打つかはスクリプトが計算で決めています。AI がその場で1ドットずつ判断して描いているわけではなく、「AI が書いた描画プログラムを、Aseprite の中で再生している」というのが正確なところです。(らしい)

6. 「録画したいねん!!!」

さらに録画を頼むと、PC に入っていたツールを使って Aseprite のウィンドウだけを録画してくれました。

スライムを描く様子

7. カレーライスと猫

同じ方法で カレーライス も描いてもらいました。お皿 → ごはん → カレー → 具 → 福神漬け → つや → 湯気、の順に描いてくれました。

カレーを描く様子

次に、手元にあった猫のイラストを渡して「録画もして」と頼みました。(※ 元のイラストは私が用意したものです。他人の作品を変換して公開する場合は、権利に注意してください)Claude は Python(Pillow)で画像を 56×56 のドット絵に変換し、描く順番を決めてから Aseprite で描いています。

猫を描く様子

描く順番は「輪郭 → 明るい色から暗い色へ」です。白っぽい部分から塗り始め、最後に目が入るので、見ていて楽しい動画になりました。ただし、これは 元のイラストを機械的に変換したもの で、AI がオリジナルで描いた絵ではありません。

カレーと猫、描き方の違い

ここは今回の山場だと思います。「カレーはどうしてお皿から描いたの?カレーが何か理解しているから?」と Claude に聞いてみました。返ってきた説明をまとめると、理由は2つありました。
(まttったく可愛くないやつだな、Opus5.5君ってやつは!)

  1. 上から重ねて塗る方式だったから:カレーのスクリプトは、後から打ったドットが前のドットを上書きします。先にカレーを描くと、あとから塗ったお皿で消えてしまいます。そのため、奥(下)にあるものから手前(上)にあるものへ、という順番にする必要がありました。絵を描くときの定番の順番(背景 → 本体 → 細部 → 仕上げ)と同じです。
  2. カレーライスの知識から部品を組み立てたから:Claude は、カレーライスがお皿・ごはん・ルー・具・福神漬け・湯気でできていることを知識として持っています。そこから「お皿は楕円」「ごはんは左」「ルーは右」と部品ごとに形と位置を決め、どれが下にあるかを考えて順番を決めたそうです。ただし本人いわく、実物を見て分かっているわけではなく、「言葉として知っている部品を、図形として組み立てた」 のが正確なところ

ね?まったく可愛くない答えですよね。
「そうです」でいいじゃないですか?

一方、猫はまったく違う仕組みでした。

カレー猫
絵の出どころClaude が部品を考えて組み立てた渡した画像を縮小・減色した
描く順番の決め方奥のものから手前のものへ(意味で決めた)輪郭 → 明るい色から暗い色へ(色の機械的なルール)
上書きあり(お皿の上にごはんを重ねる)なし(各ドットは最終的な色で1回だけ打つ)
「これは何か」の理解「これはごはん」と部品として扱っている「これは目」とは扱っていない

つまり、カレーは 意味から組み立てた絵、猫は 画像を機械的に写したもの です。見た目は同じ「1ドットずつ描く動画」でも、中身は別物でした。

8. まとめ

  • Aseprite はソースからビルドできる。ただし サブモジュールなど追加で必要になるものが出てくる。 Defender との相性 に注意
  • Aseprite の Lua スクリプト と 録画 を組み合わせると、「AI がドットを打つ様子」を確認できる
  • 同じ「1ドットずつ描く動画」でも、意味から組み立てた絵(カレー)と 画像を機械的に写したもの(猫)では中身がまったく違う

ライセンスについて(大事なこと)

Aseprite は 有料で販売されているソフト です(公式サイトや Steam で購入できます)。ソースコードが GitHub で公開されていても、オープンソース(自由に使ってよいソフト)ではありません。2016年に GPL から独自の EULA(利用規約)に変更されています。

リポジトリ同梱の EULA と公式 FAQ で確認できる範囲では、次のようになっています。

  • できること:ソースコードを 自分の個人的な目的のため にコンパイル・改変すること(EULA 2(g))。公式 FAQ にも、ダウンロードしてコンパイルし、個人的な目的で使えるという趣旨の説明があります
  • できないこと:コンパイルしたものを 他人に配布すること(EULA 2(b)、FAQ にも2016年8月以降は再配布不可と明記)。貸与・レンタルも禁止です

この記事は「ビルドの過程で起きたこと」の記録であり、無料で手に入れる方法として勧めるものではありません。ビルドには手間がかかりますし、新しいバージョンが出るたびに自分でビルドし直す必要もあります。Aseprite を気に入ったら、ぜひ 購入して開発を支援 してください。※大まかな流れはOpusさんに実施いただいたので、この記事もOpusさんの支援を大きく受けています。

※ 規約は変わることがあります。利用前に必ず、最新の EULA と公式 FAQ(aseprite.org/faq)をご自身で確認してください。


おまけ

スプライト作成してくれるの、たすかる。

‹ サイトトップへ戻る