マイクラのポーションの醸造は1つの工程に20秒かかり、材料の投入や運搬の際にはインベントリの占有率も大きくて面倒な作業の一つです。
ちょっとしたテクニックとして、醸造台の上にホッパーを置いて順番に材料を入れておいて全工程を連続でやるというのがあって、1回(3個)の製造なら結構楽になるのでゲーム中盤くらいだとおすすめの方法なんですが、大量に醸造したいならこれを何度もやるのは手間です。
というわけでポーション自動製造機を作りたくなります。
しかし、出回っている他のデザインには以下のような欠点があったりします。
- そもそも連続醸造に対応していない…いろいろなポーションを1クリックで作れるようにはなっているが、一度に3つしかポーションが作れない。
- 故障しやすい…装置が複数のチャンクにまたがっているため、装置を離れたときなどに一部だけが動作することで不具合が生じる。
- 対応しているポーションが少ない…上記の故障問題への対応、あるいはデザイン上の都合で、よく使う一部のポーションにしか対応していない。
- 連続醸造の性能が悪い…周期的なクロック信号をベースにポーションの搬入・搬出行う設計の場合、最も工程のかかる(残留ポーション対応なら6、そうでなければ5)ポーションにあわせた周期にするため、工程の短いポーションの醸造が必要以上に遅くなる。
- 水入り瓶の補給が必要…水入り瓶は運搬が面倒。実際にはガラス瓶さえあれば自動で作成が可能なはず。
そこで、この記事で紹介するポーション自動製造機では、他のデザインにはあまりない特徴として、メイン材料を投入することで装置が稼働するという仕様にしました。つまり例えば、火薬on、グロウストーンon、レッドストーンoffなどと設定してからきらめくスイカと砂糖を10個ずつ樽に入れると、即時回復と速度上昇の強化スプラッシュポーションを30個ずつ作ってくれる、というような感じです。
このようにするメリットとして、メイン材料ごとの貯蔵庫を用意しなくていいので省スペース化しつつ全ポーション対応できるというのと、希少価値の高いor使用頻度の高くないメイン材料(ガストの涙とか)を事前に用意しなくても設備が完成するというのがあります。
サイズとしては1チャンク以内に収まっているため、一部だけが稼働することによって故障することはなくなりました。
これに加えて以下の機能があります。
- 効率的な連続醸造…醸造の最後の工程が終わったことを判定して直後に搬出するので、工程が少ないポーションならその分速く稼働する。さらに、クロック式と違い、醸造が完了しなければ次の醸造にむけた作業が開始されないので、レシピを間違えて動作が止まってしまった場合に無理やり動作が継続されて故障することがない。
- 水入り瓶ではなくガラス瓶での補給に対応…空のガラス瓶を入れておけば自動で水入り瓶を作成する。
逆に欠点として、メイン材料はそのつど手動で用意しなければならず、またレシピも覚えておく必要があります。(メイン材料ごとに分けた部分がないので当然ですが)仕分け機能もありません(仕分け自体はアレイでできるはず)。
装置の性質上、シュルカーボックス単位で1種類のポーションを大量醸造してストックしておくような使い方がおすすめです。
動作検証はJava版の1.21.4で行っていますが、最近の機能は特に使っていないはずなので1.12とかでも動くのではないかと思います。
訂正(重大な不具合)(2025-02-08)
使っていて気付いたのですが、重大な不具合がありました。「醸造と完了の検知」のところで「ホッパーが空になった20秒後に醸造が完了したと判定」というように書いていますが、ネザーウォートを使用しないポーション(つまるところ弱化のポーション)を作成する際には、醸造台の上のホッパーにクモの目が入る→それが醸造台に入る(ここで一旦ホッパーが空になる)→そのホッパーにこんどは火薬やレッドストーンが入る→それが醸造台に入る、という流れになり、この一旦ホッパーが空になったところで回路が反応してしまって醸造途中のものが搬出されてしまいます。
そこで、コンパレータ延長回路を使って、ホッパーが空になっている時間が3秒程度以内のときは無視する(onのままにする)ように修正しました。これによりコンパレータの消費が2つ増えましたが、回路全体のサイズはそのままです。また、ホッパーのタイマー回路のアイテムは26個から22個へと4つ減らせます。(後の方でも修正しています)
背景がごちゃごちゃしていてすみませんが修正後の見た目はこんな感じです。(背面図です)

