「シフトレジスタ回路」というのがある。論理回路を説明するととんでもないことになるので、端折って言うと、照明A、B、C…と並んでいて、1回ボタンを押すとAが点灯、もう1回押すとAが消灯してBが点灯、もう1回ボタンを押すとBが消灯してCが点灯…と、入力の度に出力が移っていく、というもの。「点灯・消灯」という1ビット情報(レジスタ)が移っていく(シフト)ので、「シフトレジスタ」。
で、何でこんな話をしているかというと、Minecraftのレッドストーン機構の話。要は「何回かに1回動作させたい」機構こそ、「シフトレジスタ」なのだ。
これは長期クロック機構とは違う。あれは「一定時間経過すると動作する自律機構」なので、入力が必要ない、というか、"停止させる"以外の入力する箇所が無い。
「シフトレジスタ」がどこで必要か。主には農業の自動化である。どの農作物も、収穫できるまで(ゲーム時間での)数日を要する。単純に「日照センサー」で毎日"刈り取り"をやってしまっては、収穫できるまでに生長する時間が短すぎて非効率的なのだ。
Bell式カボチャ・スイカ収穫システム「うりうりハーベスター」は、頻回に建造しているが
www.youtube.com
製作者Bell氏は長期クロック機構を使用している。
でも俺としては、日照センサーを使って「4回目の正午に収穫する」機構を造りたい、と思っていたんだ。
開発に想定してた理屈は単純。ホッパーとドロッパーを抱き合わせにして、ホッパーにレッドストーントーチをかまして輸送できなくし、ドロッパーに入力する度にホッパーにアイテムが移動し、ホッパーが空になったら、それをコンパレーターで検出しNotゲートで反転し出力し、一方ホッパーにかましていたトーチをOffにし、アイテムを全てドロッパーに戻してリセット。こういうのを造りたかったのだ。
だが、ドロッパーが空になった出力でホッパーのアイテムを戻そうにも、途中でそれが絶えてしまい、全てのアイテムがドロッパーに戻らないという仕様に延々と悩まされ続けてきた。
試作品の一つ。リピーターの遅延を利用して、ホッパーのアイテムをドロッパーに戻そうとしている。
が、上手くいかない。当時は「シフトレジスタ」という言葉も知らず、闇雲にググって調べても分からなかったのだが、ついに見つけた。2つも。
- リピーターのロック機能を利用したもの
www.youtube.com
これはスゴイのだが、初期設定としてパルス回路を入力しなければならないのと、時々"全てのロックされたコンパレーターが消灯している"=レジストリ全消滅があり、新たにパルスを入力する必要がある、メンテナンスを要する場合がある。俺が言うところの「頑健性」が足りない。
- ホッパー・ドロッパー方式の完成形
www.youtube.com
これこそが俺が到達したかったもの。ではホッパーのアイテムを戻しきれない問題をどうやって解決したか? コンパレーターの相互接続で解決していた。とはいえ、動画の通り限界があり、アイテム数は8個が限界。それ以上は、この機構を直列すればよい…ったって、50回に1回作動する機構の、需要が分からないが。
よかった、よかった、これで開発が捗るぜ!!
…あれ、俺、なんで泣いてるんだろう…
炭治郎「悔しいなぁ何か一つできるようになってもまたすぐ目の前に分厚い壁があるんだ 凄い人はもっとずっと先の所で戦っているのに俺はまだそこに行けない」 pic.twitter.com/85sBGaHMpx
— 鬼滅の刃【名シーン】 (@k_i_m_e_t_su) January 27, 2021