物流・輸送

Factorio 駅の使い方と最適化のコツ

Factorio の列車ネットワークは、駅本体・停止位置・積み降ろしインサータ・バッファチェスト・駅前の信号で成り立つ物流システムである。RinSeoは100駅を超える列車網を運用する中で、信号もトレイン上限も知らないまま本線を詰まらせ、3時間を溶かした失敗から、安定運用の勘所を身につけた。

物流・輸送

Factorio 駅の使い方と最適化のコツ

Factorio の列車ネットワークは、駅本体・停止位置・積み降ろしインサータ・バッファチェスト・駅前の信号で成り立つ物流システムである。
RinSeoは100駅を超える列車網を運用する中で、信号もトレイン上限も知らないまま本線を詰まらせ、3時間を溶かした失敗から、安定運用の勘所を身につけた。
駅が作れても列車網が安定しない原因は、同名駅への偏り、スタッカー不在で本線をふさぐ渋滞、供給の偏りの3つに集約できるため、本記事では信号配置からトレイン上限、スタッカー、回路制御までを順にほどいていく。
1.1で追加されたトレイン上限を全駅に入れるだけでも体感は変わり、そこから先は『トレイン上限はスタッカー容量以下』『列車総数は総駐車枠−1以下』『同名駅は上限1+駅数−1』という定量ルールで、詰まりにくい網へ整えていきましょう。

駅の基本構造と最低限そろえる要素

駅を作るときは、まず駅本体、停止位置、積み降ろしインサータ、バッファチェスト、駅前の信号を分けて考えると整理しやすいです。
どれか一つを雑に置くより、役割ごとに切り分けたほうが後から直しやすく、列車が止まってから発車するまでの流れも安定します。
自分も最初は見た目だけで組んでしまい、あとで全体を作り直す羽目になりました。

駅・停止位置・インサータ・チェストの役割分担

駅本体は列車が停まる場所そのもの、停止位置はどこまで車両を寄せるかの基準、インサータは積み降ろしの実働、バッファチェストは一時保管、駅前の信号は進入可否の番人です。
この5つを一体で見てしまうと改善点がぼやけますが、役割を分けて見ると「遅いのは輸送量なのか、積み下ろしなのか、進入詰まりなのか」が切り分けられます。
Factorio の貨物車両は40スロット積めますが、1両に並べられるインサータは両側合計で最大12台、片側6台までなので、停止位置はこの上限を見て決めるのが出発点でしょう。
自分も初期に停止位置を適当に決めて、インサータが4台しか乗らず、後から全駅を作り直しました。
あの手戻りは本当に重かったです。

停車条件(待機条件)の決め方と組み合わせ

停車条件(待機条件)は『満杯になったら出発』『空になったら出発』『◯秒経過』『回路条件』を組み合わせて設定します。
供給駅は満載、要求駅は空、を基本にすると無駄な往復が減り、列車が中途半端な量を積んだまま発車する事故も抑えやすいです。
さらに時間条件を足すと、積み降ろしが完了する前に急いで出てしまうケースを防げますし、回路条件を使えば在庫や予約数に応じて柔軟に止められます。
駅を単独で見るのではなく、待機条件まで含めて「この駅に今列車を置く理由」が成立しているかを確認すると、運用がかなり楽になります。

駅名の付け方と路線図での見やすさ

駅名は品目+役割で統一すると、路線図を見た瞬間にどこが供給でどこが要求か分かります。
『鉄鉱石 積込』『鉄鉱石 荷降』のように揃えておくと、同名駅運用へ移行する前段階でも迷いにくく、列車の配車先を後から増やすときもです。
自分は昔『駅1』『駅2』のように番号だけで付けてしまい、路線図が地獄になりました。
結局、品目+役割に切り替えたら、どの列車がどこへ向かうのか一目で追えるようになり、複数の駅を並行運用しても混乱しなくなったのです。

駅前の信号配置:入口は連動式・出口は通常

駅前の信号配置は、入口を連動式信号機、出口を通常信号機にするだけで運用の安定度が大きく変わります。
入口側で列車をきちんと待たせ、出口側では1ブロック単位で流れを切り分けることで、本線をふさいだまま列車が止まる事故を避けやすくなるからです。
複数列車が出入りする支線では、この役割分担を崩さないことが渋滞対策の出発点になります。

