石橋を叩いて壊すページ

ゼロから始めるFactorioの回路構築(基本編)

だいぶ前に「Factorio」というゲームを買った。ロボットアームやベルトコンベアなどを駆使し、工場を作るゲームだ。
採掘機で掘り出した鉄鉱石などの資源を工場で加工してさらにベルトコンベアなどを作り、工場の規模を拡大させていく。
整然と流れる資源や淡々と動き続ける設備などを見ているとさらに改善・拡大欲求が高まり、まさに寝食を忘れるゲームと言える。


最近の我が拠点。多数の列車が目的別に仕分けされたプラットホームに出入りし、9600機の飛行ロボットが全自動で荷物を積み下ろしする。
ほぼ全電力を太陽光パネルと蓄電池で賄い環境にやさしい。
バイターとは無限研究で連射速度3倍・威力10倍化された3600台のレーザータレットと18台の連射速度8倍化長距離砲により話もついて、最近はめっきり顔も見せに来ない。

さて、このゲームには電子回路のような機構がある。
普段は延々と動き続けるだけのロボットアームやその他設備だが、回路につなげることで、条件を指定して動作させることが可能となる。
ただ、いささか取っ掛かりが難しかったため、自分でいろいろ調べたりした。
今回は調べたことをいくらか記事にまとめてみようと思う。

2025/3/11更新:
記事をV2.0.39向けに更新しました。(一部画像が古いままですが時間があるときに更新します。)
V1.1以降の差分はこちらの記事にまとめました
(2016/7/24) 記事を公開。V0.12対応。
(2020/5/24) 記事をV0.17向けに更新しました。
(2020/8/28) 記事をV1.0向けに更新しました。
(2021/2/7) 記事をV1.1向けに更新しました。
(2025/1/19) 記事をV2.0向けに更新しました。

基本編 > 入力・出力編 > テクニック編 > 算術回路編 > 条件回路編 > 実践例編 > 累積回路編

回路を使うと何ができるのか?

上にも書いたが、普段はずっと同じ動きをし続ける設備を、回路を使えば状況に応じて動かせるようになる。
例えば以下のような使い方が考えられる。以下の例で太字になっている部分が「状況に応じた」部分である。

  • 鉄板から鋼材をずっと作り続ける。
    →回路を使えば、鉄板に余裕がある時だけ、鋼材を作ることができる。
  • 軽油を石油ガスにずっと分解し続ける。
    →回路を使えば、石油ガスが足りないときだけ、軽油を石油ガスに分解することができる。
  • ランプは夜に光る。
    →回路を使えば、チェストの中身が多いとき青く光り、減ってくると黄色、無くなると赤く光る残量計として使用できる。
  • 火力発電所は電気を作り続ける。
    →回路を使えば、太陽光発電だけで十分なときは火力発電を停止し、 電気が足りなくなってきたら火力発電することで、燃料を節約し汚染を減らすことができる。

特に自分が困るのが、上記例で書いた「軽油を石油ガスに分解」である。
石油ガスを急に大量に消費したとき、タンクの石油ガスが枯渇して、しかし軽油のタンクは満タンで、 「なぜ軽油を石油ガスに分解するプラントを動かさなかったのだろう」と後悔する。
しかし後日、軽油が急に大量に必要になったときには、今度は軽油を石油ガスに分解しすぎて軽油が枯渇しており、 「なぜ軽油を石油ガスに分解するプラントを止めなかったのだろう」と後悔するのである。
回路を上手に使えば、バランスよく軽油を石油ガスに分解することが可能となる。

ほかにも、アイテムが減ったら自動で作って補充するとか、貯まった原油の量に応じて輸送列車を呼ぶなんてこともできる。
とにかく、「××のときだけ○○する」のように設備を「状況に応じて動作させる」のが回路の役割で、 「ずっと○○し続ける」でよいなら回路は要らないだろう。

ごく簡単な回路を作ってみよう

Factorioをプレイしている人なら、超巨大な回路を構成してみたいと夢を馳せている人も多いだろう。
しかし千里の道も一歩からと言うし、まずは基礎がしっかりできていなければ事は始まらない。
ここでは手始めに、チェストに鉄板が200枚以上入っていたら、ランプが光ってお知らせするという機能を作ってみよう。

