ドキュメント リファレンス

データの出どころ

データの種類ごとの取得元と精度。「何かおかしい」と思ったら、まずこのページを確認してください。

データ取得元精度
ユニット、資源、オーダー、スキル、バフ、インベントリランタイムが 50 ms ごとにプッシュするワールドブロック発行周期(16 ms まで調整可能)
ダメージ、キルイベントランタイムがゲームスレッド上でその場で記録。1 回ごと即時
その他のイベント(出現、死亡、オーダー変更、レベルアップ……)連続する 2 回の発行を比較発行周期
生産表(訓練 / 研究 / 建設 / アップグレード)エンジンの生産アビリティのタイマーフィールド + ランタイムによる経過時間の累積約 ±0.2 ゲーム秒
戦闘ステータス、相性表ゲーム付属のデータ表(あなたのマシンのゲームから抽出)アイテム、オーラ、バフによる補正は含まない
経路探索エンジンの地形の通行可能性(1 マス 128)+ 樹木 + 建物の占有範囲、SDK 側の A*1 マス。1 マスより狭い隙間は通れないと判定
ゲーム内時刻JASS GetFloatGameState(GAME_STATE_TIME_OF_DAY)発行周期
可視性ランタイムがユニットごと・プレイヤーごとに計算した可視性マスク発行周期
テクノロジー数、実行可否、金鉱の残量ファストレーンのクエリで、エンジンに直接問い合わせ即時

ゲームデータはコードと一緒に配布しない

ユニット表、スキル、アイテム、ヒーロー、バフ、ダメージ相性表などは Blizzard のゲームファイルに由来するため、リポジトリには含めません。Farsight の「コントロールセンター」でゲームディレクトリを設定すると、あなた自身のゲームから自動で抽出されます。手動で実行することもできます。

python data/tools/extract_game_data.py

抽出結果は data/game/(git には含めない)に置かれます。元の .slk / .txt と、整形済みの units.json、names.json、skills.json、items.json、heroes.json、buffs.json です。

具体的な数値

項目値
1 日480 ゲーム秒(昼と夜がそれぞれ 240 秒)、1 時間 = 20 ゲーム秒。開始時は朝 8 時
昼6:00 〜 18:00
アーマー係数0.06(ゲームのデータ表より)
ワールドブロックの容量プレイヤー 16、ユニット 1024、ユニット詳細 256、地面のアイテム 256、生産 128
樹木破壊可能オブジェクト最大 4096、2 秒ごとに更新
イベントリング8192 件。読み取りが遅すぎると取りこぼす(SDK が検出可能)
マップのマス1 マス 128 ゲーム単位、最大 256 × 256

実測で校正した例

  • 生産時間:ピーザント 14.9、ファーム 34.9、Iron Forged Swords 59.9 ゲーム秒。ランタイムがプッシュした値と一致(誤差 0.2 秒未満)。
  • 戦闘ステータスをゲーム内のパネルと照合:パラディン HP 650、マナ 255、アーマー 3.9、攻撃力 24 〜 34。攻撃アップグレード 1 段階のフットマン 13 〜 15。
  • エンジンのダメージイベントにあるアーマー適用前のダメージ(14 / 15 / 15)は、stats() が計算した範囲に収まっている。
  • 経路探索:Echo Isles 116 × 88 マス、相手のタウンホールまでの地上距離 10642(直線 9856)、グリッド構築 18 ms、A* 1 回約 1 ms。