マインクラフトではレッドストーン回路を使いますが、この時に信号の伝達を行って処理をします。これは電子回路と同じですが、電気を使う場合、オームの法則やキルヒホッフの法則などさまざまな法則に基づき、回路上の挙動を数値で考えることになります。これは、解電流だと破損するので、そうした条件にならない為の措置ですが、基本的に構造物は法則性に基づいて動いています。電気も物理法則なのは、現在だと小学校で学ぶ内容ですし、義務教育レベルでも、電気というのはエネルギーとして変換できるので、発電が可能で、それが別のものに変化する事が出来る事を学びます。

 

 エネルギーは、物理現象なので、それが別のものに置き換える事が出来るというのも至極当然な内容と言えます。

 

 この物理現象を簡素にしたものがレッドストーンですが、これは二値の信号をコントロールすることで動作すっる仕組みになっています。まず、最も簡素な作りが、

 

 

になりますが、これは、プログラムだと単一の処理をする物と同じになります。Scratchだと

 

 

のような状態で、多くの言語で一番最初に登場する

 

【 ”Hello,World!”を印字するプログラム 】

 

と同じレベルの物になります。と言っても、その場合、ボタンではなく、トーチになりますが、この構造物の場合、構文に 【 入力が入る 】 ので、プログラミング言語だと 【 入力待ち 】 を入れることになります。

 

 Scratchの場合、クリックイベントで動くので、全く同じ構造と考えて問題がないのですが、これはボタンを押すとレスポンスが返ってくるという仕組みの物になります。

 

 この構造物が、

 

 

のような形になり、ドロッパーの中のアイテムを移送するような物だったらどうでしょうか?

 

 個数が少ない場合、これでもいいのですが、アイテムを全て移送するとなると、ドロッパー+ホッパー+チェストですから、全てのインベントリを補充すると、656個のアイテムになります。つまり、この構造物だと、656回数ボタンを押す事になります。

 

 この作業と言うのは、

 

 

のような足し算のような処理になりますが、この処理が煩雑なので、小学校低学年では掛け算を学びます。これと同じものが、

 

 

になりますが、Scratchでは、

 

 

のように単一の処理を繰り返すためのブロックが用意されています。このブロックの構造は、ループの中に処理が入っている物になりますが、処理は単一のものなので変数になりますが、これを回数分ループさせるので、加算のループ処理と同じになります。つまり、掛け算というのはこうした事を行う処理になります。

 

 個数が膨大にある物を移送する場合、ループ処理を行いますが、この場合、永続処理になりますから、数値が存在しないので、

 

 

のような永続した処理になります。

 

 

路と処理                      

 

 電気の基礎的な部分は、豆電球と電池とスイッチのような物になりますが、これを使うと、 【 通電と遮断 】 を学べます。中学校になると、磁界が登場するので、この回路がもう少し進化して 【 モーター 】になりますが、これがコイルに電気を流して、磁界を発生させ、磁石の極の位置との関係によって回転運動を発生させるパーツになります。

 

 その為、フレミングの右手の法則やフレミングの左手の法則については、モーターを含めた回路がそのまま当てはまります。このモーターと豆電球の違いですが、これは、 【 極性による変化が存在する 】 ことになりますが、信号が反転すると、モーターは逆回転します。これが磁界の向きの変化によるものになりますが、その変化がコイルに流れる電流の変化(電流の向きの反転)によるものになります。

 

 このように、電気を使った物については、中学校レベルでもこうした事を学びますが、ブレッドボードを使った場合もこうした事を確認できます。 現在はこうした事をもう少し高度にできるので、IoT端末やそのシミュレーターでサーボモーターを使って、プログラミングで制御するという事もできますが、基本的に、電気を使った回路と言うのは、

 

【 実装したアルゴリズムを1度だけ実行する物 】

 

