SAND STORM

朝ぼらけ

2010年10月25日

Minecraft – redstone/switchを用いた回路構築

Filed under: 未分類 — Tags: — sajin @ 16:29

Minecraftの要素の大半は現実世界の事を単純化したものなので直感的に把握できるが、switch/redstoneを中心とした電気仕掛けの構築は完全に人工の定義に基づく論理的なものなので、原理を抑えた上で構築していかないとさっぱり意味を為さない。

[基本原理]

・電線構築

redstoneを手に持って地面や石になすりつけると赤い線が残る。これは電線(wire)に当たり、単体では電気を持たない。赤線を殴れば、redstoneは回収できる。

wireは基盤となるblockの上にしか設置できない。横や下から模様を描けない=設置できない。また基盤blockが破壊されれば、その上にある赤線も消える。

・赤線は模様の上に存在する透明のblock

赤線は模様のついたblockではなく、その直上1blockの空中に走っていると考るのが正確。設置基盤となったblock=伝導体と考えると、構築を誤る。

赤線は表面に線の模様がついているだけで、player含む動物が自由にその上を歩けるので何も場所を占めていないように見えるが、設置したblockの上1block分を占めている。ここにblockを置くことはできず、jumpしながら赤線のある空に見える部分の上にblockを置くと、隣接判定になって浮いた形で置くことができる。

赤線はblockの上に描くことはできるが、横・下には描くことはできない。赤線を描くというのは砂の様な下に受けがないと存在できない特種blockを置くと解釈した方がいい。

・wireの通電法則

wireは水平方向に隣接するwire blockと他の通電を受けて作動する装置(door,redstone torchなど)の設置基盤blockへ通電する。

赤線(wire)blockは下に受け皿となる設置基盤blockがない限り存在することができない。よって垂直方向に赤線同士が隣接することは不可能。

・赤線は1blockの段差を繋ぐ

赤線は東西南北かつ1blockの段差であれば、自動的に線が構築され連続する。2block離れると断絶し電気は通らない。

これは斜めに直接通電している訳ではなく、一旦斜め部分にせり出した上で通電している。よって、この斜め部分をblockで埋めると通電しなくなる。ただし、glass blockのみ光を通す為か、段差通電を妨害しない。

・1=on/0=off

通電状態を1、非通電状態を0で表す。

・隣接

Minecraftにおいて隣接するとは水平方向4block(東西南北)と上下2blockの合計6blockを表す。

斜めは隣接ではなく、例外を除いて関与しない。

とは言え、その例外である、wireの水平隣接+一段差連結とredstone torchの設置基盤blockへの斜め関与は構築時に必ず頭におかねばならない。

・電源

lever/stone button/pressure plate/redstone torchは電源となる。いずれもon側に倒された状態/押されている/踏まれている/光っている時のみ電流を発生する。

・伝達距離の限界(15block)

電源から赤線を介して15blockまでしか電気は伝わらない。15block分の伝達energyしか無いのではなく、数えて15blockまでの距離なら、どれだけ派生があろうと伝わる。

・赤線はon優先

赤線はどれか一つでも電源on要因があると、その連続領域すべてに電気を流す。これは赤線のないswitchやdoorをとりつける設置基盤blockも同様。ただし15block制限はつく。

扉の両側にleverを設置して、片方だけoffにしても閉じないのはこのon優先が原因。

・lever/stone button/pressure plateの通電法則

redstone torch以外のswitch電源(lever/stone button/pressure plate)は、それ自身がせり出したblockに加え、設置基盤となったblockも発電し、その両blockに隣接するwireに影響を与える。

設置基盤blockも電源となるので、同じ空間に設置するのでも、壁に設置するのと床に設置するのでは結果が異なる。

他の設置基盤blockに電源となるswitch/電源化した設置基盤blockの両者が隣接していても通電しない。wireを介す必要がある。

・lever bug、もしくは東西/南北での使い分け法則

東西方向に倒れるleverはlever/設置基盤blockともに上の法則通り発電するが、南北方向に倒れるleverは自身のみ電源化し、基盤設置blockからは発電しない。(halloween update後確認)

・redstone torchの通電法則

switchと異なり、redstone torchは自身がせり出したblockのみを電源とし、設置基盤blockは発電しない。

redstone torchは自身の設置基盤となったblockに影響を与えない。むしろ、外部からの通電により一方的に影響を受ける。

