【Minecraft】小型で簡単で高効率な焼き鳥製造機

※おそらくこのバグ(21w05aで直したことになっているがそのせいで逆に悪化した?)の影響で、1.17以降では鶏が外に出てしまいうまく動作しません。水の幅を1マスから3マスにすれば(それに伴って親鳥を置いておく場所を1マス奥にずらす必要があります)1.17.1でも動作することを確認しました。

 

Minecraftの記事もこれで5個目みたいです。

今回は

・小型(=26体超えで窒息ダメージが入る制限を回避)

・高効率(=溶岩によるロスト(ほぼ)無し)

・簡単(=溶岩出し入れ無し)

(・物理演算少なめで負荷が少ない)

(・ホッパートロッコ無し)

という目標を達成した焼き鳥製造機を開発したので公開します。

これを全て満たしているものは調べても出てこなかったので、かなりハイレベルだと自負しています。ではまず概観図です。

f:id:turgenev:20200428131147p:plain

基本的には、卵を産む親鳥を入れる場所、小鳥が産まれる場所、および成長した親を焼く場所の3つに分かれています。順に見ていきます。

f:id:turgenev:20200428131342p:plain

ここには現在親鳥80羽が入っています。原則的には1マスに26体以上のmobがいると窒息ダメージが入ってしまうのですが、ハシゴがあるマスにはそれが適用されない、というのが重要なポイントです。下のホッパーはもちろん卵を回収するためで、隣のディスペンサーに接続しています。なお、左側にあるディスペンサーは、親鳥を増やすときに卵を投げるのに使っていましたが、親鳥の数を変える必要が無ければもう使いません(壊すのが面倒なので放置しているだけです)。ちなみに親鳥の数を減らす方法は思いついていません…(弓矢をディスペンサーで撃ったらすり抜けました)。親鳥の数を減らしたいことがあると思うので、手前のブロックは耕地(奥に水があるのでちゃんと湿るはず)かなんかにしておいて増えすぎたときは隙間から斧とかで殴って一撃すればいいと思います。

f:id:turgenev:20200428150100p:plain

小鳥が溜まっているところ。ディスペンサーは先ほどのホッパーからつながっているもので、卵がここから投げられて小鳥がかえります。ちなみにクロック回路についてはわざわざ説明しません。卵が増えるペースより速ければどんなものでも構いません。

足元は丸石の壁で0.5マス上げています(無限増殖の記事でも使った手法です)。また、先ほどと同様ハシゴで窒息ダメージを回避しています。稼働が安定状態に入ると、ここにいる鶏の数は先ほどの親鳥の数のほぼ1/3になります。今の例では親鳥80羽だったので今ここには26羽いることになります(ちょうど窒息ダメージのボーダーくらいですね)。これが26より十分少なければ(親鳥が70羽以下くらいなら)このハシゴをなくして下付きハーフブロックにしても構いません(その場合丸石の壁も要りません)。

で、この小鳥は成長して大人になるとどうなるかというと、上の石ハーフに頭を突っ込んだような形になります。石ハーフには水を設置してあるので浮かんでいき、水流に流されていきます。ここまでがこの図の部分の説明です。

f:id:turgenev:20200428151430p:plain

最後に処理層です。水流に流されてきた鶏は、溶岩に当たって燃えます(図は燃える直前です)。なぜ当たるかというと、ハチミツブロックの当たり判定は1マスより少し小さいからです。なお(エンダー/トラップ)チェストも同じ当たり判定を持っているので使えます(が、fps低下の原因になるので個人的にはあまり使いたくないです)チェストで実験してみたらロストが発生しました。ホッパーの上にチェストがあるとチェストからの吸い込みが優先されてアイテムが回収されなくなるようです。エンダーチェストはホッパーと接続しないためか上手く動作します。石の壁でもいいですし、LecternやGrindstoneも正しく設置すれば使えますが、これらはやや当たり判定が小さいので発生したアイテム(=焼き鳥と羽根)が溶岩に突っ込んで燃えてしまう可能性がなんとなく上がる気がします。観測する限りハチミツブロックでのロストは0回ですが石の壁では数十回やって1回だけありました。

なお、図で鶏の頭上にあるgrindstone(これが1マスより少し小さいのは見ればわかりますね)もアイテムロスト対策のつもりなんですが、そもそもほとんどロストが無いので効果のほどはよくわかりません。面倒なら設置しなくても(あけておいても)構いません。代わりにガラスなどを置くのは鶏が溶岩に触れられなくなるのでダメです。あとハチミツブロックでもダメです。見た目に反して、底の当たり判定はきちんと1ブロック分あります。

そして、発生したアイテムは下のホッパーに吸い込まれていきます。貯蔵部分は適当に作ってください。実はこのホッパーが地味ですが今回一番大事なところで、上の段の2つのホッパーのどちらかが欠けているとせっかく発生した羽根と焼き鳥のどちらかが溶岩で燃えてしまいます。ホッパーは二種類のアイテムを同時に吸い込むことができないからです。これのせいで巷に出回っている焼き鳥装置は、①溶岩を流しっぱなしにしてアイテムロストはあきらめる(この場合焼き鳥の回収率は25%くらいになってしまう)②溶岩をディスペンサーで一瞬流す(回路が増える) のいずれかの方法を取っています。①は論外として(しかもその説明がない記事が多いのが腹立たしい)、②はまあいいんですが、このどちらでもないものがないものかと考えた結果、今回の「2つのホッパーどちらからでも回収できる場所にアイテムを発生させて燃える前に回収し終える」という方法を発見したというわけです。

なお効率ですが、卵を産む親鳥1羽1時間あたり焼き鳥がほぼ1個手に入ります。この例だと80羽なので1時間で80個程度ですね。

正確には1個ではなく1.09375になります。鶏は5~10分に1回卵を産むので、平均7.5分に1回と考えられます(Minecraftではこういうのは中央が一番高い三角形の分布で処理されているとどこかに書いてあった)。なので1時間に卵8個で、卵1個あたりに生まれる鶏の期待値は(実は1/256の確率で1つの卵から4羽生まれるらしいので1/16ではなく)35/256となります。というわけで一時間あたりに生まれるのは35/32羽で、これがそのまま焼き鳥の個数になるので35/32=1.09375個となります。ちなみに80羽で30分放置してみたんですが期待値が80*(35/32)*(30/60)=43.75で、結果が焼き鳥43個だったので、計算通りです。

以上、かなり理論的な説明が多くなりましたが、省スペースで大量の焼き鳥を生産したいという方はぜひご検討ください。

読みにくいのは承知していますので、わからない点などあればコメントしてください(書いていると何がわかりにくいかもわからなくなってくるので…)。