になります。この辺りは、LEDの点灯をするような回路をIoT端末とブレッドボードで作った場合に確認できると思いますが、点滅と言う条件になると、 【 オンとオフ 】 が必要になります。また、この処理は一度実行すると終了するので、それを継続させるためには前述のようにループ処理を実装する事になります。

 

 電気については、 【 通電 】 と言う継続した処理しか発生しませんから、実装したアルゴリズムは1度しか発生しません。これは通電の状態と言うのが 【 信号の維持 】 なので、メモリーのように信号の状態を維持しているので、通電した時に発生する処理は、一度発生すると、その後は機能しなくなります。この特性があるので、

 

【 信号の伝達はアルゴリズムを1度だけ実行する物 】

 

と考える事が出来ます。まず、

 

 

構造物ですが、これは、種類でいうとパルサーなので、

 

 

のようにオンとオフの信号があります。つまり、信号の維持ができないので、送った信号は切れます。その為、

 

 

の状態にした場合、ラッチやフリップフロップのような状態で信号の維持がされるわけではありませんから、通電による実装アルゴリズムの実行後に処理がリセットされます。実装されているアルゴリズムが、信号の伝達で実行されるという仕様になっていますから、そのアルゴリズムを複数実行しようと思うと、送った状態で信号をロックをかけると止まってしまうので、

 

 

のオンとオフの信号を交互に出す必要があります。その為、回路を組む上において前述のようなループ処理を実装する場合にはクロック回路を実装します。

 

 

路と処理                      

 

 クロック回路の場合、色々な物がありますが、マイクラの場合、信号の伝達で速度が変わります。例えば、

 

 

のようにすると、中央のピストンと下の二つのピストンの速度が変わります。これは、動画で見たほうが解り易いので動画をあっぷしたのですが、

 

■ 吸着ピストンを使ったクロック回路        

 

のような挙動になります。これも信号の伝達によるものですが、

 

 

のようにすると、クロック回路でドロッパーに信号を送る事が出来るので、トグルスイッチで信号を送ると処理が永続的に行われることになります。この構造物ですが、

 

 

    レバー     : 信号の維持

    クロック回路  : ループ処理

    ドロッパー    : 内部のアイテムの移送処理

    チェスト      : アイテムのストック

 

 

になります。レバーはトグルスイッチなので、0と1の信号の維持をする仕組みになります。つまり、ラッチのような挙動をしている訳ですが、これが、信号の維持になります。これで実装したアルゴリズムを動作させるわけですが、クロック回路が繋がっているので、

 

 

の0と1の信号を交互に入れ替える(交流電流の挙動がこれになります。)事が出来るので、

 

 

の構造物を

 

 

のような感じで処理をするのではなく、

 

 

の状態で処理を行う事が出来るようになります。

 

 

 号の伝達時間                  

 

 電子回路を作る場合、電気を使いますが、この電気の速度は光の速度と同じなので、電子機器が歯車を使った構造物よりも速度的に優位なので、歯車式計算機が使われなくなった(制度の問題もありますが)

訳ですが、クロック回路では、周期を持たせてオンとオフを繰り返していますが、デジタルの場合、これは二値なので、矩形波のような挙動になります。波については

 

 

のような感じになりますが、自然界に存在する波形が下にあるサイン波で、デジタルの場合、二値の変化なので、上にある矩形波のような挙動になります。この周期を変えると、挙動が変わりますが、音の場合、周期の変化はピッチシフトが発生するので、音の高さが変わります。

 

 この周期がクロックになりますが、オンとオフと言う条件で考えると、このオンの状態が続いている場合、

 

 

のような実装されたアルゴリズムが実行されるわけですが、オフになると、これが切れます。クロック回路の部分だと、長周期の動作のものなのか、高速クロック回路のように処理速度を求める物なのかで使い方が変わりますが、この入力後の信号の長さで挙動が変わります。

 

 

 

 

の構造物も矩形波のように一度だけ信号を送り特定の時間で信号が切れるものになっていますが、この時間が長いので、色々な回路が動きます。ただし、統合版の場合、信号の持続時間によって検知する物とそうでない物があるので、構造が信号を短くすることで動かなくすることが可能です。統合版だと、1レッドストーンティックだと動作しない物もあるので、2レッドストーンティックで動かしたほうが速い場合がありますが、ボタンについてはかなり周期が長いので、

 

    木のボタン : 15ティック(1.5秒)

    石のボタン : 10ティック(1.0秒)

 