redstone torchは下と東西南北に隣接するwire blockに通電する。wireの設置法則により真上には存在し得ない。

隣接する他の設置基盤となりうるblockの内、横差しであろうと、床差しであろうと、真上のみ通電する。水平・下方向の他設置基盤となりうるblockへは通電しない。

redstone torchから発電して水平・下方向に隣接する他の設置基盤blockへ通電するには、一旦wireを張って、遠回りで通電する必要がある。

・redstone torchの制御

redstone torchの制御は設置基盤blockに対して行う。外部から設置基盤blockに電流を流すと、そのblockを基盤とするredstone torchは消灯し、電流を発生しなくなる。基盤blockへの通電が止まれば、再びredstone torchは灯り、電流を発生する。

redstone torchはそれ自体が電源であるため、直接赤線を隣接させて制御しようとしてもredstone torch -> 赤線の影響は可能だが、赤線 -> redstone torchの影響はかからない。redstoneを制御するには、それが拠って起つ基盤設置blockへの通電on/offを行う必要がある。Redstone torch自体がささった基盤blockに直接lever/buttonなどを取り付けるか、赤線をtorchではなく基盤blockに通す。

・redstone torchはoff優先

redstone torchは設置基盤となったblockへの通電(on)がredstone torchのoffとして顕れ、逆に設置基盤にひとつも通電していない場(off)合のみ、点灯(on)される。

つまり、赤線同様のon優先を設置基盤blockに対して見、それがredstone torchには逆に表現されると見なければならない。同じ設置基盤blockに設置されたlever/buttonで制御しようとすると、一つでもon要因があると、それが優先され光らない。

・redstone torch/door設置基盤blockと斜め角wireの無効法則

redstone torch/doorを設置基盤blockへ通電して制御しようとする時、真上から見てその設置基盤blockの斜め四角の上下一段以内に通電しようとするwireが走ると、redstone torchは影響を受けない。

これは恐らくbugだと思うが、この為に1block離した所から隣接blockへ直線で繋がないと制御できず、構築に広いspaceが必要となる。

・扉の作動法則

金属製の扉は、on要因が働かない限り、閉じた状態を維持する。木製の扉は通電要因が働かない限り、手動で開閉した状態を維持するが、何か電源と接続されると金属製の扉と同じ状態になる。

扉はそれ自身2blockと、その周囲に隣接するblockに通電した時に開閉する。

扉は電源off状態で閉じ、電気が流れると開く。ただし、二つ並べて両扉状態になった場合、片方のon/offと開閉が逆転する。

赤線がないのに、扉の横にswitchやpressure plateを設置して、押すと開くのは、それ自体が電気を発生し、設置基盤block諸共通電するから。

・pressure plate下への通電

pressure plateが置かれたblockの下に配置された赤線に電気が伝わるのは、設置blockが電源化することによる隣接伝達と赤線がその上の1blockを占めることが組み合わさって通電しているだけで、離れた場所に通電している訳ではない。

[解題]

A:左の砂blockにredstone torchがついているが、基盤block除去により左側には通電しない。逆に基盤以外の隣接通電により、右の赤線に通電、これが右の砂blockに届き、それを基盤とするredstone torchを消灯。よってそれ以上電気は伝わらず扉も開かない。

B: 左の砂blockにredstone torchが立てられたことで、基盤blockなので砂の左に隣接する赤線には通電しない。逆に隣接通電で、右の砂blockの上に存在する赤線に通電、それが直下の砂blockにも通電し、それを基盤とするredstone torchを消灯。以後右には通電せず、扉も開かない。

C: 木材blockの下にredstone torch。左の砂に通電するが、そこに赤線がないので終わり。木材blockに通電してそこを基盤とするredstone torchを消灯。一番右のredstone torchは最右の砂を基盤とするので、砂は不通となり、当然その上にある赤線も不通。隣接伝導で右の赤線に伝わり扉がopen。

D: これも木材の下にtorch。木材と右の砂に通電して、砂上の赤線を光らせるとともに、それを基盤とするredstone torchを消灯。以後右には伝わらず。

・扉の同時開閉

