『高床式村人増殖機』の謎が解けたのです。
2017.12.16(2017.04.09)
Javav1.11.2
『高床式村人増殖機』の稼働原理をまとめたのです。(Java限定)
スポンサーリンク
参考ページ
- 【マインクラフト】超大量の村人を一気にネザーに送ったら大変なことになった…【ヒカキンのマイクラ実況 Part347】【ヒカクラ】(Youtube)
- 【マインクラフト】高床式村人増殖機で村がスゴイことに!【ヒカキンのマイクラ実況 Part92】【ヒカクラ】(Youtube)
記事に関する【注意点】
この記事は、Java版の古いバージョンの時に書いた記事なのです。最新のJava版、およびBE(PE)版での動作確認はしていませんので、ご注意ください。
村人が増える『条件』とは。
【注意】この記事は、Java向けなのです。BE(PE)では、村人が増える条件そのものが違うのです。ので、ここに書かれている事例は当てはまらない可能性が高いのです。
また、マイクラには例外が多数ある場合があり、すべての例外を把握しているわけではないのです。一つの事例としてお読みください。
村人を増やすには、以下の条件を満たす必要があるといわれているのです。
- 高低差4以内に、人口の3倍以上のドアがあること。
- 村人にパンをたくさんもたせること。(あるいは小麦を持たせ、パンを作らせること。)
もうちょっと細かい条件があるらしいですが、大雑把に書くとこんな感じらしいのです。
村に塔を作ってみたのです。
そこで、村に小さな塔(高さ15ブロック程度)を作り、そこで村びとを増やすことを思いついたのでした。塔を作れば、高低差4以上つくので、塔の上から下に移動(水の上に落下)させることで、人数制限を気にしないで、村びとを増やせると考えたのです。
しかし、実際には、塔の上と塔の下、両方で村人が増殖し始めるという問題が起きたのでした。
下で増えるとなぜ問題なのか?
下で村人が増え始めると、分裂スライムみたいに倍々式までとはいかないまでも、増えるスピードがどんどん増していくことになるのです。例えば、村人10人から生まれる数は5人ですが、30人だと、これが15人になるのです。
そうなると、いずれ制御が効かなくなり、村人が増えすぎてしまう可能性が強くなってしまうのです。自分のマシンパワーはあまり強くないので(*)、村人が増えすぎてしまうとマイクラ自体が重くなってしまい、プレイに支障をきたす可能性が高いのです。
(*)Core i5 4200 + Intel HD Graphics 4600(内臓GPU)。遊べなくはないのですが、ちょっと無理すると30fpsを簡単に切ります。
何が起きているのか検証してみた。
で、なぜ下でも村人が増えてしまったのかを調べるべく、新しいマップを作り、実験なのです。
まずは村を生成
- クリエイティブモード
- スーパーフラット
- 構造物生成なし
- 難易度はピースフル
で、マップを作成。適当な村を作るのです。せっかくなので、ダイヤブロックとシーランタンで作ってみたのです(笑)。
これで、ドア24枚に村人9人。条件的に村人が増えることはないはずなのです。
実際に、パンを配ってみます。そして、しばらく放置。...やはり、何も起きないのです。
上空にもう一つ村を作ります。
20ブロック上空に塔を作ります。贅沢にエメラルドブロックで作ってみました(笑)。塔には12のドアを設置します。そして、村人を1人置くのです。
...やっぱりハートマークが出て、子供が生まれました。
この後、サバイバルモードに変更して放置しましたが、パンを与えると、どんどん増えてたのです(笑)。
色々なパターンを検証してみる。
さらに、いろんな条件で試すと、こんな感じになったのです。(施設の高さ20の場合)
下のドア | 上のドア | 上の村人 | 結果 |
---|---|---|---|
24 | 10 | 1 | × |
24 | 11 | 1 | 〇 |
24 | 11 | 7 | 〇 |
26 | 11 | 7 | × |
28 | 12 | 7 | 〇 |
29 | 12 | 7 | × |
2 | 12 | 7 | × |
『高床式村人増殖機』の原理を、ここで初めて理解した。
村人を増やす方法として有名なものに、『高床式村人増殖機』というものがあるのは知っていました。
このシステム、自分は村人がドアを認識する範囲と、村が村びとを認識する範囲に差があることを利用していたのだと思っていたのですが、どうやらそれは違ったみたいなのです。というのも....、
しかし、水平方向では村の境界内、村の中心から下方向に32ブロック以内にいる村人は、境界内に他の村人が1人でもいれば求愛モードに入る。(村人 - Minecraft Wikiより引用)
つまり、
図にするとこういう事?...この仕様は知らなかったのですよ。つまり、『高床式村人増殖機』は、
- 村の中心点を高さ6-32ブロックの高所に設定する。
- かつ、設定した中心点の上下5ブロックの村人の人数をドアの枚数÷3以下に抑えることにより、人口を少なく見せかける。
のがポイントだったようです。それを簡単に実現するのが、高さ11・下層ドア0・上層ドア6&村人1、という組み合わせなのでしょう(正直、ここら辺はよくわかってません^^;)。
だから、上層の高さが20もあると、上と下のドアの数の組み合わせによっては村の中心が上層下層どちらにも属さない『中間点』に設定されてしまい、結果、仮に上層が定員超過していても関係なく増殖を続けてしまう(中間点の人口は0と認識されている?)、ということ、だったようです。
(自分の村も同じようなドア数の構造になっていたため、同じ現象が起きていたものと思われます。ってか、村を縦に2つ作る(認識させる)ことは、おそらくできなかった、ということみたいなのです^^;。)
関連する記事
この原理を利用して、実際に村人増殖村を作ってみた様子、なのです。
村人増やし放題!なのです。
ということで、Javaであれば、村の地面から高さ32マス以内の高いところに、たくさんのドアと村人を1人おけば、村人を無限に増やせるのでした。いい取引をしてくれる村人さんが欲しいときなどに、建設してみるといいかもしれないのです。
スポンサーリンク