テクニック/レッドストーン回路
Minecraftのゲーム内で機械的な装置を作るためのレッドストーン回路を紹介します。
基本的な動作についてはレッドストーンのページを参照。
ピストンを使って小型化された回路等、一部はテクニック/ピストンにもあるので必要があればそちらも参照。
凡例
Tickレッドストーン関連で使用される遅延時間の 1tick は 100ミリ秒(1/10秒・0.1秒)のRedstone Tickです。
MOBのスポーン周期などに使われるGame Tickは 1tick 50ミリ秒(1/20秒・0.05秒)で、1redstonetick=2gametickです。
ページ内のレッドストーンの画像の注意
ver1.16以降、また単体で設置した時の形状も
本ページのスクリーンショット画像の一部は1.15以前のものであり、設置されているレッドストーンダストの形状が異なる場合があります。
回路
RSトーチを使うことで、論理回路を組むことができる。
RSトーチを通過する動力の流れは一方通行で、出力側に入力装置を置いても意味が無い。
以下は基本的な論理回路の紹介です。
回路の組み方は他にも沢山あるので、あくまで参考として扱ってください。
以下の回路はRedstone Simulatorの記法にのっとって表示されています。
- Redstone Simulator- Windows/Mac/Linux。レッドストーン回路のシミュレーター。
- 右クリックでブロックの設置・左クリックで削除。再生でシミュレート開始。
- 白を基準として、黄色は1段上、灰色は2段上にブロックがあることを示す。
- 灰色の四角が感圧式スイッチで、シミュレート時にマウスを乗せるとONになる。
- 小さい四角がボタンで、シミューレート時にクリックするとONになる。
- 右端の縦棒はドア。
- 再生ボタンの右側の上下ボタンで高さを変えることもできる。
- 出力したgifの1/2、2/3は高さ(何段目)を指します。
- Mordritch's Javascript Redstone Simulator- ブラウザで動作する、Javascript版のレッドストーン回路シミュレーター
- 右クリックと左クリックが逆になっている。
アイテム別 凡例 | |||
固形ブロック(導体) | RSトーチ | ||
RSワイヤー (レッドストーンパウダー) |
RSリピータ 外側の赤い線の数が設定遅延数 | ||
ボタン | レバー | ||
感圧板 | ドア | ||
ピストン | 粘着ピストン | ||
O以外のアルファベット 特に指定が無ければ、入力を指す |
アルファベットのO 特に指定が無ければ、出力を指す | ||
Redstone Simulatorでのトーチ図。左から 地面設置時、同点灯時、壁設置時、同点灯時 | |||
※RSワイヤーは接続先が無い場合は十字ないし点で、そうでない場合は線で表されます | |||
※RSトーチ・レバーは壁に刺した場合と地面設置の場合で表示が異なります | |||
※RSワイヤー・トーチ・リピータ等は動力を得ている場合は明るい赤で表されます |
ピストンやRSリピーターを用いた回路図には以下のツールを使うと良いでしょう。
使い方・記法は上記シミュレータとほぼ同じです。
- RSリピーターが使用できるシミュレータCircuitSimulator
- 上記にピストンが追加されたものCircuitSimulator-rek
論理回路(基本)
基本的な回路素子。not(反転)、and(論理積)、or(論理和)を組み合わせて作られる。これを組み合わせ回路とよぶ。
参考動画 -http://www.youtube.com/watch?v=QpvJ9wiywL4
NOT
|
|
A | O |
---|---|
0 | 1 |
1 | 0 |
入力AがONの時に、出力OがOFFに
入力AがOFFの時に、出力OがONになる。
RSトーチの特性上、信号は一方通行になる。
コンパレータを使ったNOT回路
MC1.5から新たに追加されたRSコンパレータの後背面に動力源をおき、側面から入力することでトーチを使用しないNOT回路が可能。
(ONのときには後背面からの入力と同等以上の強さになるように調整)
トーチが焼き切れてしまう3クロック以下のクロック回路を使用する際に有効である。
リピーター
通常レッドストーン回路の信号は15ブロックまでしか届かないが、
RSトーチを挟むことで15ブロック以上伸ばすことができる。ただしタイムラグが発生する。
タイムラグをできるだけ減らすには、15ブロックごとにRSトーチを置くといいだろう。
装置自体を長くすることでタイムラグを減らすいくつかの工夫が考えられている。
|
|
現在はレッドストーンリピーターを使ってリピーターにすることが可能。
OR
|
|
A | B | O |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
入力A・入力B・入力CのどれかがONになったときに、出力OがONになる。
単純に一箇所に回路を3本以上つなげると、OR回路になる。
入力部分の回路の光り方が混同して紛らわしいという場合は、デザインBを使うといいだろう。
AND
|
|
A | B | O |
---|---|---|
0 | 0 | 0 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
入力A・入力BのどちらもONになったときに、出力OがONになる。
デザインA,BどちらもNANDの反転である。
コンパレータを使用したAND回路
|
NOR
|
|
A | B | O |
---|---|---|
0 | 0 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 0 |
NOT OR。ORの出力Oが反転したバージョン。
RSトーチを1つ使った、Minecraftでは最も基本的な回路のひとつ。
NAND
|
|
A | B | O |
---|---|---|
0 | 0 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
NOT AND。ANDの出力Oが反転したバージョン。
ANDより単純で、基本的な構造である。
XOR
|
|
|
|
A | B | O |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
入力A、入力Bのどちらか片方だけがONの時に、出力OがONになる。
入力A、入力Bの両方がON、または両方がOFFの場合は、出力OはOFFになる。
三路スイッチとして使うことも出来る。
コンパレーターを使ったXOR回路
|
XNOR
|
|
A | B | O |
---|---|---|
0 | 0 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
NOT XOR。XORの出力Oを反転させたバージョン。
単純にXORの出力にNOTを付けることでXNORはできるが、遅延が減るように色々と工夫がなされている。
コンパレーターを使ったXNOR回路
|
IMPLIES
数学演算子A→Bを満たす場合にONになる回路。
|
|
A | B | O |
---|---|---|
0 | 0 | 1 |
1 | 0 | 0 |
0 | 1 | 1 |
1 | 1 | 1 |
|
入力AがOFF→ONになるときに信号を発信するリピーターを使った回路。
リピーターの設定を変えることで信号の長さを変えることが出来る。
パルサー
![]() |
|
A | O |
---|---|
0 | 1 |
0→1 | 0→1 |
1 | 1 |
1→0 | 1 |
RSトーチx4を円状に配置して構成されている。
入力AがOFF→ONに変わった瞬間に、OFFになった後すぐONになる信号を発信する。
入力Aがそれ以外の状態の時は常にONを出力し続ける。
OFF→ONに変わる瞬間を検出するのに使われる。
リピータロックを用いたパルサー回路
|
リピータロックを利用すればRSトーチを一切用いないパルサー回路が可能である。
図の回路ではONからOFFになった瞬間に発信する。最短で1tickの信号長で発信できる。
コンパレータを用いたパルサー回路の例(+1tickパルス形成回路)
|
コンパレータを用いてもトーチを使用しないパルサー回路が作成できる(図左)。
ただし、コンパレータはトーチと同様に1tickの入力の変化には応答しないため、トーチ式と同様2tick以上の幅の信号しか出力できない。
図の回路の右半分は2tick幅の信号を受けて1tick幅の信号に整形する回路である。
コンパレータによるリピータロックを利用して、2tickの信号のうち前1tick分を切り捨てている。
図の配置の場合、コンパレータ側面へのパルス入力は15である必要が有る。
オブザーバーのパルスの利用
オブザーバー自体が発する信号は1Tickのパルスだが、On/Offのどちらの変化にも発してしまう。
その為、オブザーバーを利用してパルサーを作ろうとするならば、図のように粘着ピストンを挟むなどの工夫が必要である。
順序回路(ラッチ回路・フリップフロップ回路)
論理回路を組み合わせることで、入力信号を保持するメモリを作ることができる。これを順序回路という。
ここからは電子工学系の知識が必要になるので注意。電卓をはじめとした、巨大な回路を作りたい方向け。
Wikipedia - ラッチ回路
Wikipedia - フリップフロップ
RS型フリップフロップ
2入力端子回路。基本動作としては、0のときは保持し、1のときにセット及びリセットの動作をする。
R=S=1の動作はRS-flipflopの定義である双方の出力が反転するに違反な為、基本的にはしてはいけない。
場合によっては不安定な動作を引き起こし、発振とよばれる予期しないクロックが発生する恐れも回路の形によってはあるので注意。
RS NOR latch
|
S | R | Q | NOT(Q) |
---|---|---|---|
1 | 1 | 0(禁止) | 0(禁止) |
1 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
0 | 0 | 保持 | 保持 |
S:セット R:リセット Q:出力 NOT(Q):Qの逆値
SとRの入力ポートを両方ともOFFにすることにより、データを保持する。
この時、たすきがけのフィードバック回路により、 QとQの出力が、一定値、かつ、それぞれ逆の値で保たれる。
R(Reset)がOFFの間に S(Set)が一瞬でもONとなった場合、Q出力がONとなり、SがOFFに戻った後も QはONを保持する。
同様に、SがOFFの間に Rが一瞬でもONとなった場合、Q出力がOFFとなり、RがOFFに戻った後も QはOFFを保持する。
ただし、R=S=1の入力は禁止されている。なぜなら、出力値が一致してしまい、RS型フリップフロップ回路の定義を破る結果になるからである。
基本的にSとRの両方をOFFにセットしておいて、一瞬だけSやRをONにする、という使い方をする。
実用的な例としては、T字路に繋げることで、そこを通るたびに進行方向が入れ替わるのでMOBを振り分けることができる。
RS NAND latch
S | R | Q | NOT(Q) |
---|---|---|---|
1 | 1 | 1(禁止) | 1(禁止) |
1 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
0 | 0 | 保持 | 保持 |
S:セット R:リセット Q:出力 NOT(Q):Qの逆値
RS NOR Latch回路と基本動作は同じ。但しR=S=1のときの動作がQ=Not(Q)=1になった。
Not RS NAND Latch
|
NOT(S) | NOT(R) | Q | NOT(Q) |
---|---|---|---|
1 | 1 | 保持 | 保持 |
1 | 0 | 0 | 1 |
0 | 1 | 1 | 0 |
0 | 0 | 1(禁止) | 1(禁止) |
RS NOR latchのNAND版。入力は~S(Sの逆値)と~R(Rの逆値)。
RS Flip-Flop
|
C | S | R | Q | NOT(Q) |
---|---|---|---|---|
1 | 1 | 1 | 0(禁止) | 0(禁止) |
1 | 1 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 0 | 0 | 保持 | 保持 |
- | X | X | 保持 | 保持 |
S:セット R:リセット C:クロック Q:出力 NOT(Q):Qの逆値
RS Latch回路をクロック入力がされたとき、RS入力の状況によって反映させる。それ以外の時は保持する。
D型フリップフロップ
この回路はデータ入力とクロック入力で構成される。クロックの状況によって、データ入力の結果を保持する。
D-Latch回路はクロック入力だが、レベルエッジとよばれるもので、クロック同期はしない。
wikiで紹介するハイレベル式ではC=1のときに保持する。
D Flip-Flop回路はクロック入力の立ち上がり時のD入力の状況が反映され、それ以外では保持される。
D Flip-Flop
|
D-Latch回路
C | D | Q | コメント |
---|---|---|---|
0 | 0 | 0 | リセット |
0 | 1 | 1 | セット |
1 | 0 | 保持 | 前の状態のQを保持 |
1 | 1 | 保持 | 前の状態のQを保持 |
D Flip-Flop回路
C | D | Q | コメント |
---|---|---|---|
- | X | X | 前の状態のQを保持 |
↑ | 0 | 0 | リセット |
↑ | 1 | 1 | セット |
"Data" Flip-Flop、もしくは"Delay"Flip-Flop。
1.A型(D-Latch回路)
入力CがOFFの間は、入力Dが出力Qに素通りする。
入力CがONの間は、入力CがOFF→ONのなった瞬間の入力Dの状態を保持する回路。
|
リピーターロックを利用したD-Latch回路(Low Level Edge)
|
リピーターの側面からリピーターによる入力を行うと前回の出力の状態を保持する機能「リピーターロック」が使用できる。
これをそのまま利用したものがこの回路である。
クロック入力がオフの時に保持するD-Latch回路(High Level Edge)
|
クロックをNOTすると逆の場合も作れる。用途に合わせて使用するといい。
2.B型(D Flip-Flop回路)
Cはパルサーが接続された。これにより、C入力の立ち上がり時のみD入力が反映されるようになった。
|
リピーターロックを使用したD Flip-Flop回路
|
二重にロックし、それぞれを逆の対応にすることで作成することができる。
Cにクロック回路をつなぐことで、クロックごとに入力Dの状態を保持するレジスタとして動かせる。
S,Rの入力はつけなくてもよい。
保持部分はRSラッチになっていて、S,Rに入力すると、CがONの状態でも、それぞれ状態をON,OFFに変更することができる。
JK型フリップフロップ
RS Flip-Flop回路の問題である、R=S=1の動作を改善し、反転機能をつけた回路。
この回路はクロック入力による同期が必須であるため、非常に大きくなりがちである.
JK Flip-Flop
|
C | J | K | Q | コメント |
---|---|---|---|---|
↑ | 0 | 0 | 保持 | 前の状態のQを保持 |
↑ | 0 | 1 | 0 | リセット |
↑ | 1 | 0 | 1 | セット |
↑ | 1 | 1 | 反転 | 前の状態のQを反転 |
- | X | X | 保持 | 前の状態のQを保持 |
JKの由来は不明で、いくつか諸説ある。
RS Flip-Flop回路の問題だったR=S=1の動作を改善して、反転するようにした。
ただし、J=K=1のときはResetとSetがそれぞれの動作を反映させようとするので反転を繰り返す。そのため、C入力はパルス信号で同期させて動作させる。
クロックCがOFF→ONになった瞬間にのみ動作する。
![]() |
リピーターを使用したJK Flip-Flop
|
ホッパーを使用したJK Flip-Flop
|
アイテムを一つ入れると動作する。
参考:【ニコニコ動画】【Minecraft】JK-FFと同期式2進カウンタ【1.5.0~】
T型フリップフロップ
Tが立ち上がりするたびに反転する回路。
T入力とC入力は統合させる場合が多いが、分けることも可能。
動作としてはJK Flip-Flop回路のJKCを統合させたものなのでJ=K=1のときの動作と同じになる。
ピストンを活用したものについてはテクニック/ピストンを参照。
リピーター不使用型
|
T | 前の状態のQ | Q | コメント |
---|---|---|---|
0 | 0 | 0 | 前の状態のQを保持 |
0 | 1 | 1 | 前の状態のQを保持 |
1 | 0 | 1 | 前の状態のQを反転 |
1 | 1 | 0 | 前の状態のQを反転 |
"Toggle" Flip-Flop。
入力TをOFF→ONにした時に、出力Qを反転させる回路。
入力TがON→OFFになる時は、変化しない。
入力Tに感圧式スイッチ、出力Qにドアを繋ぐと、踏むごとに開く/閉じるが切り替わるトグルスイッチになる。
デザインA・Bの入力側はパルサーになっている。
デザインCは入力を4クロック以下のパルサーにしないと期待した動作にならない。
応用:Tにクロック回路を繋ぐことで、Qから1/2の周波数のクロックを出力できる。
注意:デザインCは入力をオンのままにするとショートする。周波数を落とすのに有効。
リピーター使用型
|
D Flip-Flop回路を使ったT Flip-Flop回路
|
D Flip-Flopの出力を反転し、メイン入力にさすことでClockをトグル入力として使用することができる。レバーやセンサーなどの入力にも対応している。
リピーターロック使用型
|
画像の状態からボタンが押されると、
ボタンに接続されているトーチが切れる→リピーターのロックが解除→ループ上のトーチから動力が来ていないのでループ部分の動力が切れ始める→
ピストンoff、引っ込む→上の二つ並びのリピーターの遅延中にボタンからの入力解除、ロック再開→
ループのトーチに動力が来ていないので点くが、入力先がロックされているのでピストンoff状態維持。
ピストンoffからボタンが押されると上記のロック解除後の入力が反転、
ロックされるリピーターが点いた状態でロックされるので画像の状態に戻る、といった具合である。
|
基本的には上のリピーターロックを利用したT-FFと同じだが、レッドストーンコンパレーターを使用したもの。
インベントリのあるブロックを使用したもの
| |
ディスペンサーの仕組みを応用したもの。 ディスペンサーに水バケツ、チェストの中にツール類を入れ1枠埋めてある。 |
ドロッパーの輸送を応用したもの。 中にツール類のようなスタックできないアイテムを入れる。 |
その他の回路
ダイオード
信号を一方向のみに伝える機能。
RSダストが半ブロックやガラスなど非導体ブロック上に乗ったRSダストへ登りは信号を伝えるが、逆に下りは伝えられない事を利用。
リピーターと異なり遅延が無いことが利点。
クロック回路
クロックとは、論理回路が動作する時に、複数の回路のタイミングを取る(同期を取る)ために使用される周期的な信号。
周期的にON/OFFを繰り返して出力する。
単純に電飾としても使える。
奇数個のRSトーチを円状に配置することで、クロック回路を作ることができる。
デザインAは非常に速いクロック回路。RSトーチを4つにすることでRSトーチが全て焼き切れることが無く動作し続ける。
デザインB,Cは、シンプルで安定した5クロックの回路。1クロックや3クロックの回路も作れるが、速すぎてRSトーチが焼き切れてしまう。
|
β1.3よりレッドストーンリピーターが新しく追加され、コンパクトに作成する事が可能となった。
|
レッドストーンリピーターはレッドストーンから送られてきた信号を出力先に送るまでの時間をある程度指定でき、レッドストーンリピーター同士の連結も出来ます。
これによりクロックのOn/Offの周期を手軽に変更できることが大きな利点です。
この回路の場合、トーチの遅延により左右にズレが生じるため、左右両方から信号を取り出す際にズレを無くしたい場合は下図のようにリピーターを設置します。
|
なお、最速で駆動するクロック回路は以下のものになる。
|
この回路はレッドストーントーチを使用していないため、焼き切れることはない。
また、この回路は信号長1を発信するパルサー回路を使用しないと動かない。
パルサー回路との接続例は以下のようなものになる。
|
コンパレータを使用した1tickクロック回路
この回路から信号を得る場合、OFF時にも2以下の微弱な信号が流れ常にONとなるのでコンパレーターから3つ以上離す必要がある。
|
オブザーバーを使用したクロック回路
上は1tick間隔、下は2tick間隔
|
タイマー(長時間遅延装置)
ホッパーとコンパレーターを使用した長周期クロック回路
参考:【Minecraft】 長周期クロック回路とその応用 【Ver1.5.2】
|
赤い矢印はRS動力を表す。ホッパー内のアイテムの有無をコンパレーターが出力し
ブロックを介して次のホッパーの動作を停止する。
ホッパーが1個のアイテムを輸送するのに4ticksかかるので、64x5=320個で1280ticks、
1周するのに4倍で5120ticks必要になり、最大で512秒。(レッドストーンの1tickは約100ミリ秒)
ホッパーとコンパレーターを使用したカウンター
参考:【Minecraft】簡単カウンター【レッドストーン回路】
|
■タイマー回路の部分
①はボタンスイッチが入れられ、RSブロックが左に移動したところ。
この時右ホッパーは、空になるまで中のアイテムを左ホッパーへ移動する。
右ホッパーが空になる、とスイッチ側コンパレーターは信号をOFFにするので、RS動力はNOTを介して左のピストンをONにする。
するとRSブロックが押し返され②の状態になり、左ホッパーは停止が解除されて、アイテムを右のホッパーへ移動する。
右のホッパーは停止しているので、左ホッパーのアイテムが空になるとタイマー回路はそのまま停止する。
※タイマーが出力する信号の長さは、アイテム数x[4ticks(往)+4ticks(復)]である。(ホッパーの動作は4ticks)
■クロック回路の部分
2つのリピーターをそれぞれ遅延を4ticksにして、ピストンの1動作をちょうど8ticksにしている。
タイマーが出力する時間内に動作は繰り返されるので、ちょうどアイテムの個数分カウントしている様に見える。
B.U.D(Block update detector)
ブロックの更新を検知する装置。
主にピストンによるB.U.D装置が主流であるが、コンパレーターによるB.U.D(CUD)やドロッパーによるB.U.Dも存在する。
現在はオブザーバー単体でBUD相当の状態検知が行える。
コンパレーターを使用したB.U.D (Tutorials/Comparator update detector)
検知元はコンパレーターなのでコンパレーターの側面を検知させる。
参考動画:Minecraft - Comparator Update Detector (CUD)
ドロッパーを使用したB.U.D
検知元はドロッパー。ピストンを使用しない静音型である。
予めドロッパー内にスタックできないアイテムを入れる。
参考動画:WORKING Silent BUD(s) Minecraft 1.5
検知元はドロッパー。こちらはピストンを使用する。右のパターンは横に並べることが可能で汎用性が高い。
予めドロッパー内にスタックできないアイテムを入れる。
参考動画:【Minecraft】ドロッパーBUD(とカボチャ畑と製氷機)withゆっくり【1.5.1】
既存のBUDとオブザーバーの違い
ピストンを用いたBUDはピストンの動作時間に影響する為2Tick未満の検知間隔で動作させることが出来ない。(粘着ピストンが1Tickパルサーでブロックを引き戻せない)
コンパレーターを用いたBUDも同じく、回路に使用するRSトーチやリピーターの遅延に影響を受けるため、検知間隔は最低2Tick必要。
既存のBUD回路の多くは、その検知回路そのもののRS信号を利用して動作させる為、ON状態の間に検知機能は瞬間的にOFFとなるが、
オブザーバーは遅延なしで信号を取り出せてしまい、また検知機能はOFFにならない。
その為ピストンでオブザーバーをトリガーとしたブロックの更新を行う回路に組み込んだ場合、
回路自身が変更したブロック更新によってクロック回路化してしまわないような工夫が必要。
ピストン回路
テクニック/ピストンを参照。
オブザーバーを使用した回路
三路スイッチ
階段の上下の電灯のスイッチの仕組みを再現。XOR回路より取り回しが楽でシンプル
解説動画
基本回路
NOT,OR,NOR
NAND,AND
XOR,XNOR
応用回路
クロック回路
参考リンク
Minecraft Wiki - Redstone Circuit
Minecraft Wiki - Redstone Torch