先日は、
にてかまどについて書きましたが、今回はアイテムの移送について書こうかなと思います。アイテムの移送ですが、
のようにホッパーは上方向以外にアイテムを移送できますが、下から上にアイテムを送る事ができません。では、
のような場所にアイテムを送る場合どうすればいいのでしょうか?
上 方向へのアイテムの移送
アイテムを上方向に移送する場合だと、ガラスエレベーターを使う方法がありますが、これは、アイテムは隙間に向かって移動する特性を利用した物になります。しかし、インベントリの中にアイテムがあるわけではありませんから、確実にアイテムが残る物とは言えません。
次に、一旦上にアイテムを打ち上げてそれを回収する方法があります。これが、水流エレベーター方式です。これは、UPDATE AQUATICから登場した上昇水流と下降水流によるものですが、ソウルサンドを用いることで、高速な上昇水流を生成することが可能なので、アイテムを水流で打ち上げてその後横方向の動きに水流を変えて回収する方法になります。
そして、昔からある方法として、 【 ドロッパー 】 を使う方法があります。これを使うと方角に関係なくアイテムを射出できるようになるので、アイテムの移送における方角の制約がなくなります。
今回は、一番最後のドロッパーについて書こうかなと思います。
ド ロッパーの特性
ドロッパーは、
のような形のものですが、石とレッドストーンだけで作れます。似た形状のものに発射装置がありますが、これは弓が必要になります。二者を比較すると、
のようになりますが、
のようにインベントリは9つあり、挙動以外は同じになります。
この二つのブロックは、マイクラ内で唯一
【 乱数を発生するブロック 】
なので、二値判定用と1の場合の条件で動く物を用意した場合、0-9までの判定を行う事ができるようになります。最初の二値で外れの確率を指定して、当たりの1等~9等までの乱数を指定できるので、そう言った面白い使い方ができます。今後は、的も追加されるので、更にゲーム性を持たせたものを作るのに適したものが登場しあますが、アイテムが射出されるのは順番ではなくインベントリの中で用意された確率に基づいて抽選されその中で乱数でその中のどれかが選出されています。
この2つのブロックは、
のように感圧版やボタンを使うと普通に動作します。この二つの信号を発生させるブロックですが、オンの状態とオフの状態を1セットで行う特性があります。その為、条件としては一度信号を入れて、その後、もう一度信号を送ってオフにするような挙動をしています。
その為、このブロックは 【 2回信号を送るブロック 】 になります。
ドロッパーと発射装置はこの2回の信号で動作するので、考え方によってはフリップフロップのような動きをしている事になります。
この特性があるので、発射装置に水入りバケツを用意して、信号を一度だけ送ると水が流れ続け、もう一度信号を送らないと回収されないわけですが、この仕様を利用することで、水流の発生時間をコントロールする事ができるわけです。
発射装置やドロッパーは、感知板やボタンで動くので、
のように動きますが、
のように二つ並べた場合、ボタンを押してもアイテムが射出されることはありません。
この状態だと、手前のドロッパーにアイテムが流れるのですが、そのドロッパーに信号が伝達されていないので、アイテムが射出されません。
ドロッパーは方向の制約がないので、
のように上向きに配置してもアイテムが上方向にしゃっ出されます。
この特性があるので、
のようにアイテムを補充して、
のようにドロッパーの上にチェストを配置してボタンを押すと、
のようにアイテムが移送されます。
ドロッパーは単体だと方向依存がなくどの方向にもアイテムを移送できるのですが、連結すると信号が届かなくなるのでアイテムが移送先で止まってしまうという特性があります。
では、
のような条件だとどうすればいいのでしょうか?
信 信号の伝達
この状態だと信号を送っても下から二段目でアイテムが止まるので、連結されたドロッパーに適正に信号を送る必要があります。
この場合、信号を上に上げるので、トーチタワーを使います。
のようにブロックの上にトーチを置いてその上にこれを連結すると、画像のようにトーチからの信号でブロックへの信号が伝達されます。この状態で上にトーチを置くと反転するので、オントオフが交互に並ぶ状態が出来上がります。この構造物に、
のようにボタンで信号を送ると
のように信号が伝達されます。この変化があるので三つのブロックの信号がすべて変わりますから、
のようにアイテムを補充して、
のようにして、先ほどの構造物を作って、ボタンを押すと、
のようにアイテムが移送されます。つまり、この構造にすると、1スタックのブロックを移送したい場合、64回ボタンを押せば移送が完了します。
ただし、その状態だと構造物として作りが酷すぎるので、ホッパーのように移送できるようにする必要があります。
ク ロック回路
先ほどの構造だと、ボタンを連打しないとアイテムの移送が終わらないような仕様ですが、オンとオフが1セットになった挙動を繰り返す事になるので、手作業で数千個のアイテムを移送するのは現実的ではありません。そこで、このオンとオフを切り替える処理を自動で行う必要があります。現実世界だと、この挙動は交流電流の挙動になりますし、自然界の波はサイン波でこうした挙動で動作しています。これをデジタルで行う場合には、クロック回路を用意して特定の周期でオンとオフを繰り返す事になります。
信号のオンとオフが繰り返される理由ですが、入力信号あ切り替わる条件があればいいのですが、NOT回路を並べていくと、
のように常に信号が反転しながらシフトします。どことなく交流電流のような状態ですが、この三つのNOT回路の最初と最後の信号を見ると同じ状態になっているわけですが、これを、
のように回帰させると、入力信号を出力信号で反転させる構造が出来上がります。つまり、この状態は最初のNOT回路に信号を伝達した段階で反転するので、出力の信号も反転します。この挙動が継続するので、クロック回路として動作します。
■ クロック回路の種類
クロック回路は、序盤でも作れる回路になりますが、先程の物よりも速度が出る構造だと、
のような作りの物があります。この回路は、
のようにレバーで止める事ができます。とりあえず、先ほどのアイテムエレベーターに戻って
のようにドロッパーにアイテムを入れて、
の状態で配置して、
のようにクロック回路を動かすと、
のようにアイテムが移送されます。クロック回路には、
のようにNOT回路を階段状に並べて、上にレッドストーンを置いて回帰させて、トーチの上に部六を置くことでクロック回路にする方法がありますが、この構造がローコストで結構速いクロック回路になります。
この回路も
のようにレバーでクロックを止める事ができます。クロック回路には観察者を使った物があります。観察者に対して
のように向かい合わせて観察者を配置すると、最初のブロックアップデートを検知して信号を出しますが、その観察者の変化を検知したほう一つの観察者が信号を出します。観察者の信号はパルサーなので、この信号の変化を常に検地し続けるので、クロック回路として動作します。このクロック回路ですが、
のように観察者を配置した後に、
のように吸着ピストンを配置して、
のように観察者を配置して吸着ピストンで押し出せるようにすると、
のようにクロックのオンとオフを切り替える事ができるようになります。この構造は先程のクロック回路でも使えるので、
のようにすることで信号のオンとオフを切り替える事ができます。
このようにクロック回路を入れてレバーで操作すれば、半自動になりますが、これを自動化するにはなにをすればいいでしょうか?
完 全な自動化
完全な自動化を図る場合、アイテムがある状態で動作してなくなると止まるようなセンサーが必要になります、マイクラでは、感知板のような感圧センサーやトリップワイヤーフックのようなMOB検知が可能な物もありますが、インベントリを持つブロックのアイテムの数量を検知するブロックがあります。それがレッドストーン比較器です。
これは、信号強度を比較するブロックですが、インベントリの数量の検知もできるので、ドロッパー内のアイテムの状態を検知できます。その為、
で検知した信号をそのまま先ほどのクロック回路に伝達すれば、アイテムがある状態で動作し、なくなると止まるようになります。レッドストーン比較器から出た信号を
のようにブロックに送ります。そのブロックの先に
のように吸着ピストンを用意してクロック回路を組んでいきます。
のように押し出せるように配置した観察者を用意して、
の場所にもう一つの観察者を配置します。そして、この観察者の後ろから信号を取るのですが、
のようにレッドストーンを敷いてレッドストーン反復装置で信号を増幅して出力します。この理由は観察者の信号共同が小さすぎためです。
回路を上から見ると、
のようになります。アイテムを入れると、
のようになくなり、アイテムは、上にある大きなチェストに移送されます。
インベントリがある状態だと観察者は信号を出すので、
のようにピストンが押し出され、クロック回路が動作しますが、アイテムがなくなると、ピストンが戻ります。
ア イテムエレベーターを使う
アイテムエレベーターは移送されてきたものを有効利用するための物になりますが、それを使った機構を作ってみることにします。
まず、
のように先ほどのアイテムエレベーターを作り、
のように移送先に大きなチェストを配置して、ドロッパーにホッパーを絶属してアイテムを送れるようにします。その後、
のようにホッパーの上にコンポスターを置いて、ホッパーの柄に大きなチェストを置きます。
これで、骨粉を生成すると、横にある大きなチェストに骨粉が移送される仕組みが出来上がりました。
このままだとむき出しですから、これに装飾をしていきます。まず、ここに壁面を用意したいのですが、不透過ブロックを置くとチェストが開かなくなるので、チェストの上に階段ブロックを置きます。
そして、周辺を囲って、
のようにします。こうすると、下の回路が全く目立たなくなります。そして、床にはハーフブロックを使って光を通すようにして、
壁面は階段ブロックを使って光源の光を通すようにしてみました。
この状態で、
のようにしたので、夜にして確認してみます。クリエイティブだとコマンドブロックを得る事ができるので、
/give @s command_block
でコマンドブロックを得て配置します。
そして、動作するようにのボタンを置いて、
夜にしたいので
/time set night
とコマンドを入力します。
これでコマンドが実行できるようになったので、ボタンを押して夜にします。
コマンドブロックのボタンを押すと、
のように夜になりますが、明るすぎるので、
のように暗くしてみました。すると、
のように階段ブロックとハーフブロックの場所はしっかりと湧き潰しが行えています。
この状態で、
のようにカボチャを入れてみると、
のように骨粉が生成されます。コンポスターは7段階の変化で骨粉が生成されるのですが、骨粉生成時には、
のようにドロッパーにアイテムが流れるのでクロック回路が動作してアイテムエレベーターで骨粉が移送されます。
M inecraftのプレイ環境
■ Core i5 650
■ H55M-Pro
■ DDR 1333 2GBx2+1GBx2(DUAL CH)
■ Quadro K620(PCI Express x16 【GEN2動作】)
■ SATA HDD
■ WINDOWS 10 x64 (1909)
■ MINECRAFT BE 1.14.60
(*)ESBE_2Gを使用しています。
シェーダーパックを使用していますから、バニラの
画質ではありません。
(*)このワールドは試験的なプレイをオンにしているの
で通常のワールドとか挙動が違っている可能性も
あります。
【 使用したソフト 】
■ GIMP 2.10.12