石橋を叩いて壊すページ

ゼロから始めるFactorioの鉄道構築(駅と発車条件編)

前回の記事までで、線路を引き信号を置いて列車をスムーズに走らせる方法を紹介した。
ここでは線路に駅を置き、列車の時刻表を設定する点について様々な要素を紹介したい。

基本編 > 信号編 > 連動信号編 > 駅と発車条件編 > 便利な機能編

同じ名前の駅を複数配置し、列車に選ばせる

Factorioの鉄道では、複数の駅を同じ名前にすることができる。
列車はその駅に向かう場合、同じ名前の複数の駅のうち1つを自動で選び、そこへ向かって走ってくれる。

例えば、マップのあちこちに油田が散らばっているとしよう。
そのすべてに駅を置き、「油田駅」という同じ駅名を設定する。
列車には、「製油所」と「油田駅」の2つの駅をピストン運転する時刻表を設定しておく。


3か所の駅に同じ「油田駅」という名前を割り当てた例。
ちなみに左の「油田駅」だけ赤い文字なのは、 その駅が回路の作動条件によって無効化されているという表示。
右は時刻表の設定例。同じ名前の駅が複数あっても、時刻表的には製油所と油田駅をピストン運転するだけの単純な内容でいい。

この場合、列車は製油所を出発すると複数ある「油田駅」のうち手近な1つを自動で選び、そこへ向かってくれる。
基本的には最寄りの油田駅へ行くが、そこまでの経路に列車の渋滞が起きていたりすると、渋滞のないほうの油田駅へ向かってくれる。
列車が多ければ行き先も分散し、こんな簡単な仕組みだけで複数の油田から1か所の製油所へ原油をかき集める列車軍団を構築できる。

また、駅には列車数上限を設定することができる。
これは駅が受け入れ可能な列車の数を制限する機能で、例えば上限を2に設定しておけば、 列車は一度に2本までならその駅に向かうことができるが、3本目の列車は上限を超えるのでその駅を候補から外し、 駅名が同じでまだ列車数上限に達していない駅を探すようになる。
これを使うことで上記した列車軍団を積極的に複数の駅へ分散させることが出来る。


本記事シリーズの冒頭で貼った画像がまさにこれで、6か所の採掘場から銅鉱石をかき集め、 銅板工場へ送り込む44本の列車軍団である。
もう少し詳しく紹介すると、この軍団は「ゴミ取り駅」→「貨物を降ろす駅」→「採掘場」という3駅が時刻表に設定されている。
「ゴミ取り駅」というのは、銅鉱石を掘る際に一緒に石や石炭などが掘りあがって貨車に紛れ込むことがあるので、これらを取り出す駅である。 (スタックフィルターインサータにブラックリストで銅鉱石を設定してあるので、貨車に銅鉱石以外が載っているとそれを全部取り出してくれる。)
ゴミ取りついでに機関車への燃料補給も行う。 「ゴミ取り駅」は同じ名前の駅が4つあるので、列車は4本の線路に分散して並んでくれる。
「貨物を降ろす駅」は同じ名前の駅が6つあり、それぞれ列車数上限を1~2本に設定してあるので、 ゴミ取りの済んだ列車は上限に空きのある荷下ろし駅へ自動的に収まって銅鉱石を降ろす。
「採掘場」では各鉱床ごとに駅があり、回路を使って列車数上限を設定している。
1つの駅に最低1本、銅鉱石がたくさん貯まると+1本の列車が向かうことで、 列車軍団の各駅への分散と間断ない運び出し、待機用線路長の短縮を図っている。
列車の発車条件は、ゴミ取り駅が「5秒間非アクティブ(=ゴミを取り終わったら発車)」、 貨物を降ろす駅は「貨車が空」、採掘場は「貨車が満杯または5秒間非アクティブ」になっている。

列車数上限は駅の設定画面で設定できる。
同じ名前の駅が複数あっても、駅の列車数上限は駅ごとに個別に設定できる。
このため大規模な採掘場の駅は上限を多くして列車を呼び集め、 小規模な採掘場の駅は上限を少なくして列車があまり来ないようにするといった調整も可能である。
列車は出発地から近い駅を優先的に選ぶので、近い駅ほど上限を抑え気味にしておくと列車が遠くまでよく分散するだろう。

ちなみにマップ上では、駅名は通常は白で表示されるが、列車数上限に達している駅名は水色で、 回路で無効化されている駅名は赤で表示されるので、色で各駅の状態を確認することができる。