連動式信号機と通常信号機の挙動の違い

連動式信号機は、その先のブロックまで空いていなければ進入を許可しません。
列車を「ここから先は詰まっている」と判断した地点で止められるので、駅やスタッカーが満杯のときでも本線上で突っ立ったままになる前に止められます。
これが入口側に向いている理由で、待機場所の外に列車を逃がし、本線の流れを守れるわけです。

通常信号機は、1ブロックを1列車が占有できる区切りです。
列車を長時間待たせてよい場所、たとえばスタッカーの待機枠の入口に置くと、各列車が独立した箱に収まり、詰まりの連鎖が起きにくくなります。
逆にここを連動式にしてしまうと、待機列の先頭が空くまで後続が動けず、必要以上に流れが硬直します。

ℹ️ Note

自分も最初の頃、連動式と通常を逆に置いてしまい、満杯の駅前で列車が本線をまたいで止まる形になりました。後続が全部詰まり、見た目はただの停車でも、実態は線路全体の停止でした。

『入口=連動式・出口=通常』が渋滞を防ぐ仕組み

入口に連動式信号機、出口に通常信号機を置くと、列車は「入れる場所があるときだけ駅に入る」動きになります。
駅本体、停止位置、積み降ろしインサータ、バッファチェストまで含めて満杯になった場面でも、入口で止まるので本線をまたいで塞ぎません。
駅前に余白があるうちに待機へ回す構造が、後続の通行権を守る鍵です。

この配置は、駅を単なる通過点ではなく、制御された待機装置として扱う考え方でもあります。
出口を通常信号機にしておくと、列車が1ブロックごとに前進でき、出庫した列車がそのまま次のブロックへ抜けやすくなります。
駅前の詰まりを「駅の中」へ閉じ込めるのであって、本線の上へ押し戻さない設計だと考えるとわかりやすいでしょう。

RinSeoの運用でも、出口を通常信号機のまま2列車運用にしたところ、出庫中の列車と入庫待ちの列車が正面でロックしました。
片方が少しも引けず、手動で1本どかすまで全線停止です。
こうした失敗は、信号の種類そのものより「どこで止めるか」を誤った結果として起きます。

双方向支線で起きる正面デッドロックの回避

2列車以上が出入りする支線では、出口側を連動式にしないと『2-way正面デッドロック』が起きうる。
出ていく列車と入ってくる列車が向かい合ったまま動けなくなり、どちらも相手の進路をふさいでしまうからです。
複数列車が使う駅ほど、出口の信号種別には敏感であるべきです。

このとき連動式は、出口での衝突を未然に防ぐ関門として働きます。
先のブロックが空いていなければ進入させないため、出庫側が進む余地と入庫側が待つ余地を同時に確保できます。
逆に通常信号機だけで押し切ると、互いに少しずつ前へ出てしまい、最終的に身動きが取れなくなるのです。

実際、連動式と通常を逆に置いて満杯の駅前を回したときは、後続列車まで含めて全体が雪崩のように止まりました。
支線が双方向で使われるなら、出口を連動式にして「出る列車が先、入る列車は待つ」を徹底しましょう。
これだけで、正面デッドロックの多くは避けられます。

トレイン上限で渋滞を防ぐ

トレイン上限を入れると、駅は「これ以上は受け付けない」という待ち行列の線引きができるようになります。
GUIで数値を入れるだけなので、回路を組まずに渋滞を抑えられるのが利点です。
駅の前で列車がだぶつく原因を先に止める発想で、特に同名駅が多いネットワークほど効きます。

トレイン上限と予約(リザベーション)の仕組み

トレイン上限は、その駅を目的地として同時に予約できる列車数の上限です。
ここでいう予約は、停車中の列車と、その駅へ向かっている列車を合わせた数で数えられます。
つまり、すでに駅の枠が埋まっていれば、後から来た列車はそこを選ばず、別の同名駅を探す動きになります。

この仕組みが便利なのは、駅のGUIで数値を入れるだけで運用できる点です。
従来のように駅の有効・無効を信号回路で切り替えなくても、駅側が受け入れ数を自動で制御してくれるので、本線の流れを止めにくいのです。
RinSeoが上限機能を知る前は巨大スタッカーを作っても列車が偏り、一部の駅だけが詰まりましたが、全駅に上限を設定した瞬間に偏りが解消しました。
設計の手間を増やさず、渋滞の発生地点そのものを絞れるのが強みでしょう。

