先日は、
にて、回路についていろいろ書きました。回路についてはクリエイティブだといろいろ作れますが、サバイバルだと採掘した資源などの資産の状態で出来ることが違ってきます。
回 路とコスト
OOを行うという目的があった場合、それを行う機構を作ることになりますが、その場合、単一の物しか選択肢が存在しないわけではありません。例えば、苗木などの回収機構の場合、ここで紹介した
水流式も存在しますが、これは解集段階で足場の部分い落ちる可能性があるのでロスが生じます。そうなると、これとは異なる方法だと、植え込み部部に害をホッパーにして拐取する方法があります。光源は高い位置配置して、照らすことになりますが、この方法だと、植え込み以外の場所の苗木や棒やリンゴなどは回収できますが、ジ・アイアンタイタンを作ることが全体になりそうな恐ろしい量のホッパーが必要になるので、結構大変です。しかし、ロスは水流方式よりも減ります。ただし、コストを考えると、体験版の90分以内で作れるこの方式よりはコストや制作に取り掛かる前の前準備が大変と言う問題があります。
もう一つの方法として、地面を二段くりぬいてホッパー付きトロッコの走るレールを引いてその上に土を置き、光源ブロックと土で地面を整えて明るさも確保した状態で、事件尾上に落ちたアイテムを回収する方法です。この場合、鉄の消費量もさることながら、加速レールが必要になりますから、レッドストーンや金が必要になります。
つまり、回収効率はいいのですが、製作を行う上において必要となる資材調達の時間がさらにかかってしまうことになります。
その為、回収機構は色々な方式がありますが、序盤に効率よく回収するという条件なのか、もしくは、資材が集まってきた状態で倉庫にためることができる状態での機構の生成なのかで内容が違ってきます。
それを踏まえて考えると、サバイバルモードでプレイしている条件だと、そうした機構を作る場合、現時点で出来るものは何だろうか?を考えることになります。
基本的に、農作物などについては、 【 回収機構 】 なのでこの場合、大前提としてストッカーを作り、そこにアイテムを送るという条件が発生します。そうなると、実質的に処理が行われる場所とストーッカーと物流を繋ぐ所リューションが必要になります。
この三つは確実に違う物ですが、生産と在庫管理を行うストッカーは全く別の物ですから、構造が違う物を用意することになりますが、その上でアイテムをストックするとなると、そこにアイテムの輸送経路を設ける必要が出てきます。その条件だと、前述のような
■ 水流
■ ホッパー
■ ホッパー付きトロッコ
のような物が存在します。クリエイティブの場合だと、アイテムの制約がかからないので、回路を組む上でも自由な発想で潤沢な資源を用いて回路を組めます。その上で、無駄な部分を削除すると効率的な回路を作ることができます。また、クリエイティブの場合、資材が無限なので、比較するためのモデルを横にもう一つ作ることも可能なので、複数のもⅮるケースを用意してそれを対比し最適な物はどれなのか?を探すことができます。しかし、サバイバルだと似たような物を複数作るというのは資材的に難しいですから、クリエイティブのようには作れません。また、ゲームの新工場j強によって作れるものと作れない物が資材状況で発生しますから、巨大な回路については作ることが困難だったりします。
ソ リューションとモジュール
構造物が機能するバイア、一つの挙動を行うモジュールが存在し、それがタスク処理やクラスター処理されている事が多いです。
このモジュールも、あくまでもブロックの仕様に基づいて機能を実装することになります。例えば、 【 アイテムの回収 】 と言う条件だとすると、この場合、
■ インベントリを持つアイテム
■ アイテムをドロップする物
■ アイテムを回収する物
の三つは必要です。とりあえず、マイクラのチェストに該当するものはインベントリのサイズが同じなので、
■ 単体のチェスト
■ エンダーチェスト
■ シュルカーボックス
■ タル
は容量が同じですが、チェストは二つ並べると2倍の容量のラージチェストになるので通常はストッカーを作る場合これを用意します。と言っても、自動でどんどんアイテムが溜まるような物を作るとラージチェストの容量もあっという間に埋まるので、これを効率的につなぐ必要があります。この場合、ホッパーを使うことになります。
■ ホッパー
ホッパーは、
【 ホッパー 】
インベントリのあるブロックのアイテムを指定した向きに
向かって送ることができる
と言うブロックですから、ラージチェストからアイテムを送ることも可能です。その為、
のように材料を入れてそのままタスク処理で焼けるかまどを作ることができます。これはどういう仕様か?と言うと、横に装着されたホッパーが燃料を装填し、上にあるホッパーは材料を装填します。つまり、横のホッパーに長けの自動生成装置のような物を配置してどんどん竹を送り込んだり、溶岩入りバケツをストックしておけば、そのまま補充しながら次々と焼いてくれることになります。
タスク処理と書きましたが、このかまどの仕様は、ラージチェストに入れたモノを順番に焼いていくので、かまどのような汎用性のあるものだと、食材も鉱石も焼くことができます。つまり、
鉄 ・ 肉 ・ 昆布 ・ 金 ・ 丸石
などのようなものをそれぞれ1スタックづつ入れていた場合、それを順番にかまどに補充するので、そのアイテムがどんどん焼けていきます。焼いたものと焼いた後のバケツについてはそのままラージチェストに帰ってきます。つまり、焼く必要がある物をまとめてラージチェストに入れておけば、そのかまどで順番に焼いてくれるので、燃料を潤沢に補充しておけば材料を入れておけば、ラジチェストとカマドのインベントリが埋まるまで物を焼いてくれるわけです。
これも、かまどの仕様とホッパーの仕様が存在しているので可能になっています。つまり、ホッパーはインベントリのあるブロック間に接続するとそのブロック案においてアイテムの移送が可能な仕様になります。ただし、仕分け機のようにアイテムが流れないようにするために
な感じで意図的にどのブロックにも繋がっていないような配置をする物もありますが、アイテムの移送の場合対象のインベントリを持ったブロックにホッパーを接続することになります。この時にスニークをしながら接続することになりますが、そうすると、アイテムはホッパー経由でインベントリを持ったブロックへと移送されます。ちなみに、仕分け機のこの仕様ですが、こうすることによってアイテムにロックがかかるようになるのですが、これを真下のホッパーにつないでしまうとそのままアイテムが流れてしまうので、ロック機構を持たせるためにどのブロックにも繋がっていないホッパーを用意することになります。
ホッパーの特性はそんな感じですが、自走式のホッパー付きトロッコを用いたモノを走らせた場合、下側のホッパーはインベントリのあるホッパー付きトロッコのアイテムを吸います。そして、それをあ接続されたかまどに送ることになりますが、そのかまどからラージチェストにアイテムを送ることも可能なのでそのソリューションが成立しています。つまり、アイテムを吸い込むことができるものが存在するので、インベントリのあるブロックから、別のインベントリのあるブロックへのアイテム移送が可能になります。
こうした機能はホッパーにしか存在しませんから
■ ホッパー
■ ホッパー付きトロッコ
を使うことになりますが、自動かまどのようにアイテムをラージチェストに補充しておけば自動でそこに流してくれるような仕様の物も作れるので、この二つを連動させると、色々なことができます。
代表的な物として、これを使ったものだと、自動回収がありますが、BE版では耕した土の下にホッパーを置いても回収しないので、1ブロック以上だとホッパー付きトロッコを走らせる必要があるので、農業系の回収機構や広範囲に落ちたモノを拾う場合にはレールを引いて回収するという方法があります。ただし、コストが凄くなるので、この面積を小さくして作るような物もの存在しています。
これとは別に、アイテム移送で使用されているのが、モジュールのクラスター化を行うことで同じ時間でも錬成効率を高くした高速かまどなどがそれに該当します。
以前、BEの体験版(90分しかプレイできませんし、そのワールドは製品版にしないとそこからプレイを再開することはできません。w)を使って、
を作りましたが、これが高速かまどの小型版です。実際には、これをもっと長くして数十個のかまどを並べた状態にして、その1列のシステムを数列作って超高速なクラスター化したカマドを作ることによって同じものを一気に焼いて錬成効率を尋常ではない速度まで上げるというのがこの機構になります。先ほどのチェストを繋いだだけのものは錬成功率ではなく、補充の煩雑さを解消してクラスター化して焼くためのものになりますが、これは、同じアイテムを補充して燃料も潤沢に補充することで燃焼スピードを上げることで高速に量産をするという仕様の物になります。
とは言っても、かまどの数分だけ材料が必要というのもありますが、
【 システムが巨大になると尋常ではない量の燃料が必要になる 】
ので燃料と言う資源を安定して得ることが可能花賞に作る必要が出てきます。そうなると、手間はかかりますが、潤沢に燃料がある場所というと、 【 ネザーの溶岩 】 がありますから、枯渇させることは不可能っぽい何かを組み続けてネザーで焼くという方法があります。前のバージョンまでだと、ジ・アイアンタイタンが動いていたので、得た鉄をひたすらバケツにして 【 鉄のバケツのシェア世界一を目指すようなバケツの大量生産 】 を行って、その鉄バケツをみねくなるまでつづいているらーじちぇすとのれつにそれぞれ全てのラージチェストが埋まる前装填し、その上で、ホパー付きトロッコにもインベントリが埋まるように配置します。そうすると、高速かまどの1列分の燃料が埋まるので、焼く必要のある何かを見えなくなるまで向こうまで続いている材料用のラージチェストの列に装填していくことになります。この構造物を複数用意しても、ネザーの巨大な溶岩だまりが存在している場合、枯渇することはないですから、ネザーだとこれは可能と言う事になります。
BEだとどうなるか解らないのですが、JEだととんでもなく重くなるのですが、ネザーゲートを作ってその場所にトロッコに乗ったゾンビピッグマンを用意して、ネザーゲート内に雪玉が入るようにスノーゴーレムをネザーゲートを挟むように配置すると、ネザーへのエンティティーの侵入があるので、JEだとチャンクローダーになる(しかも、コレってオーバーワールド以外のチャンク読み込みなので、エンドのチャンクローダーにもなるようです。)ようですが、BEだとシミュレーション範囲以内でなければ動作しない(あとで、チートコマンドについて少し触れますが、この条件も変更可能です。ただし、実績解除ができなくなるので、サバイバルでは使えません。)のでその場所にいる必要があります。
とりあえず、鉄無限&無尽蔵の三層式ジ・アイアンタイタンを作ってる人はいても、
【 それを用いてバケツ生産者になってネザーのマグマを
枯渇させにかかったプレイヤーは居ない 】
ので、その状態で鉄が存在した場合、ネザーに材料を送り込めていれば、そう言う材料の移送も可能になるのでそう言った使い方も可能になります。
使用しているハードウェアのスペックで処理能力が変わるので規模も変わってきそうですが、高速かまど並列して作ると速度が稼げます。現在は、
■ 溶鉱炉
■ 燻製機
があるので、特定の物だとかまどの2倍の速度で焼くことが可能になっているので、コストはかかりますが、高速かまどを作ると更に高速に錬成が可能になっています。ちなみに、それぞれのブロックですが、
に対応しています。
ちなみに、処理については、一つの処理を行っているときに何か優先する処理が発生した場合、そちらを優先した後に、元の処理に戻るような工程を踏みます。この処理をタスク処理と呼びますが、基本的に、工程に基づいて動くのがタスク処理なので、
の場合、ラージチェストに配置したブロックと個数がタスクになるので、それを配置した順に処理していくのでこれはタスク処理になります。
高速かまどは同じものを複数の同時進行で焼くことで高速化する物になりますが、この考え方はコンピューターでの演算処理でも同様の事が言えます。まず、クラスター処理というのは基本的に重たい処理を高速化する時に使用しますが、グラフィックの分野では3DCGのレンダリングについては20世紀は絶望的な重さだったので、現在のように
のような速度でレンダリングができるような時代ではありませんし、この品質の物を出すこと自体が1990年代末では不可能だったわけです。
と言うよりも出せない事もないのですが、映画製作のような環境が必要になるので、個人がこういうのを書き出せるような時代ではありません。その為、その時代と、現在では相当な違いがあります。
上記の速度も、Pentium G4560に8GBのメモリーを実装してQuadro P620を実装したような構成(つまり、GTX1050Tiよりも遅いです。)よりも遅いので、その構成だと、上記の動画の速度よりも速くなりそうな時代ですから、昔と言うのがどれだけダメなのか?と言う話になります。また、その状態は2000年を超えてもそんな感じですから、その時代とは現在と比較すると悪夢のような時代だったと言えます。ちなみに、この動画はレンダリングをしているものをそのままキャプチャーした物なので、ビューポートレンダーを用いるとそれほど速くないマシンでも過疎なシーンであれば、この速度が出るわけですが大昔はそうはいきません。また、さほど品質が高いわけでもないのに動画は時間がかかるので、当然のようにそくどぉ稼ぐ必要があります。現在でも映画のように重たいグラフィックを用いる用途では、クラスター処理で高速化する必要があるのでそれ相応のマシンの台数でGPUを使った書rなども含めた演算が行われていますが、基本的にネットワークレンダリングと言う概念は昔から存在しました。
この場合、マシンスペックを合わせる必要があるのですが、画像を書き出す場合だと、 【 台数x0.75倍 】 の速度が担保されているほうがいいので、そう言った仕様で使うことになりますが、動画の場合だと、全フレームの動画の書き出し時間は決まっています。となると、それを二つに分けた場合、当然のようにシーンによる書き出し時間の差は発生しますが、アベレージで考えると、単純に2倍になります。
そうなると、 【 総フレーム数 ÷ 台数 】 で考えて、フレームを分割して個別にリクエストを出せばいいという話になります。つまり、シーンを個別に作っている場合だと、奇数と偶数のシーンで分けて、それそれをマシン1とマシン2でリクエストを送ってそれをタスクで処理させると、単体のマシンで処理する倍の速度で演算が終わります。
つまり、この仕様の場合だと 【 レンダリング時間÷台数 】 で処理が終わるので、当然のようにクラスター化する場合にマシンの台数が増えれば処理速度は向上する訳です。当然、これはリクエストを個別に出してそれぞれのマシンが処理をしている状態ですから、これが遅くなる理由は存在しませんし、特定の台数で処理が不能になるというオカルトが過ぎる間違いは存在しないので、クラスター化を行った場合には処理を行うマシンの台数が増えるほど処理時間は短くなるわけです。
映像は、
【 単体のフレームのレンダリング時間 】
【 シーンのフレーム数 】
が存在します。マイクラのかまどで複数のアイテムを焼く場合も
【 単体のアイテムの錬成時間 】
【 アイテムの個数 】
と言う条件が存在します。そうなると、レンダリングにおいてシーンごとにリクエストを高速に処理できるマシンに渡してレンダリングファームでレンダリングを凍名うとリクエストを分散させた数(演算を行うマシンの数)分だけ速度が増すことになります。この条件では、かまどの数の増加で同じ時間で行える錬成数の増加と全く同じ考え方ですから、高速かまどと言うクラスター処理を行うことによって、大量のアイテムの錬成時間を短縮できるわけです。この内容を見れば、クラスター処理を行う場合に、台数が増えるとボトルネックが発生するというオカルトが過ぎる間違いは存在しないことが理解できると思います。
基本的に、マイクラの回路内でも、コーディングを行うように
■ 工程を元に処理を行う
■ 並列化することで高速化する
と言う考え方が存在しているのですが、
【 タスク処理 】
【 クラスター処理 】
が可能です。
■ ドロッパー
アイテムを移送する場合、
のように水流を使うことができますが、ドロッパーを使用する方法があります。ドロッパーは、クロック回路を用いることで、連続してアイテムを射出することができます。そして、ドロッパーは全ての個方向にアイテムを移送できるので、
ホッパーでは対応していない上方向への移送
が可能です。今回は触れませんが、ドロッパーと発射装置(ディスペンサー)はレッドストーン回路で使用する時には 【 乱数発生装置 】
として使用可能ですから、マイクラのサバイバルモードにおいて、レッドストーン回路(コマンドなし)を構築する際に乱数で動く構造物を作成することができます。
クロック回路については、先日、
のようにNOT回路を三つ接続すると回帰時に信号が反転するので永続してクロックすると言う事を書きましたが、
のような構造物とは別にもっとコンパクトな物も存在します。
のようにしてコンパレーター(比較器)を減算モードにするだけでクロック回路になります。単体では昨日信濃のでトーチから信号を与える必要がありますが、この構造だけでクロック回路が作れます。また、
のように観察者(オブザーバー)を用いた場合、顔を向かい合わせにするとそれぞれの信号の変化を検知するので、クロック回路として使用できます。これをリピーター(反復装置)で信号を増強すると信号の延長ができます。
コンパレーターは、背面の信号と側面の信号との比較をしてクロックする仕様なので、信号自体を送らなければクロックしませんが、レッドストーントーチを使っているNOT回路や観察者(オブザ-バー)は元々単体で信号を出す構造物なので、そのまま信号が出ます。つまり、コンパレーター(比較器)を用いた場合、レバーなどで信号を与える必要が出てきます。
ドロッパーについては、
■ ホリデーアップデートになって初の回路(マイクラBE体験版90分チャレンジ)
で水流式アイテムエレベーターを作っていますが、その中で、
のクロック回路を作り、
な感じでアイテムを射出するような物を作っています。基本的にこの組み合わせで連続射出が可能な状態になります。また、
のように上にアイテムを上げることも可能ですが、この場合、クロック回路とは別にレッドストーントーチで信号を上にあげる必要が出てきます。
これについては、
で実際に制作していますが、
のようなクロック回路の信号を
のようなトーチタワーで上にあげて、その信号を
のようなドロッパーのタワーで送ることによって上に移送することが可能です。つまり、アイテムを上方に送る場合の選択肢としてインベントリを盛った状態で詰まることが少ない状態で移送する手段としてこうした物が存在しています。アイテムエレベーターについては、
でガラスエレベーターも含めて紹介していますが、UPDATE AQUATIC意向だと水流式アイテムエレベーターが作れるようになったので、上下方向にアイテムの移送を行う場合にはドロッパーなどのほかに
■ ソウルサンド
■ マグマブロック
を配置して水流によってアイテムを回収する選択が存在しています。
現在は、ホッパーとチェストのように
な感じで繋いで、インベントリのあるものにアイテムを送ることでアイテムの移送ができるものもありますが、ホッパーでは上方向にアイテムを移送できないので、その場合には、どろぱーを用いてチェストなどのインベントリを持つブロックにアイテムを移送することになります。
基本はこの三つですが、移動において平面的(下降も可能です)な物だと水流を用いることが可能ですが、現在は、水流は上方向にも遺贈できるので、それを用いて高い場所に水流に対してアイテムを移送する手段が追加されています。下降水流については滞留するのを防いで一気に落とすことができる様になったので、下降水流も含めて上下にアイテムやMOBを移動させる手段が増えています。
このようにストックをする場合ですが、
■ ストッカー
■ 移送
を考える必要がありますが、基本的に、この二つは今回紹介したブロックや水流などを用いることで対応できます。
A ppendix
今回、BEだとシミュレーションチャンクの制約があるけどどうにかなるような事を書きましたが、チートコマンドをオンにすると可能になる機能にそう言った物があります。
BEやコンソール版にはJAVA版のようにスポーンチャンクと言う時間凍結対象外の空間が存在しません。今回の1.14からスポーンチャンクの範囲が拡大されたので、エンティティーの動作が担保され、時間凍結対象外になる範囲がさらに広くなったので様々な回路を作れるので、マシンスペックに物を言わせて、JAVA VMの設定をしっかりと最適化すると結構いろいろなことが可能になりそうですが、こうした時間凍結対象外の場所はBEなどでは存在しません。その為、アイアンゴーレムトラップなどを作る場合、シミュレーション範囲内にいないと動作しませんから、離れてしまうと動かなくなります。
そうなると、JEのようなジ・アイアンタイタンのようなものを用意しても動作しないので、こうした条件で考えると、それを用いて動かす場合にはその状態にする必要があります。
BEだけの仕様ですが、チートコマンドの中に 【 /tickingarea 】 と言う物があり、これを用いるとオーバーワールドだけではなくネザーヤエンドまで時間凍結対象外のエリアを生成できます。
この範囲が1~100チャンクで、個数も最大で10まで生成できますから、かなりすさまじいことが可能になります。とはいっても、チートコマンドを使うことになりますから、実績解除の対象外になりますし、100チャンクのチャンクローダーを動かした状態でオーバーワールドで何かをするというのは相当な負荷がかかるはずですから、スペックの低いマシンでも大丈夫な物ではありません。ただし、仕様としてはそう言った物が実装されています。
ちなみに、
■ /tickingarea add <from: x y z> <to: x y z>
■ /tickingarea add circle <center: x y z> <radius: int>
と言う指定方法が存在し、前者が対角で直方体(立方体も含む)の空間でエリア指定をする物になります。これはコマンドでオブジェクトを複製する時とかの設定方法と全く同じなので、見慣れた座標指定ですが、もう一つのものは、きゅたいの範囲指定をする物になります。
その為、クリエイティブで巨大回路を組みたい場合に、100チャンクx10(300チャンクx300チャンク+100x100チャンクの広さの時間凍結対象外の場所や一直線で100x1000チャンクや200チャンクx500チャンクなどの組み合わせ)の範囲でそれを指定できます。まぁ、一直線にすると、単純に1000チャンクですから、16000x1600と言う異様な広さの空間になりますし、3x3としても、4800ブロック四方が時間凍結対象外ですからすさまじい物があります。
こうした条件を除外すると、別のチャンクローダーを作ると動くのかも気になりますが、BEの場合だとティック領域と言う物が用意されているので、サバイバルだと重くなる要因なのと実績解除ができなくなるので使うべきではなさそうですが、クリエイティブだとマシンスペックが高い場合には色々できそうな要素になっています。
BEでも雪だま式のネザーヤエンドのチャンクローダーが使えるのかも気になるところですが、BEだとこう言ったコマンドがあるので、クリエイティブで余計な演算が入らないワールドを作った状態だとチートコマンドをオンにした状態で回路を組むとシミュレーション範囲を異様なレベルで伸ばすことができます。
■ JE 1.14.1
先日、JEに1.14.1が来ていましたが、
■ 職業ブロックを壊すことで職業のリセットができるようになった
(BEではすでにそうなっています。)
■ 焚火に火の矢を放つことで転嫁できるようになった
■ F3+ESCでそのままの画面でポーズをかけれるようになった
(当然、シングルプレイ対応の話なのでマルチは非対応)
と言う更新がされています。焚火(キャンプファイヤー)についてですが、これはシルクタッチがないと壊れてしまうのですが、
【 焚火(キャンプファイヤー) 】
■ 水で消化できる
■ 打ち金と火打石(ファイヤースターター)で着火できる
と言う仕様になっていますが、弓矢で遠くから着火できるように奈多みたいです。あとは、バグフィックスが行われているようです。