User:Kyaco11/MOBの徘徊

概要
マインクラフトのMOBが単独で行う行動の1つ、MOBの付近から無作為に選ばれた場所への移動を実装しているAI. 一般的にランダムウォークや自発移動と呼ばれる行動はこのAIが働いている.

他のAIに対して比較的優先順位は低く、また徘徊を開始する確率も低めに設定されている.

アルゴリズムとしては、自分の周辺からランダムに[フルブロック?]を選び、そのブロックに近づくように移動経路を決定、移動を開始するような流れになっている.

徘徊のAIを持つMOBの一覧
また、ガーディアンの移動でも同じ枠組みが使われる
 * ウィザー
 * ブレイズ
 * クリーパー
 * エンダーマン
 * エンダーマイト
 * アイロンゴーレム
 * シロクマ
 * スケルトン
 * スノーゴーレム
 * クモ
 * ウィッチ
 * ゾンビ
 * ニワトリ
 * ウシ
 * ウマ
 * ネコ
 * ブタ
 * ウサギ
 * ヒツジ
 * 村人
 * オオカミ

移動を開始する条件
徘徊の途中でなMOBは以下の処理を毎tick行う.

優先度が高く競合できないAIが働いていない
クリーパーの場合 といったAIが実装されている. この中で優先度が決まっている.
 * 泳ぐAI
 * 起爆前の膨れるAI
 * ネコを避けるAI
 * 攻撃対象に接近するAI
 * さまようAI
 * 近くの他MOBを見るAI
 * 中空を見るAI
 * 付近のプレイヤーを敵とみなすAI
 * 攻撃を加えてきたMOBを敵とみなすAI

詳細はAIのまとめのページに掲載したいが、とりあえずの理解としては、 起爆、ネコを避ける、攻撃対象への接近の3つのどれかが働いているときは さまようことはない.

MOBのageが100未満
スポーン直後やプレイヤーから32m以内にいるときはMOBのageは0に上書きされる. プレイヤーから32m以上離れると1tickごとにageが1ずつ増えてゆく.

抽選にヒットする
たいていのMOBは1/120の確率で抽選が行われる. ガーディアンのみ1/80の確率である.

移動の目的地となる地点が選ばれる
以下はホームポジションがない場合の記述. 村人などホームがあるMOBでは異なる.

MOBを中心として21×15×21の立方体の範囲内から1ブロックを選択し、そのブロックの真下のブロックについてisFullBlockが真を返せば移動の目的地として決定される. これを決定されるまで10度繰り返し、最終的に決定されなければさまよわない.