先日は、

 

■ マイクラBE(クリエイティブ) : 扉と条件判定

 

にて、簡単な扉の開閉について書きましたが、

 

 

のような感じでNOTで反転させた信号をトーチタワーで上に上げて、それを粘着ピストンでブロックを押し出しています。粘着ピストンはスライムボールが必要になるので、サバイバルでプレイをしている場合だと、スライムチャンクを探す必要がありますが、スライムファインダーで確認するとどこの座標に存在しているかがわかります。

 

 ちなみに、JEはシード値で座標が変化し、BEは固定なので、スマホやタブレット(iOSやAndroid)とIWNDOWS10とXbox Oneシリーズもそうですが、Switchも基本的にはBTUアップデートで統合されているので、同じ座標にスライムチャンクが存在します。

 

 通常のピストンだと引き戻しができないので、こうした構造の物を作れないのですが、前回はこれに、

のような感じで、上から粘着ピストンでレッドストーンブロックを押し付けて信号を送るような構造にしてみました。感圧版のしんごうがそのまま通るので、簡素な仕様でそのまま動作する構造になります。とりあえず、

 

 

な感じになりますが、ワイヤーだけではなく

 

 

のようにリピーターで遅延を入れています。

 

 前回は、異なる条件で扉の開閉を行う物を作ったのですが、開閉の方法も回路によってさまざまな手法を選択できます。例えば、

 

 

のように接点をレッドストーンブロックにして横方向に配置して、

 

 

な感じにすると、アイテムが入るとインベントリチェックが行われ、信号が出るので、アイテムがあれば開き、アイテムがない条件では閉じる扉を作ることができます。

 

 また、単一の条件ではなく、複数の条件でも動作させることが可能なので、

 

 

のようにアイテムが入った条件で、ボタンを押さないと開かない物を作る事も可能です。

 

 また、条件においては、条件1か条件2のいずれかがクリアできていれば大丈夫と言う内容がありますが、回路を奏した物に変更すると

 

 

のようになります。インベントリチェックが行われるのは同じですが、いずれかのチェストにアイテムが入っている条件でボタンが押された場合に扉が開く仕様になっています。

 

 当然、条件を増やす事も可能ですから、

 

 

のようにすると、複数の条件をクリアしなければ開かない作りにできます。

 

 ここまでは手動の操作で条件をクリアした場合のものになりますが、開く条件に周期を持たせることも可能です。例えば、

 

 

のようにホッパータイマーを用意すると、周期に応じて開閉する扉が出来上がります。ホッパータイマーについては、

 

 

 

でどういった挙動の物かは書いていますが、ホッパー内にアイテムを入れると移送が行われ移送後にもう一方の殻のホッパーに送る特性があるので、向かい合わせたホッパーを用意してそのインベントリチェックを行い、信号を得てピストンでレッドストーンブロック尾をすことで信号の接点を移動させることができるので、ホッパー内のアイテムの数で周期の調整を行うことができる回路になります。

 

 それを加えることで特殊な条件で開閉する扉を作ることができますが、前回は、

 

 

のような構造にすることで、アイテムを入れるというフラグを立てて、その後、ランプがついているときにボタンを押すことでしか開かない扉を作ってみました。

 

 とりあえず、

 

 

のような物を作ってみたのですが、各回路の挙動は、

 

 

の動画で確認できます。

 

 先日は、そんな感じで簡単な回路を使っていますが、簡単な回路でも、信号の流れを考えると、論理演算回路を用いることになります。

 

 前回は、

 

 ■ AND(論理積)

 ■ OR (論理和)

 ■ NOT(論理否定)

 

を用いた処理を行っていますが、これはプログラミングを行う場合においても条件判定で使用します。

 

 ゲームの場合、

 

AととBのフラグが立っていないと先に進めない

 

などがありますが、この場合、 【 AかつB 】 なのでANDゲートを用いて処理をすることになります。NOTの場合は、信号の判定で行っていましたが、OO以外と言う条件がNOTになります。ORの場合、AかBの条件のいずれかで動作する物を作る場合に使います。この三つの回路を用いると、メモリーなどで使用されているNAND回路になりますが、この回路はORやNOTも作れるので、結果的にNAND回路を作れば、組み合わせですべての回路を構築できるのでNAND回路が用いられています。

 

 構造物を動かす場合、条件判定が発生しますが、その場合、比較を行うので、数値の判定(未満、以下、合同、以上、超過などの二つの数値の大小の判定)や状況の判定(前述のような論理演算による判定)を行うことになります。

 

 前回はそんな感じで、判定を行う回路を作ってみましたが、今回は、トロッコ関連の物を作ってみました。

 

