Diablo II Resurrected(D2R)において、繰り返しの作業を自動化するための強力なツールとして、PixelベースのオープンソースBot「botty」が存在します。このツールは、画像認識技術と経路探索アルゴリズムを活用して、キャラクターの移動、戦闘、アイテム収集などを自律的に実行します。
環境構築と初期設定
動作要件
- OS: Windows 10 または 11 (64bit)
- Python: バージョン3.10以上
- ゲーム言語: 英語に設定されていること
- 推奨解像度: 1280x720 ウィンドウモード
インストール手順
git clone https://gitcode.com/gh_mirrors/bo/botty
cd botty
pip install -r requirements.txt
ゲーム起動後、F9キーを押すことで最適化スクリプトが実行され、F10でデバッグ機能を使用できます。
基本設定
config/params.iniファイルを編集して、以下の項目を設定します:
[general]
name = AutoRunner
difficulty = hell
[routes]
order = travincal, pindleskin
準備ができたら、次のコマンドで実行開始:
python src/main.py
主な機能と仕組み
画像認識エンジン
リアルタイムのスクリーンショットからUI要素や敵、アイテムを検出します。これにより、現在の状態を判断し、適切なアクションを選択します。
ナビゲーションシステム
テンプレートマッチングにより現在位置を特定し、事前に定義された経路データに基づいて目的地までの最短ルートを算出します。各エリアに対応したテンプレート画像を用いて正確な移動を実現しています。
実践的な利用方法
ボス戦の自動化
例えばPindleskinの討伐では、以下の流れで自動処理を行います:
- 適切な場所へテレポートまたは移動
- 戦闘開始とスキルの自動使用
- 戦闘終了後のアイテム回収
- 安全な帰還と補給
アイテム管理機能
以下の機能により効率的な装備管理が可能です:
- 品質・種別に基づく自動ピックアップ
- 不要品の売却
- 宝石の合成処理
カスタマイズと設定
職業別パラメータ設定
Sorceress向け設定例:
[char]
type = sorceress
belt_rows = 4
casting_frames = 9
teleport = f1
[skills]
chain_lightning = f2
lightning = right
Paladin向け設定例:
[char]
type = paladin
primary_attack = left
secondary_skill = f3
aura = f4
アイテムフィルタリングルール
BNIP形式で拾取条件を記述:
[ItemRules]
Quality = Unique | Set
Class = Amulet | Ring
Stat[allres] >= 20
タスクシーケンスの指定
params.iniで複数のタスクを任意の順序で実行可能:
[routes]
order = travincal, pindleskin, eldritch, nihlathak, arcane
トラブルシューティング
認識精度の問題
- ゲーム言語が英語であることを確認
- 解像度が1280x720に設定されているかチェック
- F10デバッガを使用してテンプレート一致状況を確認
経路エラー対策
- テンプレート画像が正しく読み込まれているか検証
- pather.py内の遅延値を調整
- ウィンドウが他のアプリケーションに隠れていないか確認
高度なカスタマイズ
新しいルート追加方法
- assets/templates配下に新規マップ画像を配置
- src/run/に専用モジュールを作成
- 経路情報をpathingデータに追加
- configファイルに新ルートを登録
拡張開発のためのアーキテクチャ
主要コンポーネント:
- src/bot.py - メインロジック
- src/char/ - 職業別処理
- src/pather.py - 移動制御
- src/item/pickit.py - アイテム判定
- src/run/ - タスク実装
カスタムキャラクタークラスの作成
from char.i_char import IChar
class CustomCharacter(IChar):
def __init__(self):
skills = {'main_attack': 'f1', 'buff': 'f2'}
super().__init__(skills)
def execute_combat(self):
# 独自の戦闘ロジックを実装
pass
運用時の注意点
- 常にゲームの利用規約を遵守すること
- 定期的に設定ファイルをバックアップ
- ログ監視により異常を早期発見
- CPU・メモリ使用量に注意