上限到達時に列車が取る行動

上限に達した駅が並んでいるとき、列車は「待つ」だけではありません。
別の同名駅を順に探し、空きのある目的地を選び直します。
だからこそ、同じ名前の駅を複数置く運用では、各駅に上限を付けておくと列車が自然に分散しやすくなります。

上限を後から下げても、すでに予約済みの列車はそのまま到着します。
ここが回路制御と違うところで、運用中に閾値をいじっても、途中の列車が行き場を失って立ち往生しません。
現場で混雑を見ながら少しずつ絞れるので、最初から完璧な数を決めなくても扱いやすい設計です。
自分は『Destination full』をバグだと思って放置し、実は要求駅の上限を0のまま閉じていただけだったことがあります。
表示の意味が分かると、駅不足なのか、上限を締めすぎたのかを切り分けやすくなります。

回路なしでも安定する最小構成の例

1.1以前は、駅の有効・無効を切り替えながら巨大スタッカーで渋滞をしのぐやり方が主流でした。
ですが、トレイン上限が入ると駅があふれにくくなるので、スタッカーをそこまで大きく取る必要が薄れます。
まず全駅に上限を付けるだけでも、列車の偏りはかなり抑えられるはずです。

最小構成としては、各駅のGUIで適当な上限を入れ、同名駅どうしに仕事を分けさせる形が扱いやすいです。
これだけで、待機列は駅前ではなくネットワーク側に吸収され、詰まりが本線へ波及しにくくなります。
回路で細かく制御する前に、駅そのものを満員にしない設計へ寄せる。
おすすめです。
まずは上限を付けてみてください。

スタッカー(待機所)の設計とデッドロック回避ルール

スタッカーは、目的駅が空くまで列車を本線の外で待たせるための駐車列です。
これを置かないと、待機中の列車が本線をふさいで別品目まで巻き込み、流れ全体が止まりやすくなります。
荷降駅が詰まるたびに本線へ列車がはみ出す構造は、見た目以上に連鎖しやすいのです。

スタッカーが本線詰まりを防ぐ理由

RinSeoがスタッカーなしで運用していたときは、満杯の荷降駅の手前で待つ列車が本線をふさぎ、別品目の列車まで止まって連鎖デッドロックになりました。
入口で待たせる場所がないと、空き待ちの列車は交差点や分岐の手前に滞留し、次に来る列車の進路まで奪ってしまいます。
だからこそスタッカーは、単なる待機所ではなく、本線の流量を守るための逃がし先として機能します。

待機枠ごとの信号配置

各待機枠は入口に通常信号機、出口に連動式信号機を置く構成が基本です。
入口を通常信号機にすると列車を枠内へ順次送り込みやすく、長く待たせる運用に向きます。
出口を連動式信号機にするのは、前の枠や接続先が詰まっているのに列車が飛び出す事故を防ぐためで、ここを通常信号機にすると待機列がほどけてしまいます。
信号の役割を分けることで、待つ列車と動ける列車の境界が明確になります。

ℹ️ Note

入口は「入れるかどうか」、出口は「出てよいかどうか」を見ています。ここを混ぜない設計にすると、詰まりの原因をかなり減らせます。

容量・上限・列車数の安全な関係式

トレイン上限は、スタッカーに収まる数以下に設定します。
上限が容量を超えると、呼ばれても入れない列車が本線上で待つことになり、待機場所の不足がそのまま本線滞留につながります。
さらに、ある品目の列車総数はその品目の総駐車枠−1以下にしておくと、全枠が同時に埋まって身動きが取れない状態を避けやすいです。
1枠ぶんの余裕が循環を生み、出発と入線がかみ合いやすくなります。

列車数を駐車枠と同数にして検証したときは、全枠が埋まってどの列車も動けなくなりました。
そこから1枠減らすと、待機と出発が回り始め、停滞が解けて循環が戻ったのです。
上限機能があるおかげで、昔のように10両ぶんの巨大待機所を作る必要はなく、上限と整合する最小限の枠数で済みます。
おすすめの考え方は、容量を先に決めてから列車数を合わせる順番です。
こうすると設計がぶれません。