列車数上限の設定には注意点がある。
設定された列車数上限を超える列車がその駅に向かおうとすると、「目的地がいっぱいです」というエラーになり、 列車は上限に空きができるまでひとつ前の駅で立ち往生してしまう。
同じ名前の駅が複数あり、それぞれ列車数上限が設定されている場合は、すべての駅が上限に達すると同様になる。

回避方法としては、同じ名前の駅が複数ある場合は、 それらのうち最も出発地点から遠い駅について、列車数上限を解除(無制限受け入れに)しておこう。
すると、列車はとりあえずその駅に向かって発車する。 発車後、もっと近い駅に空きができると列車はそちらに行き先変更してくれるので、各列車がスムーズに走行できる。
ただしこの方法でも、極端に大量な列車が押し寄せると行き先変更できなかった列車たちが最も遠い駅まで大行列を起こすので、無理は禁物である。

また、同じ名前の駅が複数あり、そのうち1つ以上がたどり着けない(線路の繋がっていない)場所にあり、 到達可能なすべての駅が無効または列車数上限に達している場合、新たにその駅に向かう列車はたどり着けない駅へのルートを計算して 「到達経路が見つかりません」のエラーになる。
とくに走行中の列車が回路で駅を無効化されて行き先変更でこの状況に陥ると、 主要幹線や交差点上で列車が緊急停止する場合もあるので注意しよう。

エラーが起きた場合は、次のページで紹介する臨時駅を設置するの方法で問題個所を洗い出そう。
エラーが出ている機関車をクリックして、そこから目的地に向かっていくつか臨時駅を設置してみよう。
途中で経路計算がおかしくなった場合は、その直前の臨時駅と問題の起きた臨時駅の間に原因がある。
地図をズームしてもっと細かく臨時駅を置き、原因の正確な場所を突き止めよう。

機関車の発車条件について

機関車には駅を発車する条件を設定できる。発車条件には以下の9パターンがある。

列車の発車条件
名前 意味 ポイント
経過した時間 駅に到着後、設定した時間停車後に発車する
非アクティブ 荷物の積み降ろし終了後に発車する 貨車のアイテムが増減しない状態が設定した時間続くと積み下ろし完了と判断される。
貨物車両が満杯 貨物車両が全車満杯になったら発車する 例えば鉄鉱石は1スロットに最大100個入るので、99個しか入っていないスロットが1か所でもあると「満杯」ではないと判定される。
列車が発車するには列車に連結されたすべての貨車のすべてのスロットが満杯になる必要がある。タンク貨車も含む。
貨物車両が空 貨物車両が全車空荷になったら発車する 機関車の燃料スロットは貨物とは数えない。
貨物アイテム数 列車に積まれたアイテムが指定された個数になったら発車する 例えば「鉄鉱石を1000個以上積んだら発車」のような条件を設定できる。列車に貨車が複数ある場合は列車全体の合計で考える。
タンク貨車の貨物は「流体数」、それ以外は「貨物アイテム数」条件で判定する。
イコールによる判定は状況次第で飛び越しが起きるので、なるべく以上・以下で判定したほうが安全。 (例えば発車条件が「鉄鉱石1000」の場合、 鉄鉱石を998個積んだ状態からインサータで3個積むと1001個に数値が飛び越してしまうため列車は発車できない。 「鉄鉱石1000」なら発車できる。)
なお、タンク貨車は1両満タンで25,000。
流体数 列車に積まれた流体が指定された量になったら発車する
回路による 回路信号が条件を満たしたら発車する 駅に回路が繋がっていて駅の回路設定が「✅列車に送る」の場合、 駅に入力された回路信号が列車にも届く。
信号が設定した条件を満たすと列車は発車する。
乗客あり 列車に工場長が乗っていれば発車する
乗客なし 列車に工場長が乗っていなければ発車する

発車条件は駅ごとに複数設定でき、ANDORで条件を組み合わせることができる。
例えば「貨物車両が満杯」AND「乗客あり」であれば、貨物車両が満杯で、かつ、工場長が乗っている時だけ列車は発車する。
「貨物車両が満杯」OR「乗客あり」であれば、貨物車両が満杯か、または、工場長が乗っている時だけ列車は発車する。