になります。ここで、トロッコを射出する時にパルサー回路を使った物を紹介していますが、この時の遅延は2レッドストーンティックで切れるので、速度が全く違います。感圧版は10ティックで動作し、エンティティーがなくなると5ティックで切れるので、パルサー回路のような速度はありません。その為、短い時間だけ動作する仕組みを実装する場合にはこの 【 信号の持続時間 】 をどうするのか?を考える必要が出てきます。

 

 短い周期だと、パルサーになりますが、クロック回路のように永続して同じ処理を行う場合、クロック回路自体を早くすることになります。遅くする場合だと、ホッパータイマーや日照センサーのような長周期の物を用意することになりますが、

 

【 クロック回路自体をどれくらいの時間動かすのか? 】

 

を考えた場合、信号を維持する時間をコントロールする必要が出てきます。レッドストーン信号は、長周期クロックで維持する事が出来すが、この長周期の状態を、パルス信号から得る場合、信号を維持する回路を実装する必要があります。この時に、使用するのが、レッドストーン比較器になります。

 

 

のような回路を作ると、信号が15で出て、回帰をして1減ります。つまり、これが0になるまで、行われるので、15回集会する事になります。つまり、これを一つ入れるだけで信号の伝達時間分だけ信号を持続す事が出来ます。遅延の変化も動画で見たほうが解り易いので、動画をアップロードしておいたのですが、

 

■ 信号の持続時間を延ばした回路         

 

のような感じになります。このように信号の持続時間をコントロールできるので、

 

【 クロック回路の動作回数 】

 

を信号の持続時間の調整ができます。

 

 

のように永続処理を行った場合、クロック回路は常に動きますが、特定の時間を指定すると、クロック回路の動作回数が決まってきます。この時に、クロックの速度を変更すると、特定の時間で動作する回数を調整でいますから、

 

    クロック回路の速度

    信号の持続時間

 

の二つを調整することで、実装アルゴリズムの実行回数をコントロールする事が出来ます。回路の場合、アルゴリズムは、回路に実装されたモジュールの挙動や、クロック回路から向こう側の回路そのもの挙動になりますから、 【 指定回数だけ動かす 】 と言う条件を指定する場合、レッドストーン回路を用いた場合、この二つの項目を調整することでコントロール出来ます。

 

 

 ロック回路とアイテムの移送          

 

 前述のように、

 

 

のような感じで、アイテムを移送する場合、

 

 

のようにクロック回路を使うことになりますが、横と下方向への移動だと、ホッパーで処理ができますが、上方向の場合だと、この構造物が必要になります。

 

 上方向へのアイテムの移動をする場合には、アイテムエレベーターを作る事になりますが、そうした回路だと

 

 

のようなコンパクトな作りの物が使えます。三段目まで移送する場合だと、この回路で大丈夫なので、観察者が必要になりますが、このモジュールで動作します。三段目をホッパーにした場合、ドロッパーの横の観察者は不要になりますが、この構造にすると、

 

 

のように上にアイテムを移送できます。その為、

 

 

のようにアイテムを移送して、

 

 

のように観察者とレッドストーンを交互において

 

 

のようにすると、上方向にアイテムを同時に送る事が出来ます。とりあえず、3方向は確実にレッドストーン信号の影響を受けずに拡張できるので、大きなチェストから送ったアイテムを上方向に数倍の速度で移送する(と言ってもホッパーの移送速度による遅延は発生しますが)

事が出来るようになります。

 

 コンパクトなクロック回路でトーチタワーを動かす方法はありますが、今回の回路を少し改変した物だと、

 

 

のような感じになります。これも

 

 

のように並列処理ができますが、トーチタワー事態に信号を送るので、

 

 

