世界を動かす技術を、日本語で。

HNに表示: Pythonでオフラインのオープンソースデスクトップピクセルアートエディタを作りました

概要

Tilf は、 PySide6 で作られたシンプルかつ強力な ピクセルアートエディタ。 アカウント登録やセットアップ不要で、すぐに スプライト作成 可能。 Windows、MacOS、GNU/Linuxで動作、 依存性が最小限。 主な機能や導入方法、 既知の制限やトラブルシューティング を解説。 オープンソース として公開、貢献も歓迎。

Tilf — Pixel Art Editor 概要

  • Tilf (Tiny Elf) は、 PySide6 で開発されたピクセルアートエディタ
  • スプライト・アイコン・小規模2Dアセット作成 に最適
  • アカウント登録・インストール・設定不要、すぐに利用開始
  • Windows, MacOS, GNU/Linux 対応、クロスプラットフォーム
  • オープンソース で、誰でも自由に利用・改良が可能

特徴(Features)

  • 基本描画ツール :鉛筆、消しゴム、塗りつぶし(バケツ)、スポイト、矩形(枠)、楕円(枠)
  • キャンバス操作
    • 新規画像作成(カスタムサイズ指定)
    • ズーム (1~50倍、マウスホイール・スライダー対応)
    • 背景色編集(アルファ対応)
    • グリッド表示 (色カスタマイズ可能)
    • キャンバス全消去 機能
  • ワークフロー
    • アンドゥ/リドゥ (最大50ステート履歴)
    • 画像ドラッグ&ドロップで開く
    • リアルタイムプレビュー (サイドドック移動可)
  • 入出力
    • PNG, JPEG/JPG, BMPの インポート/エクスポート
    • PNGは透過対応、JPEG/JPG・BMPは非対応
  • 便利な仕様
    • Shiftで矩形・楕円を正方形・円に制限
    • グリッドはズーム時(セルサイズ4以上)に表示
    • 前景色で塗りつぶし済みピクセルをクリックすると背景色に切替
    • Alt/Option押下で背景色使用強制

利用要件(Requirements)

  • Python 3virtualenv 推奨
  • 対応OS :Windows, MacOS, GNU/Linux
  • 依存パッケージ :PySide6, PyInstaller, Pillow
  • uvやpoetryは未使用、シンプルな構成

MacOS・GNU/Linuxでのビルド手順

  • リポジトリを クローン
    git clone https://github.com/danterolle/tilf.git && cd tilf
    
  • Makefile による自動ビルド
    make
    
  • 実行ファイルは distフォルダ 内に生成
    ./tilf
    

Windowsでの利用方法

  • リポジトリクローン (Git Bash推奨)
    git clone https://github.com/danterolle/tilf.git
    cd tilf
    
  • 仮想環境作成・有効化
    py.exe -m venv env
    ./env/Scripts/activate
    
  • 依存パッケージインストール
    pip install pyside6 pyinstaller pillow
    
  • アプリ実行
    py.exe ./main.py
    
  • .exeビルド
    pyinstaller --name tilf --onefile --windowed --icon assets/icon.icns --add-data assets:assets --add-data style.qss:. main.py
    
  • distフォルダ 内の実行ファイルを利用

キーボードショートカット

  • ファイル操作
    • 新規作成:Ctrl+N
    • 開く:Ctrl+O
    • 保存:Ctrl+S
  • 編集
    • アンドゥ:Ctrl+Z
    • リドゥ:Ctrl+Y
  • ツール切替
    • 鉛筆:B
    • 消しゴム:E
    • バケツ:G
    • スポイト:I
    • 矩形:R
    • 楕円:C
    • 背景色使用:Alt/Option
    • Shiftで正方形・円に制限

保存・自動保存仕様

  • エクスポート形式 :PNG(透過可)、JPEG/JPG・BMP(非透過)
  • 未保存データ がある場合、終了時にtilf_autosavesフォルダへ 自動保存(PNG, タイムスタンプ付)

ヒント・既知の制限

  • アンドゥ/リドゥ履歴 は最大50ステートでメモリ節約
  • 大きな画像・広範囲塗りつぶし は処理が遅くなる場合あり
  • グリッド表示 はズーム時(セルサイズ4以上)のみ
  • 非常に大きな画像 はパフォーマンス低下の恐れ
  • Tilfはコンパクトなピクセルアート・スプライト向け

トラブルシューティング

  • ModuleNotFoundError: No module named 'PySide6'
    • 仮想環境が有効か確認し、以下コマンドでインストール
      pip install pyside6
      

コントリビュート・ライセンス・連絡先

  • バグ・要望 はIssue登録
  • PR歓迎、コードスタイル統一・変更点説明必須
  • 機能提案 も歓迎(例:高度な塗りつぶし、選択、レイヤー等)
  • ライセンス :GPL v3.0(詳細はLICENSE参照)
  • 開発者連絡先
    • Dario 'danterolle' Camonita
    • E-mail: danterolle@catania.linux.it

Tilfの魅力まとめ

  • 登録不要・インストール不要・設定不要
  • どのPCでも 即座に自由に描画 を始められる手軽さ

Hackerたちの意見

このプロジェクトが手作りで、ここに投稿されてる99%のAI生成のものとは違うのを見るのはすごく嬉しいね。リリースおめでとう!

ありがとう!いくつかのことには使わざるを得なかったけど(例えばロゴとか、私は「グラフィック系」じゃないし)、結局シンプルなプロジェクトだから気にしなかったし、結果も悪くないよ。

本当に、なんで気にするの?