準備するものは以下である。
なお、ランプを使うには「ランプ」、レッドケーブルを使うには「回路ネットワーク」が研究されている必要があるが、それらは全て済ませている前提とする。

チェスト(1個)
本記事では鋼鉄製チェストを使っているが、木製チェストでも貯蔵チェストでも、チェストと名の付くものなら何でも構わない。
ランプ(1個)
これは普通にただのランプである。
電柱(数本)
ランプを光らせるには電気が要る。
鉄板(200枚)
お題の実践のためにチェストに入れるもの。

材料を準備したら、まずはチェストとランプを地面に設置しよう。
ランプが光るには電気も必要なので、適宜電柱を置いて電気を供給して欲しい。


地面にチェストとランプを置いたところ。

次に、レッドケーブルでチェストとランプをつなぐ。


回路ネットワークの研究が済むと、画面右下に「レッドケーブルを作成」というボタンが追加される。
これをクリックしてケーブル張りモードに入る。


ケーブル張りモードでチェストとランプを順にクリックすれば、ケーブルが接続される。
ケーブル張りモードを終了するにはキーボードのQを押す。

これで回路がつながった。このとき、回路にはチェストに入っているアイテムの情報が信号として伝わる
例えばチェストに鉄板100枚と銅板50枚が入っていたら、回路には「鉄板が100、銅板が50」という情報が伝わる。

引き続き、ランプをクリックしよう。
回路につながれたランプは、クリックすると設定画面が開く。


回路につながったランプをクリックすると設定画面が開く。

設定画面ではランプが点灯する「有効/無効条件」を設定することができ、条件がYESと判断された場合、ランプが点灯する
今回のお題は先に書いたとおり「チェストに鉄板が200枚以上入っていたらランプが光ってお知らせする」なので、 ランプが光る条件には「鉄板が200以上」を設定したい。

実際にやってみよう。ランプの設定画面の有効/無効条件の下の黒い枠をクリックすると、 アイテムの選択画面が表示されるので、ここで鉄板を選んで欲しい。


有効/無効条件の下の黒い枠をクリックすると、このようなアイテム選択画面が表示されるので「鉄板」をクリック。

次に、有効/無効条件の真ん中の不等号をクリックして欲しい。クリックすると6種類の等号・不等号が表示されるはずだ。
これらの記号の意味するところは既にご存じだろうが、おさらいしておくと
> より多い、
< より少ない、
= 等しい、
≧ 以上、
≦ 以下、
≠ 等しくない
である。
今回は、「以上」である「≧」を設定して欲しい。


有効/無効条件の中央部分をクリックすると、このような等号・不等号の選択肢が表示されるので「≧」をクリック。

最後に、不等号の右の黒い枠をクリックして欲しい。
再度アイテムの選択画面が表示されるが、画面下側に数値の入力欄があるので、ここを「200」に変更して「定数を設定」ボタンを押すと設定が保存される。


不等号の右の黒い枠をクリックし、アイテム設定画面の下に数値入力欄があるのでここを「200」に変更して「定数を設定」を押す。


設定が完了したランプの設定画面。有効/無効条件が「鉄板≧200」になっていることに注目。

これで回路の設定は完了である。実際にチェストに鉄板を入れて、ランプが点灯・消灯することを確認しよう。


鉄板を199枚入れたところ。ランプは光らない。


鉄板を200枚入れたところ。ランプが光った。

最早自明であろうが、解説しておこう。
前述したとおり、回路にはチェストの内容物の情報が伝わる。この場合は「鉄板が200」という情報が伝わる。
ランプには有効/無効条件として「鉄板≧200」が設定されているから、伝えられた情報から「鉄板の数」を取り出して「その値が200以上か」を判断した。
判断がYESであるならランプが点灯し、判断がNOであるならランプは消灯する。

これで、ごく簡単な回路は作れるようになった。
今回は「鉄板の枚数」によって「ランプを光らせる」というお題を実行したが、 Factorioでは鉄板以外にもいろいろな信号を出力できるし、ランプ以外にもインサータなどいろいろなものを操作できる。
次回の記事ではそのあたりを紹介したい。

基本編 > 入力・出力編 > テクニック編 > 算術回路編 > 条件回路編 > 実践例編 > 累積回路編

この記事を評価

この記事にコメント

  1. ...

【この記事にコメント】
お名前:
コメント:

Menu