のような作りになります。観察者の場合、観察者の挙動を検知して信号を送っていますが、この場合、クロック信号をトーチタワーに送る必要があるので、一列長くなります。その為、ピストンへの信号ができないので、信号の伝達方式が変わります。この状態で動作させると、

 

 

のように観察者からの信号でブロックに信号が来るので、信号が来た状態だと、伝達先のブロックは、画像のようにレッドストーンブロックのように動作します。すると、下にあるレッドストーンに信号が伝達できるので、ピストンを動かす事が出来ます。形を少し変えることになりますが、

 

 

のように下側に配置できる小さなクロック回路を用いると、回路をコンパクトにできます。

 

 

 イテムの移送                   

 

 上方向へのアイテムの移送だとドロッパーを使った方法などがありますが、これとは別に水流エレベーター方式もあります。この場合、上に上げる必要がないので、

 

 

のドロッパーの横の観察者を除去した状態で運用できるのですが、ヨコヤ下方向だとホッパーを使った移送だけで済みます。ただし、ホッパーの場合、

 

 

のようにレッドストーン信号が来ると止まるので、この状態を回避する必要があります。この特性を使うとホッパーのアイテム移送をコントロールできるので、

 

 

のようにすると、ボタンでアイテムの移送をコントロールできるようになります。また、

 

 

のようにクロック回路を入れると、移送周期を調整できるようになります。

 

 このように、レッドストーン信号を使うとホッパーの移送速度と移送の連続性を回路によってコントロールできようになります。

 

 前述の物は、操作とクロック回路ですが、センサーによる挙動制御もできます。例えば、

 

 

のようにマイクラの世界の半日(10分)で一度動作するような仕組みにすることもできますし、

 

 

のようにチェストの状態で機能するような回路も作れます。

 

 

 号強度                       

 

 マイクラでは、レッドストーン信号は16進数で制御されているので、通常の信号は0-15の間で推移します。レッドストーンたいまつやレッドストーンブロックを用いた場合、15の長さまで信号を送る事が出来ます。

 

 この15を超えた状態だと、信号が切れるのでレッドストーン反復装置で延長することになりますが、これが実装されていない時代には、NOT回路で回路の二重否定をすることで元に戻して延長するような作り方だったようです。当然、この作り方をすると、平面で作ると最小単位でも長さが4ブロック(1列にした場合)になるので、回路が巨大になりますが、現在は、レッドストーン反復装置でそうした距離の延長ができます。

 

 基本的に、 【 二重否定をすれば信号は延長できる 】 ので、NOT回路を2つ用意すれば、信号の延長はできるので、レッドストーンを見つけた後は色々と回路を作ム事が出来ます。ただし、レッドストーン反復装置はダイオードのように一方通行にしか信号が伝達されない仕様(極性依存がある)になっており、横からの信号を全く受け付けないので、NOT回路による二重否定を行った作りとは少し意味合いが違ってきます。

 

 この二者を並べると、

 

 

のようになりますが、入力と出力の状態が同じになっています。

 

 この二者の違いは側面の信号の伝達の違いで

 

 

のように二重否定型のNOT回路では、画像のように伝達時に側面に信号が出てしまう特性があります。その為、レッドストーンを真横に置けないという問題があります。それに対し、レッドストーン反復装置では、側面の信号を受けないという利点があります。

 

 二重否定による信号のの延長ですが、

 

 

のようにしても遅れますが、上にブロックが置けないなど色々と制約を受けます。その為、信号の延長を行う場合、レッドストーン反復装置を用います。

 

 また、レッドストーン反復装置の場合、

 

 

のようにブロック単体で信号の延長だけでなく、遅延を入れることもできるので、信号の二重否定だけでは対応できない機能も実装しています。

 

 信号の長さの基本は15となっていますが、それよりも短いブロックも存在します。この場合、レッドストーン比較器を使うことになりますが、額縁もそうした特性を持っています。額縁に対して

 

 

のようにアイテムを入れると、回転させることが出来ますが、この状態でも信号が出ているので、

 

 

