ぬうぱんの備忘録

技術系のメモとかいろいろ

作った曲一覧はこちら

Train Supply Manager セットアップ手順書

# この記事は?

  • Factorio の MOD である Train Supply Manager(TSM) のセットアップ方法のメモです。

# バニラと比べた TSM のメリット

## TL;DR

  • 各列車が無駄に駅から出歩かなくなるので線路の混雑状況が緩和される

## 列車が無駄にうろつかない

  • バニラでも「供給駅:消費駅=M:N」の輸送網を Min(M, N) 台の列車で構築できる
  • ただし、1つの供給駅に複数台の列車が殺到して最初に到達した1台以外が途中で引き返すみたいな事が起きる
  • TSM は最低限の台数だけが向かうことになるので無駄に線路を専有したりしない

## スマートに燃料供給できる

  • バニラでは燃料補給駅をルートに組み込むことになる
  • この場合、燃料の残りとは無関係に一定間隔で燃料供給駅に通うことになる
  • なので、燃料供給駅が混雑する
  • TSM は燃料が減った時だけ燃料供給駅に行くので無駄がない

# 用語

## Supplier Train Stop = 供給駅

  • 資源を列車に積み込むための駅

## Requester Train Stop = 要求駅

  • 資源を列車から降ろすための駅

## Train Counter

  • Requester Train Stop に付いてくる専用の定数回路
  • 「ペアになっている Requester Train Stop に向かっている列車の数」が Trains on the way 信号として出力される

## Train Configuration Reader

  • なぞ

## Train Requester

  • Requester Train Stop と併設するモジュール
  • 見た目はライト
  • 列車を呼び出す条件をこのモジュールで記述する

## 燃料補給駅

  • 列車の燃料が切れそうな時に立ち寄る駅

# セットアップ完了時の ゴール状態

  • 列車は基本的に供給駅に停車している
  • 要求駅の荷降ろしチェストに空きができたら対応する列車がその駅に向かう
  • 機関車の搭載燃料が減ってきたら自動的に燃料補給駅に向かう

# セットアップの要点

## 供給駅

  • Supplier Train Stop を設置する
  • 名前は [sup]鉄板 みたいに「供給駅であることを表すラベル」+「資源名」にしておく
  • 画面左上の Opens TSM gui buttons をクリックするとメニューが出てくるので、設定が必要
    • Define supply sourcing priorities (オレンジの上矢印)でダイアログを開く
    • Resource Id の列に所望の資源がなければ追加する(2列とも同じ資源を設定する)
    • -- Select -- ボタンから紐付ける Supplier Train Stop を決定する

## 要求駅

  • Requester Train Stop を配置する
  • それに加えて以下の要素をつないだ論理回路を組む必要がある
    • 荷降ろしチェスト <--> 条件回路 <--> Train Counter <--> Train Requester
  • 荷降ろしチェスト
    • 設定無し
  • 条件回路
    • 貯蔵資源量が一定数を下回ったら P 信号を 1 で出力する
    • ここの「一定数」はチェストのスタック2行分くらいが無難か
  • Train Counter
    • 設定無し
  • Train Requester
    • ネットワークの条件は「Trains on the way < P」に設定する
    • Train Requester 選択時に画面左上に表示される Train Requester ダイアログの設定は Priority Schema の2つのボックスに要求する資源を設定しておけばOK
  • 名前は [req]鉄板 みたいに「要求駅であることを表すラベル」+「資源名」にしておく

## 燃料補給駅

  • 通常の駅を配置する
    • 名前は FuelStop1, FuelStop2, ... という感じで FuelStop の末尾に番号を設定する
    • 駅名末尾の番号は機関車(動力車)の台数を表す
    • ただし、ここで言う「機関車の数」というのは「進行方向に向いている機関車の数」のことを言っているので注意
    • 燃料の減少を検知すると TSM が FuelStop を臨時駅として追加してくれる
    • 例えば「機関車(前向き)、貨物車、貨物車、機関車(後ろ向き)」の4両編成の列車の燃料が不足すると FuelStop1 が臨時駅として追加される

## 列車

  • Supplier Train Stop に停車し続ける設定にしておく
    • 必要な行き先は TSM が動的に追加してくれる
    • 「暇な時にどこにいるべきか」だけを手動で設定するイメージ

# トラブルシューティング

## 列車が供給駅に停車せずに発車してしまう

  • 供給駅に到着した時点ですでに要求シグナルが出てるせいで積み込みを待たずに発車してしまう状況のこと
  • 以下の条件をすべて満たすと起きる
    • どれか一つの要求駅が常に要求条件を満たしている(e.g. 荷降ろし先のコンテナが空)
    • その貨物の運搬に割り当てられているすべての列車の貨物が空になっている
    • その貨物の運搬に割り当てられている列車数が少ない(2~3両くらい?)
  • 解決方法
    • 要求駅が列車を要求出来る間隔を制限する
    • 論理回路で頑張れば P シグナルをフィルタできる
  • メモ
    • 本当は供給駅からの発車に条件を付けたい(満載まで~、とか)が、それは無理だった

# 参考

note.com

drive.google.com