Factorioの列車システムは、工場の規模が大きくなるほど欠かせない存在になります。しかし「信号がよくわからない」「デッドロックが起きて全線停止した」という声は後を絶ちません。この記事では、信号システムの根本原理から高度な最適化テクニックまで、列車信号を完全に理解するためのすべてを解説します。
信号を完全に理解すれば、列車は怖くない。むしろ工場の最も信頼できる輸送手段になります。
※ 列車の基本操作やスケジュール設定については基本の列車ガイドを先にお読みください。この記事は信号システムの上級解説です。
1. レールブロックシステムの深層理解
1-1. ブロックとは何か
Factorioの列車信号を理解する第一歩は、「レールブロック」の概念を正確に把握することです。ブロックとは、信号によって区切られたレールの区間のことです。
ブロックの基本ルール:
- 信号が置かれていないレールは、すべて1つの巨大なブロックとして扱われる
- 信号を置くことで、レールがブロックに分割される
- 1つのブロックには同時に1つの列車しか存在できない(これが最も重要なルール)
- 列車は次のブロックが空いていなければ、現在のブロックの出口信号で停止する
F5キー(デバッグ表示)で「show-rail-signal-states」を有効にすると、各ブロックが色分け表示されます。これは信号設計のデバッグに不可欠なツールです。ブロックの色が同じ区間は同一ブロックを意味し、異なる色は異なるブロックを意味します。
1-2. 列車のブロック予約メカニズム
列車が移動する際、単に「今いるブロック」だけでなく、経路上の次のブロックを事前に予約します。この予約システムが安全な運行を保証しています。
予約の仕組み:
- 列車は現在のブロックを「占有」状態にする
- 進行方向の次のブロックが空いているか確認する
- 空いていれば予約を取得し、信号が青に変わる
- 予約が取れなければ(他の列車が占有または予約中)、信号は赤になり停止する
- 列車がブロックを完全に通過すると、そのブロックの予約が解放される
この「予約→占有→解放」のサイクルが、衝突を防ぐ根本的なメカニズムです。信号の色はこの予約状態を可視化したものに過ぎません。
2. レール信号 vs チェーン信号:完全比較
2-1. レール信号(Rail Signal)の動作
レール信号は最も基本的な信号で、以下のように動作します:
チェックするタイミング:列車が信号に到達したとき、直後の1ブロックだけを確認します。
表示する状態:
- 🟢 緑(Green):次のブロックが空いている。通過可能
- 🔴 赤(Red):次のブロックに列車がいる、または予約されている。停止
- 🟡 黄(Yellow):列車が通過中の一瞬だけ表示される(予約が確定した瞬間)
レール信号の重要な特性は、列車を停止させる場所になりうるという点です。赤信号の前で列車は停止し、次のブロックが空くまで待機します。これは意図的に使えば有用ですが、交差点の内部で停止されると大問題になります。
2-2. チェーン信号(Chain Signal)の動作
チェーン信号は「先読み」する信号です。レール信号との決定的な違いはここにあります。
チェックするタイミング:列車が信号に到達したとき、次のレール信号(通常信号)に至るまでの全ブロックを連鎖的に確認します。つまり、チェーン信号→チェーン信号→…→レール信号という経路全体を見通します。
表示する状態:
- 🟢 緑(Green):先の全ブロックが空いており、出口のレール信号まで通過可能
- 🔴 赤(Red):先に進める経路が1つもない。全ルートがブロックされている
- 🔵 青(Blue):一部の出口は使えるが、一部はブロックされている。列車の経路が使える出口に一致すれば通過可能
- 🟡 黄(Yellow):列車が通過中の一瞬(レール信号と同様)
青信号の意味を正確に理解することが重要です。青は「一部通過可能」を意味し、列車は自分のルートが通過可能であれば進入します。例えば、T字路で右方向がブロックされていても、左に行きたい列車は青信号で通過できます。
2-3. 使い分けの黄金ルール
信号の使い分けを一言でまとめると:
「列車が停止してもよい場所にはレール信号、停止されると困る場所にはチェーン信号」
交差点に適用すると、次のルールが導かれます:
- 交差点の入口:チェーン信号(交差点内で停止させないため)
- 交差点の内部:チェーン信号(同上)
- 交差点の出口:レール信号(交差点を抜けた列車がブロックを解放するため)
- 直線区間:レール信号(列車が停止しても問題ないため)
3. デッドロック分析と対策
3-1. デッドロックとは何か
デッドロックとは、複数の列車が互いにブロックし合い、どの列車も動けなくなる状態です。これは信号設計の最も深刻な問題であり、一度発生すると手動介入なしには解決できません。
3-2. デッドロックの主な原因
原因1:交差点内部にレール信号を使っている
これは最も一般的なデッドロック原因です。交差点内部にレール信号を置くと、列車が交差点の途中で停止する可能性があります。対向列車も同様に交差点途中で停止すると、互いに相手のブロックを待ち続けるデッドロックが発生します。
修正方法:交差点内部のレール信号をすべてチェーン信号に置き換える。出口のみレール信号にする。
原因2:ブロックが大きすぎる(信号が少なすぎる)
信号が不足していると、1つのブロックが非常に大きくなります。このブロック内に交差点と待機エリアが含まれると、複数の列車が同じブロックに入ろうとして問題が起きます。実際にはブロックに1列車しか入れないため、大きなブロックは実質的に広範囲をロックしてしまいます。
修正方法:適切な間隔で信号を追加し、ブロックを細かく分割する。
原因3:双方向レールの不適切な信号配置
双方向レールで対向列車が同じ区間に入ると、互いに相手が退くのを待つデッドロックが発生します。双方向レールには特に慎重な信号設計が必要です(詳しくは後述)。
原因4:出口がないループ
列車が循環するレール配置で、全てのブロックが埋まると全列車が前の列車を待ち続けるデッドロックが発生します。ラウンドアバウトやループ状の配置では、列車数を制限するか、十分な待避スペースを設ける必要があります。
3-3. デッドロックの診断方法
- マップビューで確認:停止している列車のアイコンが集中している場所を探す
- 信号の色を確認:F4メニューから「show-rail-signal-states」を有効にして、全ての赤信号を確認する
- 循環依存を探す:列車Aが列車Bを待ち、列車Bが列車Cを待ち、列車Cが列車Aを待っている…というループを見つける
- ブロックの色分けを確認:意図せず巨大なブロックができていないかチェックする
3-4. デッドロックの緊急対処
デッドロックが発生してしまった場合の対処法:
- デッドロックに関与している列車を1つ選ぶ
- 手動運転モード(Mキー)に切り替える
- 列車を後退させてブロックを空ける
- 他の列車が動き出すのを確認する
- 自動運転に戻す
- 根本原因の信号配置を修正する(ここが最重要)
4. スループット最適化
4-1. 信号間隔の最適化
直線区間での信号間隔は、スループットに直接影響します。最適な信号間隔は列車の長さと同じにすることです。
なぜ列車の長さと同じなのか:
- 信号間隔が列車より長い:列車が通過した後、ブロックの解放が遅れる。後続列車が不必要に待たされる
- 信号間隔が列車より短い:列車が複数ブロックにまたがり、余分なブロックを占有してしまう。結果として他の列車のルートをブロックする可能性が高まる
- 信号間隔が列車と同じ:列車がちょうど1ブロックを占有し、最もスムーズなブロック解放が行われる
例えば、機関車1両+貨車4両の編成(一般的な1-4編成)は約6タイル分の長さです。この場合、直線区間の信号間隔を6タイルにするのが最適です。ただし、厳密なタイル数は編成によって異なるため、実際にレールを敷いて確認することをお勧めします。
4-2. 片方向列車 vs 双頭列車
列車のスループットを考える上で、列車の向きは大きな要素です。
片方向列車(Single-headed):
- 機関車が前方にのみある列車
- ループやターンアラウンドで方向転換する必要がある
- 加速性能が良い(無駄な重量がない)
- レール設計がシンプル(一方通行レーンのため)
- 大規模ネットワークでは圧倒的に推奨
双頭列車(Double-headed):
- 前後に機関車がある列車
- 方向転換が不要で、行き止まり駅でもそのまま折り返せる
- レール設計が柔軟(双方向レールが使える)
- 加速性能が劣る(後方の機関車が死重になる)
- 貨車1両分の積載量を犠牲にする
- 小規模ネットワークや特殊用途向け
スループットを最大化したい場合は、片方向列車+一方通行レールが最善の選択です。双方向レールでは、1つのレール上で対向列車がすれ違えないため、ボトルネックが発生しやすくなります。
4-3. 列車の加速とブレーキ距離
スループットに影響するもう1つの重要な要素は、列車の加速・減速特性です。
- 機関車の数を増やす(2-8編成など)と加速が向上し、信号間の移動が速くなる
- 核燃料は最高速度ボーナスがあり、スループットに大きく貢献する
- 上り坂では速度が低下するため、高低差のあるレールでは余裕を持った設計が必要
- ブレーキ距離は速度に比例する。高速列車は早めに減速を始めるため、信号前に十分なスペースが必要
5. 複雑な交差点の信号設計
5-1. 基本原則の再確認
複雑な交差点であっても、基本原則は変わりません:
「交差点の内部にはチェーン信号のみ、すべての出口にレール信号を配置」
この原則を守れば、どんなに複雑な交差点でもデッドロックを防げます。理由は明快で、チェーン信号は「出口まで通過できる」ことを確認してから列車を通すため、交差点内部で列車が詰まることがありません。
5-2. 4方向交差点(十字路)
4方向交差点は、すべての方向から列車が来る可能性がある最も複雑な交差点です。
設計手順:
- 交差点のすべての入口にチェーン信号を置く
- 交差点内部のすべての分岐点にチェーン信号を置く
- 交差点のすべての出口にレール信号を置く
- F4の信号状態表示でブロックが正しく分割されているか確認する
高スループット交差点のコツ:
- 交差点内部をさらにチェーン信号で分割すると、交差しないルートの列車が同時に通過できる
- 例えば、北→南と東→西のルートが物理的に交差しない設計にすれば、同時通過が可能
- ラウンドアバウト(環状交差点)は見た目は美しいが、スループットは低い。高トラフィック環境では避けるべき
5-3. T字路とY字路
T字路やY字路は4方向交差点より単純ですが、同じ原則が適用されます。
- 3つの入口すべてにチェーン信号
- 3つの出口すべてにレール信号
- 内部の分岐にはチェーン信号
T字路は実は非常に使い勝手がよく、メインラインからの分岐に最適です。4方向交差点よりもコンパクトで、信号設計も容易です。
5-4. 立体交差
最もスループットが高い「交差点」は、そもそも平面で交差しないことです。立体交差(オーバーパス/アンダーパス)を使えば、直進する列車同士は全く干渉しません。
Space Ageの高架レール(後述)を使えば、より簡単に立体交差を実現できます。バニラでも崖や地形を利用したり、合流・分岐ポイントを工夫することで擬似的な立体交差が可能です。
6. スタッカー(待機ベイ)の設計
6-1. スタッカーとは
スタッカーとは、駅の手前に設ける列車の待機場所です。駅が1つしかないのに複数の列車がその駅を目指す場合、スタッカーがなければメインラインで列車が渋滞します。スタッカーがあれば、メインラインは空いたまま、列車は待機ベイで順番を待てます。
6-2. スタッカーの信号設計
スタッカーの信号設計は次の通りです:
- スタッカー入口(分岐点):チェーン信号 — 空いているベイがあるかを先読みして確認
- 各待機ベイの入口:レール信号 — 列車がここで停止して待機する
- 各待機ベイの出口(合流点手前):チェーン信号 — 駅が空くまでベイで待機させる
- 駅の手前:レール信号なし(駅自体が停止点になる)
なぜ入口にチェーン信号なのか:レール信号だと、全ベイが満杯のとき、列車が分岐点の手前で停止します。これはメインラインをブロックしてしまいます。チェーン信号なら、空きベイがない場合はもっと手前(メインラインの適切な待機位置)で停止させることができます。
なぜ各ベイにレール信号なのか:各ベイは独立したブロックである必要があります。レール信号で区切ることで、各ベイに1列車ずつ待機できます。
6-3. スタッカーの容量設計
スタッカーに必要なベイの数は、その駅を使う列車の数に依存します。一般的な指針として:
- 駅を使う列車が2-3台:2ベイ
- 駅を使う列車が4-6台:3-4ベイ
- 高トラフィック駅:5ベイ以上
- 余裕を持って「使う列車数 – 1」ベイが理想的
7. 列車制限(Train Limits) — 2.0の重要機能
7-1. 列車制限とは
Factorio 2.0で追加された列車制限(Train Limits)は、駅ごとに「同時にこの駅を目指す列車の最大数」を設定できる機能です。これはスタッカーの設計や全体のネットワーク効率に大きな影響を与えます。
7-2. 列車制限の設定方法
駅(Train Stop)のGUIで、列車制限の値を設定します。
- 制限なし(デフォルト):すべての列車がこの駅を目的地にできる。従来の動作
- 制限 = 1:1台の列車だけがこの駅を目指せる。駅が空くと次の列車がディスパッチされる
- 制限 = 2:2台まで同時にこの駅を目指せる。1台が荷降ろし中、もう1台が移動中、という運用が可能
- 制限 = 0:この駅を無効化する。どの列車もこの駅を目指せない
7-3. 列車制限の活用パターン
同名駅の負荷分散:同じ名前の駅を複数設置し、それぞれに制限=1を設定すると、列車は自動的に空いている駅に向かいます。これにより、複数の積み込み/荷降ろしポイントへの自然な負荷分散が実現します。
スタッカーとの併用:列車制限をスタッカーのベイ数+1(駅分)に設定すると、スタッカーが溢れることを防げます。例えば3ベイのスタッカーがある駅なら、制限=4に設定します。
回路ネットワークとの連携:列車制限は回路ネットワーク(サーキットネットワーク)で動的に制御できます。在庫が少なくなったら制限を増やして列車を呼び、在庫が十分なら制限を減らす、という自動制御が可能です。これは大規模ネットワークでの最適化に非常に強力です。
8. 優先交差点(Priority Intersections)
メインライン(本線)とサブライン(支線)がある場合、メインラインの列車を優先させたい場面があります。
8-1. 信号による優先制御
Factorioの信号だけで完全な優先制御を行うのは困難ですが、以下の方法で擬似的な優先を実現できます:
- メインラインの信号間隔を短くする:ブロックが短いほど解放が早く、メインラインの流れが良くなる
- 合流点でのチェーン信号の活用:支線からの合流にチェーン信号を使うと、メインラインにスペースがあるときだけ支線列車が合流する
- 待機ベイの設置:支線の合流手前に待機ベイを設け、メインラインが混んでいるときは支線列車を待たせる
8-2. 回路ネットワークによる高度な優先制御
より精密な優先制御が必要な場合は、回路ネットワークでレール信号を制御する方法があります。メインラインのレールセンサー(列車が通過したことを検知)と組み合わせて、メインラインに列車がいるときは支線の信号を赤に保つ、という制御が可能です。
9. 一方通行 vs 双方向レールシステム
9-1. 一方通行レールシステム
一方通行(片側通行)レールシステムでは、上り線と下り線を別々のレールで構成します。
メリット:
- 対向列車によるブロックが発生しない
- 信号設計がシンプル(片側にだけ信号を置けばよい)
- スループットが高い
- デッドロックのリスクが低い
- 拡張が容易
デメリット:
- レールの敷設量が2倍
- ループやターンアラウンドが必要(片方向列車の場合)
- 設置スペースが大きい
9-2. 双方向レールシステム
双方向レールシステムでは、1本のレールで両方向の列車が走ります。
メリット:
- レールの敷設量が少ない
- 省スペース
- 双頭列車と相性が良い
デメリット:
- 信号設計が複雑(レールの両側に信号が必要)
- デッドロックのリスクが非常に高い
- スループットが低い(対向列車がすれ違えない区間がボトルネックになる)
- 待避線(Passing loop)の設計が必要
結論:中規模以上のネットワークでは、一方通行レールシステムが圧倒的に推奨されます。双方向レールは、初期の短距離輸送や特殊な用途に限定すべきです。
9-3. 双方向レールの信号配置の注意点
どうしても双方向レールを使う場合、信号はレールの両側にペアで置く必要があります。片側だけに信号を置くと、その方向にしか列車が通れなくなります。
また、すれ違いポイント(待避線)では、十分な長さを確保し、入口にチェーン信号、出口にレール信号を配置します。待避線の長さは最長の列車が完全に入れるサイズにしてください。
10. デバッグツールとテクニック
10-1. F4デバッグメニュー
F4キーでデバッグオプションメニューが開きます。列車信号に関連する重要なオプション:
- show-rail-signal-states:各信号の現在の状態(緑/赤/青/黄)を常時表示。デフォルトでは信号にカーソルを合わせないと見えない状態が、常に可視化される
- show-rail-block-visualisation:レールブロックを色分けして表示。どのレールがどのブロックに属しているか一目でわかる
信号のデバッグ時は、必ずこの2つを有効にしてください。目視だけでは見つけられない問題が一瞬でわかります。
10-2. 信号の手動確認テクニック
- 列車を手動で走らせる:問題のある区間に手動運転で列車を走らせ、信号の変化を観察する
- 信号にカーソルを合わせる:その信号が見ているブロックがハイライトされ、どの範囲を監視しているかわかる
- 仮の列車で検証:安い機関車1両だけの列車を作り、問題のある経路を手動で走らせてテストする
10-3. よくある信号ミスと修正例
ミス1:信号の向きが逆
信号はレールの片側に置かれ、その側から見て「前方」のブロックを監視します。反対側に置くと、意図と逆方向の列車しか制御できません。
修正前:信号がレールの右側にあるが、制御したいのは左側から来る列車
修正後:信号をレールの左側に移動する。一方通行レールでは、進行方向に向かって右側に信号を置くのが基本
ミス2:交差点内にレール信号
修正前:交差点の内部にレール信号があり、列車が交差点の真ん中で停止してデッドロック
修正後:交差点内部のレール信号をすべてチェーン信号に変更。出口のみレール信号を維持
ミス3:出口にレール信号がない
修正前:交差点の入口にチェーン信号を置いたが、出口にレール信号がない。チェーン信号が参照する先のレール信号がないため、常に赤になる
修正後:交差点のすべての出口にレール信号を追加。チェーン信号は「次のレール信号まで」を先読みするため、参照先が必要
ミス4:スタッカーの信号が逆
修正前:スタッカーの入口(分岐点)にレール信号、各ベイにチェーン信号。列車がメインライン上で停止してしまう
修正後:スタッカーの入口にチェーン信号、各ベイにレール信号。列車はベイ内で待機し、メインラインは空いたまま
ミス5:信号が片側にしかない(双方向レール)
修正前:双方向レールなのに、信号がレールの片側だけ。反対方向の列車が通れず、パスが見つからないエラー
修正後:レールの両側にペアで信号を配置。双方向レールでは必ず対になるように信号を置く
11. Space Age:高架レール信号
11-1. 高架レール(Elevated Rails)の概要
Space Age DLCで追加された高架レールは、地上のレールの上に第二のレイヤーを追加します。これにより、地上の構造物やレールとの干渉なしにレールを敷設できます。
11-2. 高架レールの信号
高架レールの信号は、基本的に地上レールと同じルールに従います:
- レール信号とチェーン信号の動作は同一
- ブロックの概念も同じ
- 地上レールと高架レールは別のブロックとして扱われる
- スロープ(ランプ)で接続される部分では、信号配置に注意が必要
11-3. 高架レールを活用した交差点設計
高架レールの最大のメリットは、完全な立体交差が簡単に実現できることです。
- メインラインを高架、支線を地上にすることで、交差なしの分岐が可能
- メインラインの列車は一切減速せずに通過できる
- 地上のスペースを工場のために確保できる
- スロープ部分では速度制限があるため、スロープの配置は交差点から離す
スロープの前後には必ず信号を配置し、スロープ区間が独立したブロックになるようにしましょう。これにより、スロープでの減速が他の列車に影響を与えにくくなります。
12. まとめ:信号マスターへの道
列車信号の理解は、Factorioの中でも最もハードルが高いテーマの1つです。しかし、以下のポイントを押さえれば、確実にマスターできます:
- ブロックを理解する:1ブロック1列車の原則を常に意識する
- 2種類の信号の違いを理解する:レール信号は「次のブロックだけ見る」、チェーン信号は「次のレール信号まで先読みする」
- 黄金ルールを守る:交差点内部はチェーン信号、出口はレール信号
- デッドロックの原因を知る:交差点内のレール信号、大きすぎるブロック、双方向レールの不備
- スタッカーを設計する:入口チェーン信号、ベイごとにレール信号
- 列車制限を活用する:2.0の強力な機能で、ネットワーク全体の効率を向上
- 一方通行レールを選ぶ:中規模以上では圧倒的に有利
- F4デバッグを使う:信号状態とブロック可視化は最強の診断ツール
信号を完全に理解すれば、列車は怖くない。むしろ、ベルトコンベアでは不可能な大規模・長距離輸送を、高い信頼性と効率で実現する最強の輸送手段になります。あなたの工場を、美しく流れる列車ネットワークで繋いでください。
列車信号の基本についてはこちら → 列車の基本ガイド