回路ネットワークで在庫に応じて発着を制御する

駅は回路ネットワークと相性がよく、有効/無効、トレイン上限、優先度を使って発着のタイミングを細かく制御できます。
停車中の列車の中身や予約数まで読めるので、在庫の増減に合わせて「必要なときだけ呼ぶ」運用へ落とし込みやすいのです。
列車を常時走らせるのではなく、倉庫やバッファチェストの状態を見て駅側が開閉する形にすると、物流が一気に整理されます。

供給駅:満載時だけ上限を開ける

供給駅は、バッファチェストが満載のときだけトレイン上限を1にする設計が扱いやすいです。
決定機1個で「鉄板≧しきい値ならT=1を出力→上限に接続」とつなぐだけで、満タンの駅から先に列車を呼べるため、倉庫があふれる前に集荷へ回せます。
駅を常時開けっぱなしにしない分、列車が空回りしにくく、複数の供給地点があるネットワークでも流れが見えやすくなります。

要求駅:在庫不足時だけ上限を開ける

要求駅は、在庫がしきい値を下回ったときだけ上限を1にすると、足りない場所へだけ列車が向かいます。
以前のRinSeoは要求駅を全部開きっぱなしにしてしまい、在庫が十分な駅にまで列車が押し寄せていましたが、不足時だけ開く回路に変えた途端、待機列が減って配車順が整理されました。
列車の往復が減るだけでなく、補給が必要な駅とそうでない駅の差がはっきりするので、ネットワーク全体の判断が楽になります。
供給側と対にすると、在庫が減った地点だけが自動で呼び出しを発行する、まさにトレイン版ロジスティクスになるでしょう。

優先度(0〜255)の使いどころと無効化を避ける理由

優先度は0〜255で、初期値は50、高いほど先に選ばれます。
複数の供給駅があるなら、より満タンに近い駅の優先度を上げておくと、あふれそうな場所から先に捌けるため、同じ鉄板でも無駄なく流し込めます。
ここで注意したいのが、供給駅を回路で無効化しないことです。
無効化すると予約途中の列車の扱いが乱れてデッドロックの原因になりやすく、RinSeoが一度それで詰まった経験もあるはずです。
上限0で閉じておけば予約の流れを壊さずに止められるので、回路制御の定石としてこちらを使いましょう。

同名駅・優先度のルーティングと避けたい落とし穴

同名駅を使ったルーティングは、うまくハマると専用路線を増やさずに在庫を必要な場所へ回せます。
ただし、列車が選ぶのは『最も近い駅』なので、駅の配置と上限を外すと一部の駅に列車が集中し、ほかが置き去りになりやすい設計でもあります。
だからこそ、最近接優先の仕様を前提に、上限と本数を先に決めておく流れが欠かせません。

同名駅の最近接ルーティングという仕様

複数の駅に同じ名前を付けると、列車はその中から『最も近い駅』を選びます。
ここが便利な点で、需要先を細かく振り分けなくても、空いている駅へ自然に吸い寄せられるのが魅力です。
ですが、名前だけを揃えて上限を付けないと、近い数駅へ列車が殺到し、遠い駅はいつまでも選ばれない状態になりがちです。
RinSeoも同名の荷降駅を10個、列車10本で組んだとき、近い数駅だけ渋滞して、遠い駅は永久に空のままという失敗をしています。
便利さの裏側にある偏りを見落とすと、見た目は動いていても配分は崩れます。

上限1+『駅数−1』で配分を均す

対策はシンプルで、各同名駅をトレイン上限1にし、列車数を駅数−1にします。
駅10なら列車9本です。
これで1駅1列車のペースに近づき、同じ駅だけが連続で使われる偏りを抑えやすくなります。
実際、RinSeoがこの形に直した瞬間、巡回が均され、放置していた遠方の駅にも在庫が回り始めました。
ここで効いているのは、列車を増やすことではなく、各駅に待機できる枠を絞って流れを分散させる発想です。
上限1がないと、近い駅ほど「空いているから来てほしい」という状態を何度も拾ってしまい、結果としてルートが偏ります。
制御の起点を駅側に置くと、動きはずっと安定します。

走行中は再経路しない前提での設計