Litematicデータも更新してあります。
(訂正ここまで)
全体図・Litematicデータ
全体の見た目はこんな感じです。

サイズに関しては頑張ればもっと小型化できると思いますが、1チャンクに収まっていれば十分なのと無駄に回路が見づらくなるのも面倒なのでとりあえずこのまま。あと個人的に水晶をケチりたいのでコンパレータは節約して設計しています。オブザーバーもないです。
装置の設計図としてLitematica(公式はこれとこれ、最近のリリースはここ )という設計図modで保存したデータを貼っておきます。回路の状態は停止時のものになっています。
ただしLitematicaはマイクラの1.14くらいからしかリリースされていないみたいです。
あと、ドロッパーの中身のデータとかまでは保存されていないと思います。とはいえ基本的には読めばor見ればわかるはずです。
メイン材料の投入
では設計について説明します。
まずメイン材料の投入のところが一番のキモで、ここではT-フリップフロップ回路(設計はこのサイトのもの)を使用しています。これは、信号パルスが入力されるたびに出力のon/offを反転させるという回路です。
装置では、このフリップフロップ出力をメイン材料搬出用のホッパーに使用しています。
つまり、初期状態(装置が停止している状態)では信号はoffになっているのでメイン材料が搬出できる状態になっています。しかしホッパーにはコンパレーターが付いており、実際に1つでもメイン材料が搬出されると、これがフリップフロップへのパルスとして入力されて、ホッパーが停止されます。つまりメイン材料はちょうど1つだけ搬出されます。
そして、醸造工程が完了するとそれを知らせるパルスがフリップフロップに送信され、出力がoffになって初期状態に戻ります。こうしてまた次のメイン材料が使われるというわけです。
搬出用ホッパーの下にあるホッパーに関しては、搬出用ホッパーのアイテムを即座に吸い込んでしまうと1度に2アイテム出て行ってしまったりするので、直後は停止状態になるようにしています。

この手前の樽がメイン材料を入れるところです。左下にフリップフロップがあるのがわかると思います。最前列がフリップフロップの出力信号で、今は停止状態なのでoffになっています。
各材料の投入
メイン材料以外の各材料6種を並べます。このうち最初はネザーウォートでなければならず、これはメイン材料より先に投入されるようになっています。次の5個はメイン材料の後に順番に投入されます。多少は入れ替えが可能ですが、発酵したクモの目、レッドストーン、グロウストーン、火薬、ドラゴンブレスというような順番にしておくといいと思います。
投入タイミングはレッドストーンリピーターで細かく調整しています。吸い込みの優先順序(方角依存?)の関係でアイテムが一瞬詰まって順番が逆転してしまったりする場合があるからです。
各材料は、表面に露出しているドロッパーから投入しています。ドロッパーは9スタックしかインベントリがないので少ないと感じる人もいるかもしれません。その場合は手前に樽を付けるなど適宜設計を変更してください。
あとちなみにこれだとガラスにリピーターを入力しているので意味がないような気がしてしまいますがこれでちゃんとドロッパーが動きます。逆に不透過ブロックにすると隣のドロッパーが誤作動したりします(バグ?)
各材料のon/offは粘着ピストンを使って導体ブロックを置いたり引っ込めたりすることで切り替えています。そのためのレバーと、on/off表示用のレッドストーンランプも付けてあります。

こんな感じです。
作動時は、さっきのメイン材料搬出用ホッパーから発生したonパルスがそのままここまで流れてくるような形になります。
後ろから見るとリピーターの間隔調整がよくわかります。一番奥のネザーウォートだけは早いタイミングで作動し、メイン材料よりも先に投入されるようになっています。

醸造と完了の検知
見づらいですが装置の中心部分のここに醸造台があります。

