【マイクラ】ランダムウォークの範囲を検証し、トラップタワーに活かすナリ【統合版】

ランダムウォーク範囲検証

こんばんは、所長です。

統合版でモンスターの湧き範囲が変わったということで、トラップタワーの制作を考えています。というか制作中。

ランダムウォークを利用して落とし穴に落とすタイプでやってみてるんですが、どうもランダムウォークの動きが思ってるのと違うな~ってことで、検証した結果を備忘録として残しておきます。

※検証したのは統合版のバージョン1.11。

スポンサーリンク

ランダムウォークとは

そもそもランダムウォークとはなんなのか。

ズバリ、モンスターの歩行AIです。

モンスターがウロウロ歩く

モンスターってプレイヤーを見つけたら襲ってきますけど、そうでなければその辺をウロウロと歩いていますよね?

実はこれって適当に歩いてるんじゃなくて、「ココならイケます」「ココにはイケません」っていうのをアルゴリズムに沿って判定しながら歩いてるんです。

そのアルゴリズムを逆手にとれば落とし穴に誘導したりできるので、トラップタワーに組み込むと効率アップが見込めるんですね。

そのためにランダムウォークのアルゴリズムを暴き出しましょう、というお話です。

利用者:Kyaco11/MOBの徘徊
検証/ランダムウォークの頻度と範囲 - いおた@Minecraft【検証】wiki
検証内容 MOBのランダムウォークにおける一回当たりの移動範囲および頻度の検証 検証方法 MOBが移動先に選ばないガラスブロックで足場を作り、様々な高度・距離・方角に不透過ブロックを設置し移動できる...

基本的には「ランダムウォーク」で検索すると表示される、上記2ページとの差異について検証していきます。

スポンサーリンク

プレイヤーとの距離が32ブロック離れても大丈夫

プレイヤーとの距離が32ブロック以上離れている状態が続くとランダムウォークしなくなる説。

これが真だとランダムウォーク型のトラップタワーはほぼ機能しないため、是が非でもクリアして欲しい項目ですが・・・

遠くのゾンビが動いている

スポーン後、しばらく待っても遠くのゾンビが動いてるので問題ないでしょう。

私の検証はこれくらい雑なもんです(‘-‘)

スポンサーリンク

透過ブロックは移動先にならない

ガラスブロックやハーフブロックなど、透過ブロックは移動先にならない説。

透過ブロックは移動先にならない説

下付きハーフブロック、上付きハーフブロック、ガラス、階段で検証してみましょう。(地面からは十分高さを離しています)

移動しない

移動しません。透過ブロックは移動先にならないようです。

透過ブロックの下に不透過ブロックがある場合

透過ブロックの真下に不透過ブロック

透過ブロックの真下に3×3で不透過ブロックを置いてみました。

下付きハーフブロックだけがら空き

下付きハーフブロックのところだけがら空き。

行こうとした形跡アリ

ただし行こうとした形跡はあります。

「移動先までの移動経路がなければ最寄りのブロックまで近寄る」という特性から、不透過ブロックを移動先として認識しているものの、下付きハーフブロックを移動経路として認識していないようです。

所長
所長

これはどこかで使えそうですねえ!

スポンサーリンク

ランダムウォークの範囲

続いてはメインとなる、ランダムウォークの範囲について。

ランダムウォークの範囲

モンスターが乗っているブロックを中心として、

  • 上下に7ブロック
  • 水平方向に10ブロック

21×21×15がランダムウォークの範囲とされています。

下への移動範囲

7ブロック下まで移動するかチェック

移動先に選択されないガラスブロックを間に置いて、7ブロック下の不透過ブロックまで移動するか見てみましょう。

移動しない

・・・待てど暮らせど移動しません。

ゾンビを増やしても移動せず

ゾンビを増やすことでヒット率を上げてみても結果は同じ。

6ブロックにすると移動

6ブロックだとあっさり行ったり来たりします。下方向への移動範囲は6ブロックのようです。

上への移動範囲

7ブロック上まで移動するかチェック

上方向も7ブロックでチェックしたものの移動せず。

6ブロックにすると移動

6ブロックなら移動しました。上方向への移動範囲は6ブロックのようです。

バージョン1.13で検証したところ、7ブロック上までの移動を確認できました。

水平方向への移動範囲

水平方向への10ブロック移動

水平方向は10ブロック先への移動を確認。

11ブロックでは移動せず

10ブロックの位置に黄色いガラスを置いて11ブロック目を不透過ブロックにしてみたところ、移動しません。

水平方向への移動範囲は10ブロックのようです。

10ブロック先の6ブロック上も移動できる

10ブロック先の6ブロック上にも移動できたので、範囲が球状ということもなさそうです。

以上の結果から、ランダムウォーク範囲は21×21×15ではなく、21×21×13で良さそうですね。

バージョン1.13で検証したところ、北西方向に10ブロック、南東方向に9ブロックの移動範囲を確認できました。
ランダムウォーク範囲は20×20×14になりそうです。
スポンサーリンク

積み上げたブロックは移動先になる

移動経路がないが会い、最寄りのブロックまで移動

距離10、高さ6の位置に不透過ブロックを並べると移動先と認識して、最寄りのブロック = 真下のガラスブロックまで移動します。

高さ6の上に不透過ブロックを置いてみる

ではその不透過ブロックの上に1ブロック積み上げて、高さ6と7にしたらどうなるでしょう?

見た目では移動先が”潰された”ように見えますが・・・

無事、移動

無事、動いてくれました。

このことから、移動先の上に不透過ブロックが置かれていても移動先と認識することが分かります。

壁全域が移動先に選ばれる可能性アリ

トラップタワーでありがちな四方を壁で囲む方式では、ランダムウォーク範囲内の壁すべてが移動先に選ばれる可能性があるため注意せねばなりません。

スポンサーリンク

移動先は近いが、移動経路が遠い場合

移動経路が遠い場合

移動先は範囲内にあるが、移動経路が距離が遠いときにどうするか。

最寄りのブロックで止まる

最寄りのブロックで止まりました。

移動経路を少し近づけると登っていく

しかし移動経路をランダムウォーク範囲に収まらない程度に近づけた状態で再検証すると登っていきました。

詳しいアルゴリズムは分かりませんけど、移動中でも有効な移動経路を探索する・・・とか?

スポンサーリンク

まとめ

  • モンスターはプレイヤーとの距離が32ブロック離れてもランダムウォークを行う
  • 透過ブロック(ガラスなど)は移動先として認識されず、下付きハーフブロックは移動経路としても認識されない
  • ランダムウォークの範囲は21×21×13
  • ブロック上に不透過ブロックがあっても移動先として認識する
  • 移動中でも有効な移動経路を探索し、見つかればルートを切り替える(?)

ざっくりと検証できました。

トラップタワーを制作する上では、ランダムウォークの範囲が上下7ブロック⇒6ブロックになってるのが意外と大きくて、高さをシビアに設計しないと落下穴に誘導する確率が低下しそうです。

統合版は湧き上限が厳しくてトラップタワーで効率が出しにくいので、得た情報を活かしてできるだけ効率を高めたトラップタワーを作れるよう頑張らねば~。

 

以上、ランダムウォーク範囲の検証でした。ではまた!(‘-‘)ノ

コメント