14時00分]ゼロから始めるFactorioの回路構築(基本編)6月末に「Factorio」というゲームを買ってみた。ロボットアームやベルトコンベアなどを駆使し、工場を作るゲームだ。採掘機で掘り出した鉄鉱石などの資源を工場で加工してさらにベルトコンベアなどを作り、工場の規模を拡大させていく。整然と流れる資源や淡々と動き続ける設備などを見ているとさらに改善・拡大欲求が高まり、まさに寝食を忘れるゲームと言える。2400枚の太陽光パネルと2100個の蓄電池で全電力を賄い環境にやさしい。バイターとは544台のレーザータレットで平和に話し合っている。このゲームには電子回路のような機構がある。普段は延々と動き続けるだけのロボットアームやその他設備だが、回路につなげることで、条件を指定して動作させることが可能となる。取っ掛かりが難しかったため、自分でいろいろ調べたりした。今回は調べたことをいくらか記事にまとめてみようと思う。自分はまだプレイ歴1ヶ月なので、間違っていることやもっと効率のよい方法があるかもしれない。その際はコメント欄に突っ込みを入れていただけると助かる。バージョンは0.12.35(Steam版)である。バージョンは、Factorioのウィンドウタイトルで確認できる。回路を使うと何ができるのか?上にも書いたが、普段は無条件に動き続ける設備を、条件をつけて動作させることができる。以下のような使い方が考えられる。以下の例で太字になっている部分が、「条件をつけた」部分である。鉄板から鋼材を作り続ける。→回路を使えば、鉄板が充分にあるときだけ、鋼材を作ることができる。軽油をプロパンガスに分解し続ける。→回路を使えば、プロパンが足りないときだけ、軽油をプロパンに分解することができる。ランプは夜間に点灯する照明である。→回路を使えば、チェストの中に石炭/材料が充分あれば消灯し、それらが減ってきたら点灯して補充を促す、燃料/材料切れ警告灯として使用できる。自分が困るのが、上記例で書いた「軽油をプロパンガスに分解」である。プロパンガスを急に大量に消費したとき、タンクのプロパンガスが枯渇して、しかし軽油のタンクは満タンで、「なぜ軽油からプロパンガスを分解するプラントを動かさなかったのだろう」と後悔する。後日、軽油が急に大量に必要になったときには、今度は軽油をプロパンガスに分解しすぎて軽油が枯渇しており、「なぜ軽油からプロパンガスを分解するプラントを止めなかったのだろう」と後悔するのである。回路を上手に使えば、バランスよく軽油をプロパンガスに分解することが可能となる。電源のON/OFFを切り替えたり、ランプの色を変えたり、鉄道信号の制御もできるようになるらしい。「条件をつける」のが回路の役割で、無条件に動作させてよいなら回路は要らないだろう。簡単な回路を作ってみようFactorioをプレイしている人なら、超巨大な回路を構成してみたいと夢を馳せている人も多いだろう。千里の道も一歩からと言うし、まずは基礎がしっかりできていなければ事は始まらない。ここでは手始めに、チェストに鉄板が200枚より多く入っていたら、ランプが光ってお知らせするという機能を作ってみよう。準備するものは以下である。使うには「回路網」、保管チェストを使うには「建設ロボット工学」が研究されている必要があるが、それらは全て済ませている前提とする。保管チェスト(1個)木製チェストや鋼鉄のチェストは回路を構成することができない。回路を構成するチェストは、スマートチェスト・保管チェスト・パッシブ供給チェスト・アクティブ供給チェスト・要求チェストのいずれかでなければならない。「材料に基盤が使われているチェストは回路を構成できる」と覚えておけばいいだろう。ここでは保管チェストで説明を統一する。レッドケーブル(1本)回路を作る肝心要となるケーブル。通常の銅線では信号を伝えることはできない。グリーンケーブルを使ってもよいが、ここでは説明のためレッドケーブルに統一する。チェストや各種設備と異なり、レッドケーブルやグリーンケーブルは撤去すると消滅する「使い捨て」である。レッドケーブルの材料は電子基盤1枚と銅線1本だから泣くほど高価なわけではないが、使うときは慎重に。ランプ(1個)これは普通にただのランプである。電柱、鉄板、その他の雑物資そんなに高価なものは必要ないが、回路には電源が必要だし、その他も適宜用意されたい。材料を準備したら、まずは保管チェストとランプを地面に設置しよう。ランプが光るには電気も必要なので、適宜電柱を置いて電気を供給して欲しい。地面に保管チェストとランプを置いたところ。次に、レッドケーブルで保管チェストとランプをつなぐ。ホットバーやインベントリからレッドケーブルを取り出し、保管チェストとランプを順にクリックすれば、ケーブルが接続される。これで回路がつながった。このとき、回路には保管チェストに入っているアイテムの情報が信号として伝わる。保管チェストに鉄板100枚と銅板50枚が入っていたら、回路には「鉄板が100、銅板が50」という情報が伝わる。引き続き、ランプをクリックしよう。通常、ランプはクリックしても何も起こらないが、回路につながれたランプは、クリックすると設定画面が開く。回路につながったランプをクリックすると設定画面が開く。設定画面の下のほうに、ランプが点灯する「ワイヤー条件」を設定することができる。回路に夢中で忘れているかも知れないが、今回の説明のお題は先に書いたとおりチェストに鉄板が200枚より多く入っていたら、ランプが光ってお知らせすることである。よって、ランプには点灯条件として「鉄板>200」を設定すればいいとわかる。ランプの設定画面のワイヤー条件の左の灰色の枠をクリックすると、アイテムの選択画面が表示されるので、ここで鉄板を選んで欲しい。設定画面の左の灰色の枠をクリックすると、このようなアイテム選択画面が表示されるので鉄板をクリック。次に、ランプの設定画面のワイヤー条件の真ん中の不等号を何度かクリックして欲しい。この部分は、クリックすると「<」「=」「>」という3つの等号・不等号が順に切り替わっていく。これらの記号の意味するところは小学校の算数で学んだであろうが、「より少ない」「等しい」「より多い」である。今回は、「より多い」である「>」を設定して欲しい。最後に、ランプの設定画面のワイヤー条件の右の枠をクリックして欲しい。再度アイテムの選択画面が表示されるが、画面下側に数値の入力欄があるので、ここで「200」を入力して「セット」ボタンを押すと設定が保存される。設定画面の右の灰色の枠をクリックすると、アイテム設定画面の下に数値入力欄があるのでここを入力してセット。設定が完了したランプの設定画面。これで回路の設定は完了である。実際に保管チェストに鉄板を入れて、ランプが点灯・消灯することを確認しよう。鉄板を200枚入れたところ。鉄板を201枚入れたところ。自明であろうが、解説しておこう。前述したとおり、回路には保管チェストの内容物の情報が伝わる。この場合は「鉄板が201」という情報が伝わる。保管チェストから送信された信号をランプが受け取り、そこから「鉄板の数」を取り出して、「その値が200より多いか」を判断した。判断がYESであるならランプが点灯し、判断がNOであるならランプは消灯する。ちなみに、「より多い」と「より少ない」は、それ自体の値は含まないので注意して欲しい。「200より多い」は201以上、「200より少ない」は199以下のことである。どちらも200は含まない。その他の雑記ざっと、覚えておくといいかもしれないもの。保管チェストの中に入っていないものの数量は「0」で調べられる。保管チェストに鉄板が100枚入っているとき、ランプで石炭の量を調べると「石炭=0」のときランプが光る。複数のアイテムに同じ設定をするときは設定のコピーが有効だ。Shiftを押しながら右クリックするとそのアイテムの設定がコピーされる。他のアイテムをShiftを押しながら左クリックすると、設定が「貼り付け」られる。注意したいのは、自分から遠く離れた場所のアイテムには「貼り付け」られないこと。貼り付けても見た目に変化がないため、貼り付けられたのかどうかはクリックして設定を見ないとわからない。レッドケーブルの長さには限界がある。限界を超えて遠くの場所にレッドケーブルをつなぐには、各種電柱を使うとよい。電柱から電柱へ、電柱から各設備へケーブルを渡すことで、遠く離れた場所に信号を送信できる。電柱にケーブルをつなげるときは、電柱の根元(電柱を撤去するときに右クリックする場所)をクリックすること。電柱の先端部にケーブルを取り付けたい気持ちはわかるが、それをやると電柱の後ろにある設備にケーブルがつながってしまう。手に持っているアイテムを手放す(ホットバー/インベントリに戻す)にはQキーを押す。チェストの中でアイテムが複数のスタックに分割されている場合、それらは合計された値が信号として出力される。電柱に繋がっているケーブルを全て消去するには、その電柱をShift+クリックする。最初のクリックで銅線が消去され、2度目のクリックでレッドケーブル・グリーンケーブルが消去される。使い捨てのケーブルは戻ってこないので注意。アイテムの数が1000個以上の場合は、アイテムの個数は「1.0K」のように表示されるが、この値はどうも四捨五入のようである。このためアイテム数が「2.5K」と表示されていると、2500個と想像しがちだが、実際には2450など2500を下回っている可能性がある。記事が長くなったのでとりあえずこの辺で、次回も引き続き回路について書く。RSS2.0最近のコメントおー、お役に立てたようでなによりです。再起...[9/11]この記事が非常の役立ちました。おかげさまで...[9/9]1.14.2のAPIで試しましたが、MapInitializeEv...[9/9]天晴れ!押したらポーションのモヤモヤでまし...[5/26]習うより慣れろって感じで。記事へのリンクは大歓迎です。連絡不要でご自由に貼ってください。画像や添付ファイルへの直リンクはご遠慮願います。