pressure plateを踏むと、それが存在するせり出しblockからの隣接通電により、目の前の扉が開閉。それと同時に、pressure plate/button/leverの設置基盤block発電法則により、pressure plate直下のblockが通電。それが直下にある空中赤線に通電。それが二つの赤線の中間にあり、redstone torchの設置基盤となるblockに通電。この設置基盤blockへの通電によりred stoneがon/off。redstone torchの直上のみ他設置基盤block通電により、真上にあるもう片方の扉が拠って起つ設置基盤blockが通電して扉を開閉。結果、両方の扉が1つのpressure plateのon/offを軸に同時に開閉する。

file:StandardLogicGates.png

上の図の青と緑は最終的に意図する通電地点と方向を指しているというだけで、実際に電流が出る箇所はswitch隣接/switch基盤block/redstone torch隣接とかなり多い。

Input/Output Gate: switchのon/offがそのまま基盤blockを通電してその先に何かあればそれも通電するという式。

Not Gate: switch:on -> redstone torch:off/switch:off -> redstone torch:onというredstone torchを介すことでswitch入力に対する逆の結果を出す。

AND Gate: switchのどちらかがoffになると、redstone torchがonで真ん中のwireに通電。そこを基盤とするredstone torchの電流放射がなくなる。つまり、switchを両方onにしないと電流は流れない。

NAND Gate: AND Gateの最終結果が逆というだけ。

OR Gate: これは酷く単純化されているが、赤線に電流を流すswitchのどれか一つでもonであれば全体に電流が流れるon優勢法則を利用した、どのswitchでも作動するOR system。

XOR Gate: AND Gateに付け加えることで、どれか一つのswitchをonにすれば電流が流れるようにしたOR Gate。両方offだと、switch前の2,3列redstone torch:on -> 2,3列wire:on > 4列redstone torch:off > 4,5列wire:on > 6列redstone torch:offx2。両方onだとswitch前の2,3列redstone torch:off > 2-3wire:off > 4列redstone torch:on -> 六列のredstone torch:off。

XNOR Gate: XOR Gateの一番先にinverterを加えることで、最終結果を反対にしただけの物。

Rapid Pulser: redstone torchから発した電流が、wireを通じてそれ自身の基盤blockに再帰することで自身を消灯させる。しかしそれによってwireの電流がcutされることでredstone torchが点灯し、それがまた自身を消灯させるという繰り返しに陥る。redstone torchを用いた電流systemは短い間隔でon/offを繰り返すと強制的に一定時間torchがoffになるように設定してある。しかし、同じcircuit内に複数のredstone torchを仕込むことで、強制offになるredstone torchを順番にずらし、点灯<->消灯が止まることなく繰り返される。

RS NOR Latch: 赤線/設置基盤blockに対するon優勢により、すでに何か通電要因があれば、それに加えてどこかから通電してきても意味を為さない。つまり、baseとなるswitchをoffにしていない限り、他の入力は無効になる。これを利用すればmasterとslaveの関係が成り立ち、master側を鍵として使用できる。このRS NOR Latchは、それを両者で円周状に組むことで、双方が鍵となり得る状態になっている。

RS NAND Latch: switchを先にonにした方がmasterとなって、slaveのswitch操作を無効化する。これを見る時は、4-5列redstone torchから出る、青/緑への最終派生構築を一旦除去して見る。両方offの場合、energyは中心から出ない。

5-Clock: redstone torchが点灯 > 前のwire:on> その前のredstone torch:off > 前のwire:off> 前のredstone torch:on > 前のwire:onといった具合にtorchとwireのsetでonとoffが交互に繰り返され、基のredstone torchまで戻ってくる。しかし、set数が奇数なので最初に開始したsetを逆にoffにする。そうすることでon/offが常に切り替わり、結果、消灯/点灯がぐるぐる回り続ける。

Redstone Circuits @ Minepedia

Minecraft Mapping & Modding > Baezon’s Redstone Simulator v2.1!

[Bug]

・両扉bug

扉が二つ並んで、両扉状態になると、それぞれのon/offがちゃんと機能しなくなる。

・redstone torch設置基盤block周辺斜めwire bug

Redstone torchの設置基盤blockの上下一段以内、かつ斜め上から見て斜め4blockにwireが有り、設置基盤blockへのon/off関与時にその斜めにあるwireを通すと、on/off switchが機能しない。斜めを避けて遠回りしなければならないし、知らないとまともに構築できない。


関連記事

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment


sand-storm.net