本来は醸造台をコンパレータで測って完了が検知できれば楽なのですが、残念ながら醸造が完了しても醸造台のアイテム数は1個しか変わらないのでちょうどそこを検知するのは無理です。そこで、醸造台に材料を投入している上のホッパーにコンパレータを付けて、このホッパーが空になった20秒後に醸造が完了したと判定しています(2025-02-08訂正: ただし、延長回路により、ホッパーが空になったのが3秒以内であれば無視)。
そのための回路が手前のもので、これはまずここに載っているパルサー回路のようなものを使用してコンパレータoff時にパルスが発生するようにしています。
その後、ここで見つけた延長回路を使って、このパルスを20秒ちょっと延長します。このために、レッドストーンブロックがあるところの下のホッパーにアイテムを26個22個(2025-02-08訂正)入れておきます。基本的にアイテムが全部逆側のホッパーに行って戻ってくるまでなので26x0.4x2=20.8秒くらいかかる計算ですが実際には折り返しのタイミングとかでもう少し早く動作するのでこの設計だとこれが限界くらいかと思います。多い分には構いません(効率が下がるだけ)。コンパレータ延長回路で3秒ほど遅延が追加されているので、ここは22x0.4x2=17.6秒くらいの遅延でちょうどよくなります(2025-02-08訂正)
それで、この延長した信号がoffになるタイミングで2秒くらいのoffパルスができるようにして、それをポーション排出用ホッパーと(少し遅れて)水入り瓶供給用ホッパーに入力しています。つまり20秒くらい経つとポーション排出用ホッパーが2秒ほど動き、それが止まった直後にこんどは水入り瓶供給用ホッパーが2秒ほど動きます。これで安全に瓶の交換が完了します。
さらに、このパルスを短く(一瞬に)したものをon/off逆にして元のフリップフロップに入力します。これで前述の通り醸造完了時にメイン材料供給ホッパーが再び有効になります。
水入り瓶の供給
これで装置の大まかな仕組みは完成ですが、さらにこの装置には水入り瓶自動作成機能を付けてあります。これは意外と単純にできて、ガラス瓶を入れたディスペンサーの目の前に水源を設置しておくと水入り瓶だけが排出されるので、回収用ホッパーが空である限り際限なくクロックが稼働して水入り瓶を作成するようにすればいいです。
最初に貼った全体図で一番上のほうにその機構が付いているのがわかると思います。
初回起動前の準備
起動前にはブレイズパウダーなどを入れておくのはもちろん、水入り瓶を手動で醸造台に入れておきましょう。横のホッパーにも最低1つは水入り瓶を入れておかないと2回目だけは2個しか醸造してくれませんが、まあ最初は砂糖など低コストなポーション材料で動作確認すると思うので問題ないでしょう。
あと、初期状態でフリップフロップの出力がonになってしまっているとメイン材料が搬出されず動かないので、そのときは先ほどのスクリーンショットの奥のほうに見えているダイヤモンドブロックのところのレッドストーンダストを一回破壊して再設置するとフリップフロップにパルスが入力されて信号が反転してくれます(一瞬すぎるとレッドストーントーチが変化しないので0.3秒くらいでやるとよい)。この作業はメイン材料投入前に行う方が安全です。
その他注意
ブレイズパウダーに関しては樽を1個設置できるスペースを設けていてそこから補給できます。減るペースが遅いのでこれで問題ないと思います。
1チャンクに入っているので使い方を間違えなければ故障することはありません。サブ材料のon/off切替も任意のタイミングでできます。
レシピを間違えて途中で醸造が止まってしまった場合は装置全体が停止します。そのときは醸造台に入っている材料および上のホッパーの中身を全部撤去すれば20秒後に瓶が排出され、正常稼働状態に戻ります。
高性能・大型バージョン
この装置の設計を考えていた当初は「メイン材料投入で稼働する」というコンセプトのほうを最初に思いついていて、「連続醸造の性能が悪い」が残っている課題という感じでした。
当時はフリップフロップを使うことを思いついていなかったのですが、そのかわりに各工程で別々の醸造台を使用するというアイデアがありました。つまり、ネザーウォート、基本材料、クモの目、レッドストーンorグロウストーン、火薬、ドラゴンブレスの6段階それぞれのために6個の醸造台を用意して、工場のライン生産のようにそれぞれの醸造台で並行して醸造を行います。こうすると、どれだけ工程の多いポーションであっても20秒ごとに3つ作成できるので大幅に性能が向上します。ただしそのかわりにブレイズパウダーを別々に補給しなければならず、装置も大型化します。
補助材料を使用しない際はon/off信号を切り替えると醸造台を経由しなくなります。連続醸造時にはon/offのタイミングに気を遣う必要があるのも欠点です。
こちらはクロック型で作れるので機構としてはむしろ単純です。一応、概観図とlitematicデータを載せておきます。ただしこの例はドラゴンブレスには未対応です(仮に対応部分を増設したとしても1チャンクに収めることはできると思います)。
クロック(左側にちょっと見えています)のアイテム個数は32個です。メイン材料は一番上のホッパーから投入します。