ールについて考える                                 

 

 トロッコを走らせる場合にはレールが必要ですが、この路線を引く場合だと単線と複線があります。実際に

 

 

な感じになりますが、上が二つの線路があるので、複線で、下が共通したレールをシェアしているので、単線になります。現実世界の鉄道で、車両が上りと下りで対向して走るような線路の引き方が複線で、そうした対抗できるような線路の状態ではなくレールが一本しか敷かれていない場所が単線になります。二者を比較すると、構造の違いは一目瞭然ですが、駅の部分の作りは同じですが、複線の場合だと、駅の前後にリレーを入れる必要がないので簡素な作りにできますが、その反面レールのコストがものすごいことになります。メサを見つけて金を集めて、廃坑を探索してレールを回収してもky理が遠いと厳しいかもしれません。そうなると、アイアンゴーレムトラップを作ることになりますが、今のバージョンはジ・アイアンタイタンのような勢いで鉄が撮れるわけでもないので、距離が長くなると厳しくなります。

 

 単線の場合だと線路を引いてしまえば、駅の手前にリレーを入れるだけで上りと下りで路線をシェア出来ますから、コストは安くなります。その代わり、リレーの切り替えの機構を実装する必要が出てくるのでレッドストーン回路が必要になります。

 

 複線はそれほど難しくないので、今回は単線のリレーを作ってみようかなと思います。

 

 

■ 線路のリレー(切り替え機)を作る       

 

 とりあえず、切り替え機についてですが、簡単な構造で作ろうと思うとラッチ回路を使う方法があります。XOR回路を使ったものなどを考えてみたのですが、信号を保存する必要があるので、ラッチで対応できそうだったのでそれを使ってみることにしました。

 

 

のような形にブロックを置いて

 

 

のようにNOT回路を二つ組み合わせます。

 

 

のように回収場所をとトロッコの乗り場を作り、

 

 

のような感じでRSラッチを感知レール(ディテクターレール)に接続しておきます。

 

 スターターはボタンになりますが、発射装置(ドロッパー)での射出については

 

 

のようなトリップワイヤーフックを用いて、

 

 

のようにパルサーを使って短い信号を送るような仕様にしています。

 

 

 

■ レールの特性                    

 

 切り替え機はどう作ればいいのか?と言う話になりますが、PS3の時と全く違っていたので色々困惑(作ってる時に謎のクロック回路が生まれました...。)しましたが、基本は同じです。

 

 

 

 

のような感じでレールの繋がった物を作り、もう一方を繋がない状態でレールを敷きます。この状態で、ブロックの上にトーチを置くと、

 

 

のように線路が切り替わります。この特性を使うと、線路の向きを変えることができます。

 

 とりあえず、切り替え機を動かす場合、

 

 ■ 信号を送るためにトーチなどで信号を出すような構造に

    しておく必要がある

 

 ■ 感知レールの信号を引っ張ってくる必要がある

 

 ■ 感知レールの信号は切れるので、信号を維持する必要が

   ある(メモリーが必要)

 

 ■ 固定された信号がそのままだと適正に動作しないので、

    リセットをかける必要がある

 

と言う条件が出てきます。信号を常に入れておく必要があるので、その条件で考えると、レールの向きは、

 

 

にしておくほうが都合がよくなります。そして、

 

 

のようにトーチを置くと反転するので、発射装置でトロッコが射出された後にスターターで発進した場合、この構造だとそのまま直進します。

 

 そして、戻った時用にリレーを切り替えるために感知レールを配置しておき、

 

 

のようにRSラッチに接続します。そして、もう一方の感知レールもラッチに接続しておきます。これで、ラッチの信号を得た後に帰った時にラッチをリセットすることができます。

 

 とりあえず、今回は、

 

 

 

のような構造の物を作ってみました。

 

今回の回路の動作については動画にしているので、それで確認できるようにしていますが、

 

 

 

 

のような感じになります。

 

■ Minecraft BE 1.12.0

 

■ WINDOWS 10 (1903)