列車は出発時に経路を決め、走行中は条件が変わっても再経路しません。
つまり、走り出したあとに別の駅が空いても、その場で向き直るわけではないのです。
この仕様を踏まえると、途中で状況が変わる前提ではなく、出発時点で「どこに行く列車か」を整理しておく必要があります。
駅の配置が近すぎると最近接の吸い寄せが強くなり、遠い駅は後回しになりやすいので、上限1と本数調整で最初から巡回の形を作るのが筋でしょう。
さらに同名駅と回路制御を組み合わせれば、要求が発生した駅だけ上限1で開く動的ルーティングになります。
専用路線を引かずに供給を必要箇所へ回せるので、これが『トレイン版ロジスティクス』の完成形です。

積み降ろしスループットを上げる最適化

駅が詰まる原因は、列車本数そのものよりも積み降ろしの待ち時間にあります。
インサータ、ベルト、スタックサイズの3点をそろえて処理能力を底上げすると、同じ線路でも駅の回転率が目に見えて変わります。
RinSeoも最初はインサータ4台のままで大量供給をねらい、駅がずっと荷待ちになりましたが、12台まで増設しただけでSPMが跳ね上がりました。
ここを軽く見ない設計が、そのまま輸送網全体の伸びにつながります。

インサータ12台とバルクインサータの活用

1両あたりインサータ最大12台、片側6台まで並べる前提で止め位置を合わせると、積み降ろしの底上げが一気に進みます。
1両を1台で受ける発想のままだと駅が先に詰まりやすく、列車を増やしても待機列だけが伸びがちです。
RinSeoがインサータ4台で止めていた頃に荷待ちが常態化したのは、その典型でした。
12台をフルに使うと、車両ごとの処理が安定して列車の滞留が減り、供給量の伸びがそのまま反映されます。

さらに、スタックサイズ研究を進めるほど1回で運べる量が増えるので、同じ動作回数でも積載効率が上がります。
ここでバルクインサータが効いてきます。
多数アイテムをまとめて運ぶ性質があるため、細かい出し入れを繰り返すよりも流れが太くなり、駅の主力として扱いやすいのです。
単純に台数を増やすだけでなく、1回あたりの搬送量を増やす発想が、積み降ろし速度を押し上げる近道でしょう。

ベルト速度・本数と駅の処理能力のバランス

インサータ側だけを強化しても、受け渡し先のベルトが細ければそこで渋滞します。
12台ぶんの搬送を受けきれる速度と本数を用意し、駅の前後でベルトが飽和しないようにそろえることが必要です。
片側の入力だけ太くしても、反対側の排出が詰まれば結局は駅に滞留が戻ってきます。
つまり、駅はインサータの本数で決まるのではなく、駅全体の通過量で見るべきです。

この調整は、見た目以上にプレイ感へ効きます。
荷が流れ切らずにベルト上へ残る状態が続くと、駅の空きが埋まりやすくなり、次の列車が入っても処理開始が遅れます。
逆に、前後のベルトが素直に流れる構成なら、列車が停車している時間の大半を積み降ろしに使えるので、同じ設備でも回転率が上がります。
駅の処理能力は、ベルトを含めた全体設計で見積もるのがおすすめです。

上流で加工してから運ぶ

そもそも運ぶ量を減らせば、駅の負担はもっと下がります。
鉱石をそのまま運ぶ代わりに現地で板に加工してから送ると、ケースによっては輸送効率が約5倍になり、同じ列車本数で供給できる量が一気に増えます。
列車を増やして押し切るより、最初から荷物を軽くした方がネットワーク全体は静かに回ります。
自分も鉱石を直送して列車を増やし続けていた時期がありましたが、現地加工へ切り替えた途端に本数を減らせました。

この手の改善は、単に「少なく運ぶ」だけではありません。
駅の入出庫回数が減り、ベルトも車両も詰まりにくくなるので、同じ資源をより少ない処理回数で回せます。
輸送のボトルネックを駅で抱えるより、上流で価値を足してから流した方が、結果として全体のスループットは伸びるのです。
こうした加工の前倒しは、増産より先に試してみてください。
おすすめです。

この記事をシェア

R

RinSeo

Factorio 2,000時間超。100駅以上の列車ネットワーク運用実績と Death World マラソンクリアの経験から、物流・防衛の実践ノウハウをお届けします。

物流・輸送の記事一覧