Slay-the-Spire-2 用「デジタル琥珀」自動描画ツール
概要
Slay-the-Spire-2-Drawing は、ゲーム「杀戮尖塔2(Slay the Spire 2)」向けに作られた Python ベースの自動描画補助ツールです。README に記されたとおり「数字琥珀(Digital Amber)」と呼ばれる全画面凍結選択機能を中心に、ローカルの画像や任意の文字列をワンクリックで「純粋な線稿(線画)」に変換し、ゲーム内のキャンバスに高速で自動描画します。v1.1.0 では線稿の局所裁剪(任意領域の再切り抜き)や、ウィンドウ最前面設定・描画精度・速度などの設定を自動保存する機能が追加されています。簡単な操作で複雑な線画をゲーム内に再現できる点が魅力です。
リポジトリの統計情報
- スター数: 15
- フォーク数: 0
- ウォッチャー数: 15
- コミット数: 7
- ファイル数: 3
- メインの言語: Python
主な特徴
- 画像 / カスタム文字列を一括で線画化してゲーム内に自動描画
- 「数字琥珀」全画面凍結選択機構による精確な選択領域制御
- 局所裁剪(線稿の再切り抜き)と描画設定の自動保存(ウィンドウ最前面・精細度・速度等)
- 右クリック連筆(連続描画)による高速な筆致再現
技術的なポイント
この種の自動描画ツールは、主に「入力画像の前処理」「線画化(エッジ抽出)」「描画パス生成」「マウス操作の自動化/時系列制御」の4つのステップで構成されます。本リポジトリの README とファイル構成(spire_painter.py)から推測される技術的な要点は以下の通りです。
- 画面キャプチャと「数字琥珀」選択
- 「全画面凍結選択」は、ユーザーが画面上で任意領域をフリーズ(静止イメージ化)して、その上で切り取りや線画化処理を行うワークフローを指します。これによりゲームの動的表示に影響されずに安定した入力画像を得られます。
- 実装上は OS の画面キャプチャ API や Pillow/OpenCV を用いたスクリーンショット取得が想定されます。
- 画像処理と線画化
- 元画像や文字列をまずグレースケール変換→ノイズ除去→エッジ検出(Canny 等)→二値化というパイプラインで線画化します。中間にモルフォロジー演算(細線化、スケルトン化)や輪郭追跡を入れることで、より「純粋な線稿」に整形します。
- 局所裁剪機能は、線画化後にユーザーが描きたい部分だけを再選択してトリミングする処理です。これにより無駄なパスを削減し描画時間を短縮できます。
- 描画パスの最適化
- 抽出した線画をそのままピクセル単位でなぞるとマウスイベントが大量になり遅延やブロックが発生しやすいため、経路簡略化(Douglas–Peucker など)や線の再サンプリングでポイント数を減らしつつ形状を維持する工夫が重要です。
- 連続描画(右クリック押下で描き続ける)を利用する設計は、離散的な点描画よりも自然な筆跡を実現できます。描画速度や精度は設定で調整可能にしており、ツールはこれらを保存して次回復元します。
- 入力自動化とタイミング管理
- マウスの座標移動と右クリック押下/解放を正確に制御する必要があります。pyautogui、pynput、ctypes(WinAPI)などが典型的な選択肢です。ゲーム側の入力検出や処理ループに対するタイミング依存性を考慮し、適切なウェイトや再試行ロジックを入れることが安定性の鍵です。
- 高速描画を目指す場合、OS/ゲームの入力バッファやイベントスルーに依存するため、速度上げすぎによる失敗を防ぐための安全パラメータ(最小ウェイト、最大ステップ長)を用意すると良いでしょう。
- 実運用上の配慮
- 画面スケーリング(DPI設定)やマルチモニタ環境、ゲームのウィンドウモード(フルスクリーン/ウィンドウ)への対応が必要です。座標系やピクセル比を正しく扱わないと位置ズレが生じます。
- ゲーム側の利用規約やオンラインプレイでの自動操作に関する注意(チート検知など)も考慮すべき点です。README のライセンスは MIT ですが、利用は自己責任で行う旨を明記するのが望ましいです。
拡張案としては、線画のベクトル化(Bezier 曲線化)による滑らかなパス生成、階調を残したドット描画の実装、カラー再現のための領域塗り分けと塗りつぶしアルゴリズムの追加などが考えられます。また、GUI 化して直感的に切り抜き・プレビュー・速度調整を行えるようにするとユーザビリティが向上します。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- brush.ico: file
- spire_painter.py: file
まとめ
ゲーム内に高精度な線画を自動で再現できる実用的な Python 補助ツールです(50字程度)。
リポジトリ情報:
- 名前: Slay-the-Spire-2-Drawing
- 説明: 杀戮尖塔2 数字琥珀自动画板 | A Python automation drawing tool for Slay the Spire 2
- スター数: 15
- 言語: Python
- URL: https://github.com/SKYFIRE5836/Slay-the-Spire-2-Drawing
- オーナー: SKYFIRE5836
- アバター: https://avatars.githubusercontent.com/u/193217407?v=4
README の抜粋:
🖌️ 杀戮尖塔2 - 数字琥珀自动画板 (Slay the Spire 2 Painter)
专门为《杀戮尖塔2》(Slay the Spire 2) 打造的全自动右键连笔画图辅助工具。 采用独特的**“数字琥珀”**全屏冻结选区机制,支持将本地图片、自定义文字一键转化为纯净线稿,并在游戏内以极快的速度自动绘制。
“让数字世界的瞬间凝固成琥珀,再用代码将其拓印在尖塔的高墙之上。”
🆕 最新更新 (v1.1.0)
- ✂️ 局部裁剪:新增线稿二次裁剪功能,框选想要的部分直接画。
- 🧠 配置记忆:自动保存你的“窗口置顶”、“精细度”、“速度”等设置,下次打…