クリックしたとき、「これってバイブ感コーディング?」ってコメントが浮かんだ。だから、自分でもその質問を考えちゃった。手動でコーディングしたり、AIを使ったコーディングを試したりしてるけど、長い目で見てAI支援のコーディングに対してどんな態度を持つべきか考えてる。今のHNでは、ほとんど「AIシェイミング」みたいになってる気がする。AIを使ったプロジェクトを投稿すると、批判が多くなるのを覚悟しないといけない。ある程度理解はできるけど、その感情を乗り越える必要もあると思う。結局、IDEやコード補完、その他のツールを使ってる人を責めることはないからね。

今、人間のコードを求めるようになってるのが本当に変だよね。AI生成のコードよりも。これからあらゆるデータにおいてその傾向が増えていくと思う。

本当にシンプルに作られてパッケージ化されてるのがいいね。きっとハッキングするのも楽しかっただろうな。いろんなパッケージをくっつけるのって、私にとっては面白さがなくなっちゃうんだよね。

だからこそ、このプロジェクトはゼロから作られたんだ。プロジェクトの唯一の本当の依存関係はPySide6だけ。アイコンはどのパッケージからも来てないし、PyInstallerはバンドル目的だけで使われてる。README.mdにも書いてあるけど、Tilfを動かすにはインストールされたPython(3)のバージョンだけが必要なんだ。

すごく素敵なプロジェクトだね!ちょっとバカみたいな質問なんだけど…なんでエルフのロゴがピクセルアートじゃないの? :)

グラフィックデザイナーじゃないから、どこから始めればいいのかわからないけど、将来的にはTilfを使ってロゴを描くかもしれない!今のところ、私の最高のアート表現は、Earthboundのキャラクターを描き直してSDL3で実験することかな。

なんでそんな名前の中からTILFが一番いいと思ったの?

「Tilf」だよ、TILFじゃなくて、ドキュメントによると「Tiny Elf」って意味なんだ。なんで?それが問題なの?

埋めたいタイル。

特に理由はないけど、小さなエルフやゴブリンが自由に好きなものを描けるっていうアイデアが気に入ったんだ。最初はこのプロジェクトを「フォレット」と呼ぼうと思ったけど(イタリア語でエルフの意味)、シンプルな名前の方がいいかなって思って、鉛筆を持った小さなエルフが描き始めるって感じにしたんだ。小さなエルフ。

同じことをするピクセルアートエディターはいくつかあって、もっと多機能なものもあるけど、アカウント登録やメールの入力が必要だったり、特定のビジネスモデルがあったりするのが多いよね。 https://libresprite.github.io/

お気に入りを紹介するね、mtPaint: https://mtpaint.sourceforge.net/

最新のAsepriteは、依存関係がちょっと重いけど、無料(ビールのように)でソースコードが手に入るから、コンパイルできるよ。特別なSkiaのフォークをインストールする必要があるかも。私はWindows用のプリコンパイルバイナリを買ったけど、LinuxやOSXではいつも自分でコンパイルしてる。今はFreeBSDをデスクトップOSとして使ってるけど、インストールが一番楽な古いオープンソース版のAsepriteを使ってる。Librespriteも試してみるべきかな。プログラマーアートには、古い(Autodesk)Animator(DOSBoxで)もよく使ってる。小さくてどこでも動くから、電話で落書きするのにぴったり。DOSBoxで画面ボタンを追加する設定をすればいい感じ。アプリ全体と設定、保存した作業ファイルが1MB未満だから、ピクセルアートを編集したいソースコードリポジトリに全部入れられるよ。 https://github.com/AnimatorPro DOSBoxにはVGA Paint 386もどこにでもインストールしてるけど、あまり使ってないな。良さそうだけど(Deluxe Paintクローンに近いものを求めてる人には面白いかも)。 https://www.bttr-software.de/products/vp386/ あと、オープンソースでいいペースで進化してるPixeloramaもあるけど、あんまりじっくり見たことがない。Tilfも見てみるつもり。FreeBSDで動かすのがあまり手間じゃなければいいな。何かを描くのが得意じゃないから、いろんなツールを持って切り替えるのは助かる。どのツールも他のものより得意なことがあるからね。

ここには「アプリは手作りの料理みたいなもの」ってエネルギーが満ちてるね。自分のニーズに合わせてプログラムを書くのはいいことだ。そういう精神がまだ生きてるのを見るのは嬉しい。

ありがとう!

この気持ち、わかるな。OPがコードの質があまり良くないかもしれないって言うのを恐れないのが好きだよ。結局、楽しみや好奇心から作られたプロジェクトでは、初期段階ではそれほど重要じゃないしね。もし人気が出たら、重要な部分をリファクタリングして改善すればいいんだ。

プロジェクトのためにGitHubのトピック(タグ)を提供してほしいな。そうすればプロジェクトの発見性が上がるかも。私はよく「トピック」で面白いプロジェクトを見つけるためにGitHub検索を使ってる。

完了!ありがとう!

関連情報:多くの人がAI画像生成器を使ってピクセルアートを作っているのは知ってるけど、最近AI生成の入力を基にした本格的なピクセルアートを作るための素晴らしいツールを見つけたよ。詳しくは https://github.com/jenissimo/unfake.js を見て、ライブデモは https://jenissimo.itch.io/unfaker で確認してみてね。(注:作者とは無関係だけど、すごいと思ったからシェアするね)

どのAIピクセルアートジェネレーターがいい?

すごいプログラムだね、OP。Macにダウンロードしたらちゃんと動いたよ。役立つ機能として、ピクセルの行や列をX行/列下に移動できるといいな。時間があれば、そのためのPRを提出するかも。

ありがとう、提案も感謝!このプロジェクトを改善するための変更や提案にはオープンだから、喜んで受け入れるよ!