In other languages:

User:Fried biter/workspace

From Official Factorio Wiki
Jump to navigation Jump to search

作業場/workspace 日本語話者の方、マサカリ投げてくださると助かります


信号はFactorioの鉄道システムを機能させる上で必要不可欠だ。このチュートリアルでは、どのようなときになぜ信号が用いられるか、デッドロックとは何でどういう場合に起こるのかを説明する。目標は、読者がスムースな鉄道システムを運用できるようになり、よくある問題も解決できるようになることである。よくある利用例もいくつか示す。

まさに信号の使い方を学び始めたばかりの初心者諸君におかれては、全ての交差点付近にレーダーを配備し、問題をすばやく特定できるようにしておくことをおすすめする。また、新たな列車や駅がシステムに追加された際は、燃料補給の自動化を可能な限り早く行っておくことも推奨される。列車は時刻表上のどこかの駅で燃料を補給されてもよいし(このとき燃料を駅に輸送することもある)、独立した燃料補給駅を時刻表に書き加えても良い。

通常信号(Regular signal)とブロック

Why signals.gif

いつだって、線路に1編成より多くの列車が存在するなら衝突事故が発生しうる。これを防ぐため、道中と交差点に信号を設置しよう。通常の列車用信号 はその手前の線路ブロックを、次の信号か線路の終端かまで保護する。信号は、どのブロックにも1編成までしか存在できないことを保証してくれる。すでに列車が存在するブロックに2編成目の列車が侵入しようとすると、そのブロックへと続く(直前の)信号で止められて待たされる。

線路ブロックは、プレイヤーが信号を持っている間、色付きで表示される。画像はブロック可視化を示すもので、ここでは全部で11のブロックが見て取れる。列車用信号(そして連動式信号)はブロックを画すが、駅(train stops)はなにもしない。

Rail blocks example.png

通常信号は、続くブロックに列車が存在しない場合に緑となる。列車がブロックに侵入すると、そのブロックへと続くすべての信号は赤になる。列車がブロックに侵入する予定の場合、信号は赤になる前、しばらくの間黄色になる。

信号は線路の右側に設置される。列車は進行方向から見て右側にある信号しか通過できない。自動運行の列車は、右側にも信号がない限り左側の信号を通過できない。このせいで、一見線路がつながって見えるのに実は一方通行になっている部分が生じ、「到達経路なし」エラーを発生させてしまうことがある。

Signal directions.png

この画像では、線路は上から順に:

  1. 左から右、
  2. 右から左、
  3. 双方通行、
  4. 双方通行、
  5. 左半分は双方通行で、分岐した上の線路は右から左、下の線路は左から右。

連動式信号

信号を用いれば列車同士が衝突することを防止できるが、別の潜在的問題が生じてしまう。すべての列車は前方のブロックが開放されるまで待たなければならないので、列車は他の列車(群)を待つことになる。では、ある列車が交差点で待たされている場合を考えよう。この場合、たとえ別方向に向かっている他の列車がいても待たされることになる。そうした列車はさらに他の列車を待たせることとなり、システム全体が遅くなってしまう。輸送システムは列車が交差点で待たされることを避けねばならない。Factorioにおいては、連動式信号がこうした事態を防いでくれる。

Chain-signal-guards-crossroad.png

最も重要なルールは、列車が連動式信号の後ろのブロックで長期間待機することはできないということだ(逆に通常信号の場合、直後のブロックで待つことができる)。列車は交差点で待つべきではないので、以下のよく言われるルールが導かれる:「交差点とその直前では連鎖式信号を用い、交差点を出たところに通常信号を置け」。一般に、待機中の列車が別路線の列車の邪魔になる位置では、そこで待たせないように連鎖式信号を使うべきだ。

Double-crossing.gif

連鎖式信号はどのように動いているのだろうか?列車が連鎖式信号を通過できるかどうかを決めるには、その信号から、次の通常信号か駅か(早い方)までにその列車が辿るだろう経路を考える。その経路上の全てのブロックが空いているときのみ、その列車は連動式信号を通過できる。列車が通り過ぎると、その経路上の全ブロックは予約(reserve)され、実際に通過するまで他の列車は侵入できない。出口信号が1つのみのブロックへと続く連動式信号は、つねにその出口信号と同じ色になる。路線が分岐する場合は、ある出口信号が赤で別の出口信号は緑といったことがありえる。その場合、そのブロックへと続く連動式信号は青になり、いくつかのパスは空いているが他のパスはそうでないことを示す。

Chain signal colors.png

鉄道ネットワークが多くの連動式信号を含む場合、ある列車が連動式信号1つを通り過ぎただけで大量のブロックが予約される事態が起こりうる。こうなると他の列車が縛られ、総体のスループットを落とす。なので、可能な限り通常信号を使い、連動式信号は必要なときだけ使うようにすることがよくおすすめされる。

