定数コンビネータの使い方と最適化
定数コンビネータは、回路ネットワークの研究で最初に解禁される、固定の信号を流し続ける基本部品である。100駅を超える列車網を運用していると、補充の起点はほぼこれに集約され、算術・選別・条件とは役割がはっきり分かれる。
定数コンビネータの使い方と最適化
定数コンビネータは、回路ネットワークの研究で最初に解禁される、固定の信号を流し続ける基本部品である。
100駅を超える列車網を運用していると、補充の起点はほぼこれに集約され、算術・選別・条件とは役割がはっきり分かれる。
銅線5個と電子基板2個、製作時間0.5秒という軽さで導入でき、設置してGUIで信号と数値を選ぶだけで動くので、回路の入口として身構えすぎなくていい。
2.0/Space Ageで内部仕様が変わり、旧版の20スロット単一パネルとは違う論理グループ式の管理になったため、昔の解説の感覚はそのまま持ち込まないほうがいいだろう。
定数コンビネータとは何か:常に固定値を出し続ける信号源
定数コンビネータは、入力を受け取らずにGUIで指定した信号を赤線・緑線へ流し続ける、回路の起点になる部品です。
算術・選別・条件の各コンビネータが信号を計算して扱うのに対し、こちらは値をそのまま出すだけなので、「この値を基準にする」という役割がはっきりしています。
しかも4種のコンビネータの中で電力を必要としないため、停電中でも基準信号を保持できるのが強みです。
他の3種のコンビネータとの決定的な違い
自分も最初は「固定値を出して何になるんだ」と放置していましたが、列車網を組み始めた瞬間に一気に主役級の部品になりました。
定数コンビネータは、算術・選別・条件のように入力信号を加工するのではなく、必要な値を最初から置いておくための装置です。
回路の入口に置けば、在庫判定や制御条件の基準値を毎回手入力せずに済み、設計の見通しがぐっとよくなります。
停電テスト中に算術コンビネータが軒並み止まる中で、定数コンビネータだけが信号を出し続けていた場面も印象的でした。
電力を必要としないという性質は、緊急時のスイッチや最低限の制御信号を切らしたくない場面でこそ効いてきます。
見た目は地味でも、回路全体の土台を支える役目はかなりはっきりしています。
解禁条件と作り方
定数コンビネータは、回路ネットワークの研究を終えると、ケーブルやチェストと並んで解禁されます。
4種の中では最も単純で、最初に触る部品として向いています。
クラフトも銅線5個と電子基板2個、製作時間0.5秒と軽く、序盤から気軽に量産しやすいので、回路学習の入口として扱いやすいでしょう。
設置後はGUIを開いて信号を選び、数値を入れるだけで使えます。
値はプラスにもマイナスにも設定できるので、単なる「数の箱」ではなく、減算前提の制御にもそのまま使えます。
まずは1個作って、好きな信号を出してみてください。
動きが見えると、役割が一気につかめます。
赤線・緑線でつないで信号を流す基本イメージ
定数コンビネータは、接続した赤線・緑線のネットワーク全体に対して、設定した信号を常時流し続けます。
つまり、どこかで受けた入力を変換する部品ではなく、回路の先頭に置いて「この値から考える」ための供給源です。
列車駅の在庫制御のように、基準値と現在値を比べたい場面では、この単純さがそのまま扱いやすさにつながります。
GUI内のオン/オフスイッチで出力全体を止められるのも扱いやすい点です。
自動で出力を切り替えたいなら条件コンビネータに任せる流れになりますが、まずは定数を固定して流すだけでも十分に回路の骨格が作れます。
回路ネットワークの世界では、複雑な演算の前に、変わらない基準を置けることが設計の自由度を押し上げます。
基本操作:信号の設定とオン・オフの切り替え
定数コンビネータは、まず置いて、開いて、信号を入れるだけで動きます。
アイテム信号でも仮想信号でも選べるので、回路の基準値を作る入口として扱いやすい部品です。
値はGUI上で1つずつ手入力し、必要なら負の数も入れられます。
最初は難しく考えず、出力を出したい信号を並べるところから始めると迷いません。
設置してGUIを開く・信号と数値を選ぶ
設置した定数コンビネータは、クリックしてGUIを開き、出力したいアイテム信号や仮想信号を選んで数値を入れるだけで使えます。
入力を待たずに固定値を流し続けるので、ネットワーク側へ「この値を常に渡す」という基準点を作りたい場面に向いています。
算術や条件のように式を組む前段として置いておくと、回路全体の見通しがかなりよくなります。
値の設定はGUI上で1つずつ手入力する形です。
ここでつまずきやすいのが、プラスだけでなくマイナスもそのまま入れられる点でしょう。
後述の列車制御では負の数が補充量の表現に使われるので、序盤のうちに「数値を正負で持てる」感覚を押さえておくと、あとで応用が利きます。
GUIのスイッチで出力をまるごとオン/オフする
GUI内にはオン/オフのスイッチがあり、これを切るとコンビネータ全体の出力が止まります。
初めて触ったときは、このスイッチに気づかず「なぜ信号が消えない」と数分悩みました。
試作中はこの切り替えをパチパチ触って挙動を確認すると、配線が正しいかどうかをすぐ見分けられます。
この挙動は、定数コンビネータを手動スイッチとして使えることを意味します。
条件回路を組む前の動作確認や、いったん信号を止めて結果だけ見たいときに扱いやすいのです。
ただし、自動や遠隔で出力を切り替えたいなら、定数コンビネータ単体で済ませるより、出力を条件コンビネータに通す設計のほうが向いています。
手動で止める道具と、条件で止める道具は分けて考えると整理しやすいです。
値のコピー&ペーストで設定を使い回す
設定済みのコンビネータは、コピー&ペーストで信号構成ごと複製できます。
同じ補充設定を複数箇所で使うときに、毎回手で信号を入れ直さなくて済むのが利点です。
特に定数コンビネータは「この信号をこの値で流す」という役割がはっきりしているので、複製運用との相性がよい部品だと言えます。
複数の駅や設備で同じ値を配るなら、ひとつ作ってから増やす流れにすると作業が速くなります。
最初に正しい形を作っておけば、あとは信号構成ごと複製して揃えられるからです。
おすすめです。
回路をひとつずつ作り込むより、まず1個を動かしてから増やすほうが、試作段階では失敗を減らせます。
2.0の大変更:論理グループと複数セクション管理
2.0.7で定数コンビネータの設定と出力は論理グループ式に変わり、旧版の20スロット単一パネルを前提にした説明はそのままでは通りません。
画面の見た目が変わっただけではなく、複数のセクションに分けて役割を持たせる設計へ移ったことで、補充や制御の考え方自体が整理しやすくなりました。
2.0アップデート直後に古い解説の「20スロット」という記述と実際のUIが違って戸惑ったものの、論理グループだと分かると、むしろ旧構成より管理が楽だと感じました。
旧20スロット式から論理グループ式への移行
2.0.7の変更点でまず押さえたいのは、定数コンビネータが単にスロットを埋める装置ではなく、論理グループを束ねて扱う装置になったことです。
旧版のように1枚のパネルを眺める感覚ではなく、意味の近い信号をまとめて設計する発想に寄るため、規模が大きくなるほど見通しがよくなります。
古い資料を見て「画面が違う」と感じても、仕様の中心は20枠の記憶ではなく、グループ単位で整理するところに移ったと考えると腑に落ちます。
セクションを分けて有効/無効・乗数で切り替える
複数セクションに分けて管理できるようになったことで、必要なときだけ有効化したり、乗数を掛けたりする運用がしやすくなりました。
たとえば基本補充のセクションと緊急増産のセクションを分けておけば、普段は前者だけを動かし、在庫が崩れた場面で後者を足すといった切り替えができます。
さらに2.0.18からは乗数に負の倍率も指定できるので、増やすだけでなく差し引きやしきい値寄りの表現もしやすくなり、単純な定数出力より制御の幅が広がりました。
名前付きグループでチェストやスパイダトロンと設定を共有する
名前付きの論理グループを使う利点は、定数コンビネータだけに閉じないことです。
他の定数コンビネータやリクエスタチェスト、スパイダトロンと設定を同期できるため、1か所を直した内容がそのまま全体へ波及します。
列車駅の補充量を全駅まとめて1か所で調整できるようになってからは、手直しの回数が目に見えて減り、メンテの手間は体感で半分以下になりました。
リクエスト系の部品は信号ごとに最小値と最大値の2値を持ちますが、定数コンビネータが出力するのは最小値(min)のみで、UIでも最大値は変更できません。
ここを取り違えると設定が合わないので、出力の前提は最小値側だと覚えておくと混乱しにくいです。
旧バージョンのセーブは自動マイグレーションで新方式へ変換されるため、過去の構成が壊れる心配は基本的にありません。
実用例1:列車駅の制御を負の数で組む
列車駅の制御は、在庫の増減をそのまま信号にするより、負の数を「あとどれだけ補充したいか」と読んだほうがずっと組みやすいです。
たとえば定数コンビネータで太陽光パネルを-50にしておけば、在庫がその目標を下回っている間だけ駅を動かせます。
これが最頻出のオン・オフ制御で、駅を止めすぎず、呼びすぎもしない基準になります。
「負の数=補充したい量」という発想の転換
負の数は不足分のメモとして使うと理解しやすいです。
チェストに50個ほしいなら、定数コンビネータ側を-50にして同じネットワークへ流し込み、合算値が0未満のあいだだけ駅を有効化します。
そうしておくと、在庫が目標に届いた瞬間に駅が自動で止まり、余計な列車を呼ばなくなるのです。
100駅以上の列車網を組んだときも、補充ロジックの心臓部は毎回この考え方でした。
自分は値を1つだけ間違えて、駅が一生有効化されない状態を作ったことがあります。
原因究明に3時間溶かしましたが、逆にここで「負の数は飾りではなく制御値そのものだ」と体に入った感じでした。
数式が簡単だからこそ、設定値の意味を取り違えると症状が地味で、しかも追いにくいのがこの方式です。
在庫しきい値を下回ったら駅をオンにする回路の組み方
回路の組み方は素直で、駅のチェスト在庫と定数コンビネータの負の値を同じネットワークに載せ、合計が0未満のときだけ駅を有効化します。
これで在庫が補充目標を下回った瞬間にだけ列車を呼べるため、倉庫が満杯なのに回り続ける無駄を避けられます。
太陽光パネルを-50に設定すると在庫が50を下回ったときに呼ぶ形になり、しきい値の感覚もつかみやすいでしょう。
この方式の良さは、駅側の条件が「足りないかどうか」だけになる点です。
複雑な分岐を増やさなくても、必要量を負で置いて合算するだけで同じ結果を出せます。
共通素材用、採掘用、防衛用、原子力用のような専用駅でも、実際に差が出るのは定数コンビネータが指すリクエスト内容くらいで、レイアウトを共通化しやすいのも魅力です。
列車本数制限と組み合わせて渋滞を防ぐ
この制御は列車本数制限(train limit)を1にして使うのが基本形です。
駅が不足を検知しても、来る列車は1本だけに絞られるので、1駅に列車が殺到しません。
自分も本数制限を入れ忘れて、1駅に列車が10本詰まってネットワーク全体がデッドロックしたことがあり、それ以来この2つはセットで運用しています。
駅をオンにする条件だけ整っていても、入線数を絞らないと現場は一気に苦しくなるのです。
満載で運びたいなら、貨物車1両あたり40スタック相当を基準にリクエスト量を設計するのが定番です。
リクエストしきい値を1列車分にしておくと、在庫がその分を切ったときだけ次の配送を呼べます。
必要になった瞬間だけ1本動かす、という流れがきれいに揃うので、列車網が増えても運用が読みやすいです。
実用例2:ロジスティクスチェストとランプの制御
定数コンビネータは、物流を「作る側」だけでなく「受け取る側」まで含めて設計すると使い道がぐっと広がります。
リクエスタチェストに必要数を流し込んで補充を自動化し、複数チェストを論理グループで束ね、さらにランプで在庫状況を見える化すると、拠点全体の流れがひと続きで扱えるようになるでしょう。
自分の環境でも、この3つをつなげた瞬間に、単なる定数入力の装置ではなく、物流を動かす中枢だと実感しました。
リクエスタチェストへ設定をコピペして補充量を決める
定数コンビネータの設定はリクエスタチェストへそのままコピペできるので、欲しいアイテム名と数をまとめて指定できます。
ここが便利なのは、手で一項目ずつ入力する作業を減らせるだけでなく、設計の意図をそのまま複製できる点です。
アセンブラからコピペした場合は、そのレシピの材料が必要数の信号として自動で入るため、製造ラインの更新に合わせて補充条件もそろえやすいです。
この仕組みを使うと、補充量の基準を「感覚」ではなく「レシピ単位」で置けます。
たとえば必要資材が増えたときでも、元の設定を見ながら少し調整するだけで済むので、チェストごとに数字を打ち直す手間が消えます。
作業の速さよりも、入力ミスを減らせることのほうが効いてきます。
論理グループで複数チェストのリクエストを一元管理する
2.0の論理グループを使うと、複数のリクエスタチェストを1つの名前付きグループとしてまとめて扱えます。
これがあると、装備のアップグレードのたびに各チェストを回って手直しする必要がなくなります。
自分の拠点でも、リクエスタチェスト群を束ねてからは、補充量を変えたいときに1か所だけ直せば全チェストへ反映されるので、運用がかなり軽くなりました。
特にマルチプレイでは、この一元管理が地味に効きます。
誰が見ても同じ基準で補充されるため、担当者ごとの設定差が出にくく、拠点の状態を揃えやすいです。
物流の設定は散らばるほど崩れやすいので、グループ化で入口を1つにする発想が扱いやすいでしょう。
ランプを点けて在庫アラートや色付き表示を作る
ランプ制御も定番の用途です。
定数コンビネータから信号を出してランプを点灯させれば、在庫が一定を下回ったときだけ赤く光らせる『在庫アラート』が作れます。
自分はマルチプレイ拠点で「誰が見ても在庫切れが分かる」表示を仕込んだことがあるのですが、これだけで他のメンバーが補充を手伝ってくれるようになり、見える化の効果をはっきり感じました。
さらに、ランプの色は16進カラーコードで指定できます。
数字の前に0xを付けると16進数として扱われ、たとえば0xf08300で橙色(#F08300)を表示できます。
色で状態を分けておくと、警告と通常表示を直感的に切り替えられるので、通路の端に置いた表示盤でも意味が伝わりやすいです。
信号の出力先をランプに変えるだけで、定数コンビネータは補充装置から可視化装置へ役割を広げます。
最適化:コンビネータを増やしすぎないUPSの考え方
コンビネータを増やしすぎない工夫は、見た目の整理だけでなくUPSの底上げにもつながります。
回路は毎ティック評価されるので、同じ役割のコンビネータを各所に散らすほど処理負荷が積み上がり、メガベースほど差が出やすくなるからです。
まずは必要な信号を1か所に寄せ、同じ設定の重複を減らす発想から組むのがおすすめです。
なぜコンビネータの数がUPSに効くのか
信号処理は制御線上の信号数nに対してO(n)で毎ティック動きます。
つまり、回路の中身が増えるほど、単純に「少しずつ」ではなく「毎回」評価の手間が増えていくわけです。
1つの巨大なコンビネータを置くより、必要な信号だけを束ねて流す方が無駄が少ない場面が多く、拠点数が増える設計ではこの差がじわじわ効いてきます。
自分も1k SPM級まで拡張した段階で、駅ごとにばらばらに置いた定数コンビネータや算術コンビネータの群れが地味にUPSを削っているのを確認しました。
信号を1セクションに集約し論理グループで共有する
定数コンビネータは1つのセクションに複数の信号をまとめて出せるので、設定が同じなら個別に何個も置かず1個に集約するのが基本です。
さらに、論理グループ共有を使えば、同じ定義を各所へ複製せずに済むため、設定の重複そのものを減らせます。
ここで効いてくるのは、単に見た目がすっきりするだけではない点でしょう。
信号が散っていない回路は追跡もしやすく、あとから拡張するときの差し替えも速くなります。
自分は最初、最適化を意識しすぎて回路が複雑になり挫折したことがあるので、初心者には「まず動かす→拡張時にまとめる」の順をおすすめしています。
「1か所で計算して束ねて配る」設計パターン
計算結果を1か所で出し、束ねた配線で複数の消費側へ配る「1か所で計算して束ねて配る」設計は、ほぼ最適なUPS効率につながります。
各拠点で同じ計算を繰り返す構成は、それだけで評価回数を増やしてしまうので、増設のたびに負担が雪だるま式に膨らみがちです。
まず中心で条件判定や数値計算を済ませ、各駅や各ラインには結果だけを流す形にすると、回路の役割がはっきりします。
拡張のたびに同じロジックを複製しない。
これだけで、後半のメガベース運用が楽になります。
序盤から中盤の規模ではUPSはまだ問題になりにくいので、動く回路を先に組み、拡張の段階で集約と共有を意識していきましょう。
RinSeo
Factorio 2,000時間超。100駅以上の列車ネットワーク運用実績と Death World マラソンクリアの経験から、物流・防衛の実践ノウハウをお届けします。