のようにホッパーにロックをかける事が出来ます。また、加算モードだと、 【 OO以上 】 と言う条件判定になるので、

 

 

のようにすると、横方向からの信号強度以上にならないと、信号が出なくなります。この時に、横方向からの信号強度を超過した場合、指定された信号強度分の長さの信号が伝達されます。その為、

 

 

のような状態にすると、検知している側のアイテムが側面のアイテムも回転数が少ない場合にアイテムが出て、それを超過すると止まるという仕組みを作れます。側面を最大よりも一つ小さくした状態にしておくと、入力側のアイテムを最大に回すと、回路が機能するような仕掛けを作る事が出来ます。信号強度ですが、加算モードだと、上記のようになりますが、減算モードだと、

 

 

のように元の信号から、横方向の信号を引いた分だけ信号が出るようになります。この状態を見ると、横に一つレッドストーンを伸ばした場所からトーチまでの長さと、レッドストーン比較器からの信号の長さが同じになっていますから、この状態になると覚えると減算モードも使いやすいと思います。この状態で、入出力の信号強度を変化させると、意図した信号の強さや距離を得る事が出来ます。

 

 レッドストーン比較器ですが、

 

 

のように信号が伝達yされていないと機能しないので、トーチの場合、レッドストーンを相手に入れないと信号を受け付けません。

 

 

 

のように加算の状態にした場合に、信号のコントロールができますが、レッドストーン信号の場所で動作を指定できるので、

 

 

のように信号によって何をするのかを指定することもできます。ただし、以上と言う判定だと、信号が超過した場合にも動いていしまうので、別途信号強度が超過した場合の回路を用意する必要があります。この状態だと、信号強度1なので、最初のリピーターが光っていますが、一段階動かすと 

 

 

のように信号強度は2になります。その為、

 

 

のように動かすと、その分信号が強くなるのですが、この条件で、

 

【 OO以下は信号を出さない 】

 

と言う指定にする場合にレッドストーン比較器を用いて加算モードで比較を行う事になります。

 

 

 

 ンベントリと信号強度                

 

 レッドストーン比較器は信号強度の比較だけではなく、インベントリを持つブロックのインベントリの状態を検知して信号を出せるのですが、この信号強度も0-15となっています。

 

 その為、 【 インベントリのスロット数で数値が変わって来る 】 のですが、このスロット数と、スタックの数量によっても状態が変わってきます。信号強度15の状態は、インベントリが最大の状態になりますが、信号強度1-14と言うのは、インベントリのスロット数で違っています。その為、通常の64で1スタックのブロックを格納した場合でも状態が変わります。

 

 例えば、

 

 

のような状態があったとします。この状態で、

 

 

のように1スタックのアイテムをホッパーに入れると、

 

 

のように信号が切れます。しかし、

 

 

のように1ブロック延長した場合には信号が途切れてしまいます。これが、信号強度による挙動の違いになります。この状態で、

 

 

のようにブロックを配置した場合、

 

 

のようにNOT回路の信号は切れませんが、

 

 

のようにアイテムが増えると、

 

 

のようにNOT回路の信号が切れます。信号の延長は、

 

 

で行えますから、この構造物は

 

 

 

のような形に置き換える事が出来ます。この構造にした場合、レッドストーンの下のブロックは

 

 

のようにブロック側面のレッドストーン回路に信号を送るので、レッドストーン反復装置にも信号が伝達されます。その為、この構造でも

 

 

 

と全く同じ動作になります。ただし、ブロックに信号を伝達するので、レッドストーンではなく反復装置が使用されています。この状態で、このNOT回路をホッパーロックの用途に使うと

 

 

のような構造になりますが、これがマイクラで使用されているアイテム仕分け機の作りになります。つまり、この構造物は、アイテムの数量による信号強度を利用して動かしている回路になります。その為、

 

【 スタックできる物に限定される 】

 

ので、1ブロック1スタックのアイテムを仕分けることはできません。と言うのも、仕訳機自体がブロックID検知をしている訳ではないので、仕分けるkとが出来る対象が限定されています。

 

 

 ッパーの仕様                     

 

 ホッパーの特性ですが、

 

 