デッドロック

信号を用いると、列車は他の列車を待たされる場合がある。その帰結として、列車が連鎖してしまい、どの列車も次の列車を待機していて、しかも最後の列車は最初の列車を待機している…といった事態が発生しうる。この状況はデッドロックと呼ばれ、実際、手動で解消しない限りすべての列車が永久に待機し続けることとなる。これが起こったエリアを通過する列車全てが詰まってしまうことになるので、これを避け、また可能な限り早く解決すべきである。デッドロックが生じる最もよくある原因としては

  1. 交差点で列車が待機していて
  2. 鉄道ネットワークが列車に対し十分なスペースを備えていない


Deadlock anim.gif

上に示すイメージは、通常信号のみが用いられ、連動式信号が欠如していることによって生じたデッドロックである。結果として、列車は交差点上で待つことができてしまい、デッドロックを引き起こす。この交差点の修正版もすでに上述した。交差点とその直前の8つの信号が、交差点で待機することを許してしまっていたので、これを連動式信号に置き換えた。上述のように、一般に交差点とその直前では連動式信号が用いられるべきだ。

Deadlock too many trains.png

この画像に見られるデッドロックは、列車ネットワーク内に存在する円環が、そこに収まる量よりも多くの列車によって用いられることで発生している。信号は正しい配置なので、これを解消するには円環を排除するか、このエリアを通らなければならない列車を減らす。

Signal deadlock.png

このデッドロックもまた、小さすぎる円環に多すぎる列車が殺到したことで発生している。デッドロックはたった2編成でも起こりうることがわかる。このケースでは、デッドロックは図に示した信号を連動式信号に置き換えることでも解消できる。問題の円環に1編成しか侵入できないことを保証してくれるからだ。しかしながら、こうすると主線で列車が待たされることになるので、駅付近に列車待避所を作る必要がある。

信号間隔

Deadlock signal space.png

この画像は、2つのT字路(訳注:鉄道でもT字路っていうの?)間で起こったデッドロックを示している。これは、ある列車が交差点で待機しているとき、その最後尾はまだ直前の交差点にいるせいで発生している。このT字路2つは、それぞれを見れば正しく信号配置されているが、お互いに近すぎる。2つで1つの巨大交差点を作っているとも言えるだろう。これを修正するには2つの方法がある。1つはT字路間の通常信号を連動式信号に変える方法。もう一つはT字路をお互いもっと離して設置する方法。

T字路の出口信号を超えたら、次の信号は十分遠く、鉄道ネットワーク上に存在する最も長い列車が収まるくらいの間隔をおいて配置しなければならない。概して、すべての通常信号の後にその程度のスペースは空けておくべきだろう。

Splitting rail blocks

The following aims to explain where signals should be placed. Long uninterrupted rail tracks should have signals at regular intervals because this allows more trains to move on the track simultaneously leading to higher throughput. Crossings should be separated from uninterrupted rails with signals. Inside crossings, signals should be used so that multiple trains can pass through the crossing without slowing down - for example trains going in opposite directions should not have to slow down for each other, so they need to pass through different blocks inside an intersection. The examples below all follow these rules.

Examples

The most common way to build a rail system is using two parallel rails, one for each direction. The examples mostly follow this architecture. A single bidirectional rail line should not be used for 'main' rail lines in most situations.

T-Junction

The image shows a basic three way junction. Rail signals have been placed inside the junction to ensure that more than one train can enter the junction in some cases. For example for one train going left to right and one going right to left, the trains will pass through different blocks: the first will go through the left yellow, the blue and the lower right yellow block; the second will use the upper yellow and upper red blocks. Because they use different blocks, they can use the junction simultaneously. While this is not strictly necessary for a junction to work, it will allow better throughput at a low cost.

Waiting area

If multiple trains use the same station, the trains will wait on the main rail line which leads to a traffic jam in the network and can cause deadlocks. One way to avoid this is to add waiting areas for trains at each station.

Train waiting area.png

The image shows a shared waiting area for two stations. The signals leading into the waiting areas are regular signals because this is where trains are expected to wait for an extended time. The signals leading out of the waiting areas are chain signals because the track from the waiting areas to the stations should not be blocked. The stations are also in different blocks to make sure that all stations can be used simultaneously.

There are two ways to design waiting areas, parallel (as above) and sequential. The parallel version is easily extendable, takes less space and multiple stations can share a parallel waiting area. The sequential version as shown below is easier to set up but cannot be shared by multiple stations (and has very minor UPS benefits). Waiting areas are often referred to as stackers.

Train waiting area sequential.png

関連項目