mesh-avatar-studio
일러스트를 코딩 에이전트와 로컬 편집기로 2D 메쉬 애니메이션 아바타로 변환
基本的なお絵かきツール
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Swift で書いた macOS 用のペイントツールです。 • 必要なもの: macOS 14 以降、Xcode 16 以降(Swift 5.10+) • テスト: swift test • 性能計測: NANOPIC_PERF=1 swift test -c release -Xswiftc -enable-testing --filter PerfTestsREADME 전문 보기 ↗
Swift で書いた macOS 用のペイントツールです。
./scripts/build-app.sh # リリースビルドして build/Nanopic.app を生成
open build/Nanopic.app
./scripts/release.sh # Developer ID で署名・公証して dist/Nanopic-<版>.zip を作る(配布用)
swift testNANOPIC_PERF=1 swift test -c release -Xswiftc -enable-testing --filter PerfTests| 分類 | 内容 |
|---|---|
| レイヤー | 複数選択(チェック列・⌘クリック・Shift クリック。まとめて移動/削除/フォルダーに入れる)、ラスターレイヤー、レイヤーフォルダー(入れ子可、通過/分離)、27 種の合成モード、不透明度、クリッピング、透明ピクセルをロック、レイヤーのロック、参照レイヤー、サムネイル、複製、下のレイヤーに結合、ドラッグ&ドロップで並べ替え |
| 表示 | パン、ズーム(1〜6400%)、回転、グリッド(間隔・分割数・不透明度) |
| 選択範囲 | 矩形、楕円、投げなわ、自動選択。追加/削除/共通部分、反転、全選択 |
| トリミング | 選択範囲を囲む矩形にキャンバスを切り詰める(編集 > 選択範囲でトリミング。全レイヤー) |
| 変形 | レイヤー移動、拡大・縮小・回転(ハンドル操作、Shift で縦横比固定・15° 単位)、左右/上下反転。選択範囲があれば選択部分のみ |
| 塗りつぶし | 参照先(編集レイヤー/他レイヤー/参照レイヤー)、色の誤差、領域拡縮、隙間閉じ、隣接ピクセルのみ |
| 投げなわ塗り | 囲んだ範囲を描画色で塗る/消す(投げなわ消しゴム)。選択範囲があればその中だけ |
| ブラシ | ブラシ先端画像(組み込み 6 種+PNG などから読み込み)、硬さ、濃度(フロー)、間隔、角度、扁平率、進行方向に回転、角度のランダム、色混ぜ(絵の具量・色延び)、筆圧(サイズ・不透明度・カーブ)、手ブレ補正 |
| パレット | よく使う色を登録(+で描画色を追加、クリックで描画色、Option+クリックでサブカラー、右クリックで上書き・削除) |
| 色調補正 | 色相・彩度・明度(⌘U)、明るさ・コントラスト。値を動かすとその場でキャンバスに反映し、OK で確定(選択範囲があればその中だけ) |
| 立体的に振り向く | レイヤー > 立体的に振り向かせる で、顔などのフォルダーを丸い立体に貼ったものとして左右・上下に振り向かせる(重なり順を奥行きに使い、後ろ髪は逆に動く)。見回すループを作り、リグパネルの「カーソルの方を向く」でマウスの方を向く |
| おまかせで動かす | レイヤー > おまかせで動かす で、選んだレイヤー(フォルダー)に呼吸・ゆらゆら・ふわふわ・ぴょこぴょこ・なびく の動きを 1 回で付け、継ぎ目のないループで再生(リグを組まなくてよい) |
| アニメーションの書き出し | MP4・MOV(ProRes 4444)・APNG・GIF・PNG の連番(ファイル > 動画を書き出し) |
| 履歴 | 取り消し/やり直し(最大 60 ステップ) |
| ファイル | PSD/PSB の読み込み、PSD 保存(フォルダー構造・合成モード・クリッピング・ロック・日本語名を保持)、PNG 書き出し、画像の読み込み |
| ショートカット | ツールごと・ブラシごとに単キー(Shift/Option との組み合わせ可)を割り当て(設定 ⌘, /ツールやブラシの右クリック) |
| エージェント連携 | MCP サーバー(127.0.0.1 のみ、既定はオフ)。エージェントがレイヤー・ブラシ・塗りを操作し、線画の領域を探して下塗りできる |
NSEvent.isMouseCoalescingEnabled = false で、ペンタブレットのサンプルを間引かずにすべて受け取ります。座標は小数のまま扱います。Sources/NanopicCore/ 描画エンジン(UI 非依存、テスト可能)
Tile.swift 128px タイル、Copy-on-Write(Undo のスナップショット共有)
Layer.swift レイヤーツリー、合成モード
Compositor.swift タイル単位で並列に合成(フォルダー、通過、クリッピング)
Brush.swift ブラシ設定、ブラシ先端(ミップマップ)、Float ストロークバッファ
StrokeEngine.swift 入力の平滑化、スプライン補間、筆圧の変化制限
Editor.swift ドキュメント・履歴・ツール操作
Shortcuts.swift ショートカットの割り当て
Fill.swift / Selection.swift / Transform.swift / PSD.swift
Sources/NanopicAgent/ エージェント(MCP)向けのツール(コアとは別モジュールにして並列にビルドする)
AgentTools.swift ツールの処理(説明と引数の形は AgentToolSchemas.swift の JSON)
Regions.swift / Gaps.swift 線画で囲まれた領域の分割と、線の隙間探し(下塗り用)
Sources/Nanopic/ macOS アプリ(SwiftUI パネル + AppKit/Metal キャンバス)
| キー | 操作 |
|---|---|
| B / E / G / I | ブラシ / 消しゴム / 塗りつぶし / スポイト |
| Shift+G / Shift+E | 投げなわ塗り / 投げなわ消しゴム |
| M, Shift+M / L / W | 矩形選択, 楕円選択 / 投げなわ / 自動選択 |
| V / ⌘T | レイヤー移動 / 拡大・縮小・回転(Return・選択解除・描画などで確定、Esc でキャンセル。確定前の Undo は 1 操作ずつ戻る) |
| Space(+⌘) ドラッグ | 手のひら(ズーム) |
| Option + クリック / 右クリック | スポイト(⌘ を加えると編集レイヤーから取得) |
| ⌘⌥ + 左右ドラッグ | ブラシサイズの変更 |
| [ / ] | ブラシサイズの縮小 / 拡大 |
| X | メインカラーとサブカラーの入れ替え |
| ⌘Z / ⇧⌘Z | 取り消し / やり直し |
| ⌘A / ⌘D / ⇧⌘I | 全選択 / 選択解除 / 選択範囲を反転 |
| Delete / ⌥Delete | 消去 / 描画色で塗りつぶし |
| ⇧⌘N / ⌘G / ⌘E / ⌘⌥G | 新規レイヤー / フォルダーに入れる / 下に結合 / クリッピング |
| ⌘0 / ⌘1 / ⌘; (⌘=, ⌘^) / ⌘- | 全体表示 / 100% / ズームイン / ズームアウト |
| ⌘' | グリッドの表示切替 |
| Shift+R | 表示の回転をリセット |
ツールのキーは設定(⌘,)の「ショートカット」で変えられます。ツールの右クリックやブラシ一覧の右クリックからも設定でき、特定のブラシ(例: 丸ペン)にキーを割り当てることもできます。
ツールのキーは、押したままキャンバスを操作するか長押し(0.4 秒以上)すると、キーを離したときに元のツールへ戻ります(例: ブラシ中に E を押したまま描くと消しゴム、離すとブラシ)。短く押したときはそのまま切り替わります。
PSD や画像ファイルをウィンドウにドロップすると開きます(Option を押しながらドロップすると、画像を新規レイヤーとして追加)。ペンの消しゴム側をタブレットに近づけると、自動で消しゴムツールに切り替わります。トラックパッドでは 2 本指でスクロール、ピンチでズーム、回転ジェスチャーで表示を回転できます。
設定(⌘,)の「エージェント連携」で MCP サーバーを有効にすると、Claude Code などのエージェントが開いているキャンバスを操作できます。この Mac の中(127.0.0.1)からだけ接続でき、既定ではオフです。
claude mcp add --transport http nanopic http://127.0.0.1:47823/mcp
操作は画面にそのまま反映され、⌘Z で取り消せます。主なツール:
| ツール | 内容 |
|---|---|
get_document / get_image | レイヤー構成と見た目(座標の目盛りや一部の拡大も) |
find_regions / fill_regions | 線画で囲まれた範囲を番号つきで返し、番号と色を指定してまとめて塗る(線の下まで塗り、隣にははみ出さない)。パーツごとのレイヤーにも分けられる |
find_gaps / close_gaps | 線画の開いた所を探し、閉じ線レイヤーにまとめて閉じる(find_regions で線画と一緒に参照する) |
fill_leftovers | 下塗りの細かい塗り残しを探し、接している色でまとめて埋める |
fill / lasso_fill / fill_selection / stroke / clear | 塗りつぶし、多角形の塗り、選択範囲の塗り、ブラシの線(設定の一時的な上書き可)、消去 |
edit_palette | パレットに色を足す・消す |
adjust_color | 色相・彩度・明度、明るさ・コントラスト |
add_turn | 立体的に振り向くリグ(左右・上下の向きのパラメータ)を付ける |
add_motion | おまかせの動き(呼吸・ゆらゆら・ふわふわ・ぴょこぴょこ・なびく)を付け、タイムラインでループさせる |
select / transform | 選択範囲(矩形・楕円・多角形・自動選択・レイヤーから・領域から)、移動・拡大縮小・回転・反転 |
add_layer / update_layer / move_layer / group_layers ほか | レイヤーの作成・設定・並べ替え・フォルダーにまとめる・結合・削除 |
list_brushes / select_brush / update_brush / create_brush / set_color | ブラシと色 |
batch | 複数の操作を 1 回でまとめて実行 |
set_view / crop / resize_canvas / undo / redo | 表示位置、キャンバスサイズ、取り消し |
open_file / save_psd / export_png ほか | ファイルの読み書き(保存していない変更があると、明示しない限り閉じない) |
ブラシのサイズ・角度のランダムは、描き始めの点から決まる種で作るので、同じ入力からは必ず同じ絵になります。