のような作りにした場合、ホッパーは下方向を優先して動きます。しかし、アイテムが吸い込めない状態(ロックがかかった状態)だと、横方向にアイテムが移送されます。この特性を使うと、仕訳機がロックされている状態だと横に流れ、アイテムが一致すると下に流れるという作りになります。そうした特性から

 

 

のような構造の物が考案されています。基本的にレッドストーンは回路なので 【 乱数で動いているわけではなく、仕様や特性を元に設計されたもの 】 になりますから、機能をするような流れになっていなければ誤動作をしたり動かなくなります。この辺りは、プログラムを組むのとと全く同じです。

 

 

 イテム仕分け機と特性              

 

 アイテム仕分け機は構造上下方向にアイテムを移送するので、

 

 

の位置にアイテムがストックされます。その為、

 

 

の場所にアイテムを入れて仕分けた場合、画像のようにかなり下の場所に配置されてしまいます。その為、この作りにしても

 

 

のように下の階にストッカーを用意することになります。ただし、ストッカーの量を増やすと物凄く下の階層にアイテムを格納する事になりますし、使用したい場所が地下ではなく上層だと上にアイテムを移送することになります。そうした時に、

 

 

のようなアイテムエレベーターを用いることになります。

 

 

 路と景観                      

 

 基本的に作業場所が遠すぎると作業が煩雑になるので、出来れば作業を行える場所は集約されていたほうが作業がしやすくなります。例えば、 【 なめらかな石の製造 】 を想定した場合、

 

 

    丸石の製造

    燃料の確保

    丸石を焼いて、更に石を焼く

 

 

と言う工程が必要になります。そうなると、かまどは2つ必要ですし、それを連結する必要があります。また、前述の作業のしやすさを考えると、

 

 

 

のような感じで、木炭の生成用のアイテムの投入場所と丸石の製造場所と、回収場所は地上に合ったほうが便利です。そうなると、

 

 

のように地下にかまどを配置して、

 

 

のようにアイテムエレベーターで上に上げてアイテムを移送するような作りになりますが、そうすることで、

 

 

のような感じで、回路を目立たないようにすることができます。ちなみに、かまどの特性として、最初にホッパーを通過したアイテムが上のスロットに移送されるという仕組みなので、丸石を溶岩入りバケツで精錬すると、一番最初にバケツが移送されます。そうすると、精錬不能なアイテムがそのままかまどに入ってしまいますから、かまどが詰まってしまいます。その場合、かまどの連結の間にアイテム仕分け機を入れる必要が出てくるので、

 

 

■ トーチタワー方式                  

 

■ 水流エレベーター方式               

 

で内部循環を刺せる必要があります、このかまどで用意している作りだとアイテムが低い場所に存在しているので、丸石製造機やツリーファームと連携させる場合には燃料や材料の補充先やアイテムの移送先を同じ場所に用意する必要があります。そうなると、ストッカーに入れたアイテムを上に移送する必要が出てくるので、アイテムエレベーターを各アイテムごとに用意する必要があります。並列処理をする場合、この構造のレーンが巨大化するの柄、これとは違う構造になりますが、単一のソリューションで小さく作ろうとするとこんな感じになります。効率化をか張る場合には、燃料が必要になるので、ツリーファームから得たものをそのまま流すか、もしくは、それに加えて、溶岩入りバケツや竹などを使うことになります。昆布を使う方法もありますが、作業場所を集約する場合には、レイアウトもある程度決まってくるので、その場所で作業がしやすい環境を作った上で、回路のレイアウトを考えることになります。

 

 

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.16.20

 

    (*)ESBE_2Gを使用しています。

 

        シェーダーパックを使用していますから、バニラの

        画質ではありません。

  

     (*)このワールドは試験的なプレイをオンにしているの

        で通常のワールドとか挙動が違っている可能性も

        あります。      

 

 

【 使用したソフト 】 

 

  ■ GIMP 2.10.12