複雑な条件が設定された機関車の時刻表。
ここでは採掘場駅の発車条件に「貨車が満杯」OR「5秒間の非アクティブ」を発車条件に指定している。
これは、例えば採掘場で鉄鉱石と石炭が両方掘れてしまうときに便利。
もし貨車が鉄鉱石で満杯になれば、「貨車が満杯」の条件によって列車は即座に発車する。
もし貨車に石炭が端数だけ紛れ込んで貨車が満杯にならなかったとしても、 積み込みが5秒間止まると「5秒間の非アクティブ」の条件によって列車は発車する。
これにより、アイテムの混入で列車の運行がストップしてしまう事態を防ぐことが出来る。

ちなみに、時刻表を設定した機関車をShift+右クリックすると、その機関車の設定をコピーできる。
コピー後に他の機関車をShift+左クリックすると設定を貼り付けられるので、同じ時刻表の列車を複数走らせたいときに便利。

また、時刻表画面の駅名と×ボタンの間に表示されている蛇腹部分をマウスで掴むことで駅をドラッグ&ドロップでき、 駅の停車順を入れ替えることが出来る。
1つの駅に発車条件が2つ以上登録されている場合に限り、発車条件も同じようにドラッグして入れ替えることができる。

発車条件を設定しない

上記で駅の発車条件を紹介したが、もうひとつ、発車条件をあえて設定しないという選択肢もある。
発車条件が設定されていない駅は通過駅となり、状況が許せば列車はノンストップで通過する。これは以下のような用途に使える。

  • 混雑する線路がある場合、別の線路に駅を置いて通過駅に設定し、重要ではない列車を遠回りさせて混雑を緩和する。
  • 混雑する駅がある場合、本線とは別に線路を引いて“駐車場”を作り、駐車場の中か出口に通過駅を設置しておくと、 列車は駐車場の中で待機するので、本線が塞がれるのを防げる。(以下図参照。)
  • 列車数上限を設定した駅がある場合、その駅に上限を超える列車が向かおうとすると 「目的地がいっぱいです」というエラーが発生し、列車は目的駅が空くまで出発駅で発車待ちしてしまう。
    その場合も上記同様に駐車場と通過駅を設置しておくと、目的地がいっぱいでもとりあえず駐車場までは走行してくれる。
  • スイッチバック駅を通過駅にすると、列車は一旦停車後すぐにバックを開始する。


例えば軽量化素材の生産には銅板・鋼鉄・プラスチックが必要だが、 1枚目の画像では工場に素材の搬入列車が押し寄せて本線を塞いでしまっている。
この場合、2枚目の画像のように線路を並べて駐車場とし、そこに通過駅を並べておく。 すると列車は駐車場内に溜まっていき、本線を空けることが出来る。
(状況にもよるが、この図の場合は目的地の駅には列車数上限=1の設定をしておく。 すると駐車場に並んだ列車たちは、その1枠を獲得した者から順次再発車する。 駐車場駅には列車数上限をつけない。つけると、駐車枠が埋まると列車が出発駅で止まってしまう。)
ちなみにこの図は駐車場を並列な線路としたが、同じ名前の駅が2つ以上ある場合の駐車場ならいわゆるフォーク並び型にしてもいい。 その場合はフォークの分岐の手前に1つだけ通過駅を置くと、列車はそこで一旦停止し空いた目的駅に向かって分岐していく。
駐車場を並列な線路にする場合、入口手前には必ず連動式列車用信号を置こう。そうすれば列車は空いている駐車枠に入る。 通常の列車用信号を使うと既に列車がいる駐車枠に追加で入ろうとしてつっかえ、事態を余計に悪くする可能性がある。
ちなみに通過駅を使わず、列車用信号や連動式列車用信号を駆使することでも同様の駐車場を作ることができる。 1つの課題に複数の解法があるのがFactorioのいいところなので、その場に合わせたやり方をいろいろ模索して楽しもう。


時刻表画面の発車条件の右側には発車条件を削除するための「×」ボタンがついているので、 すべての発車条件を削除すればその駅を通過駅にできる。

これで、ひととおり列車と信号に関する基本的なことは紹介できた。
しかし、Factorioの列車や駅や信号には他にも鉄道運行を便利にする様々な機能が用意されている。
次回の記事では、そのあたりを紹介したい。

基本編 > 信号編 > 連動信号編 > 駅と発車条件編 > 便利な機能編

この記事を評価

この記事にコメント

  1. ...

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

Menu