見出し画像

【Factorio】Project CyberSynのガイド

今回はFactorioの列車MODの1つ『Project CyberSyn』を紹介、解説したいと思います。
比較的新しい列車MODのためか日本語のガイドが無かったので、私自身で書いてみました。

K2+SE環境での解説となります、一部バニラに登場しないアイテムなどの話が出る事もありますのでご了承ください。
また、有志の日本語化modも適用しているため、解説画像のUIは日本語となっております。

『Cybersyn Combinator』なる設定補助modもありますが、これを使わなくてもバニラの定数回路1個で簡単に設定できるので今回の解説では使用しません。


そもそも列車MODって何をしてくれるの?

一言で簡潔に説明すると
『列車が物流ロボットのように自動で運送してくれるmod』です。
供給チェストから要求チェストへアイテムを運ばせるロボットの仕事を列車にやらせます。
似たようなMODも既にいくつか出ており、代表的な物としてはLTNが有名です。

LTNの面倒だった設定を簡略にし便利機能を追加した後続modのTSMも比較的有名所です。

Project CyberSynはこれら先輩modのいい所を参考にし、更に設定を簡略にした列車modです。

Project CyberSynの特徴

追加される研究はこれだけ
  1. セットアップが簡単
    追加された研究で開放される専用の制御装置をバニラ駅の横に置くだけでその駅はmod管理下に入ります、後はチェストと制御装置間でワイヤーを繋ぐだけで設定完了です。
    要求駅の場合は注文書リスト用の定数回路を1個追加するだけです。
    ついでに駅と制御装置間はワイヤーで結ばなくても機能します(設置時に出る黄色い枠内に駅があればOK)
    線路に隣接しているインサーター(ポンプ)で対応編成数や貨物が液体か固体かを判別しているので、細かい設定をしなくても適切な列車を自動で呼んでくれます。

  2. 列車への燃料補給を自動化できる
    配送完了後に自分の残り燃料が少ない時、燃料補給用駅がある場合はそこへ自動で向かうように設定できます。

  3. 全ての仕事が終わるまで待機所に戻らない設定にできる
    配達完了後にまだ完了していない配達がある場合、その場で次の配達に取り掛かれます。
    LTNのように毎回待機所に戻ってしまい周辺が渋滞になる、といったことを回避できます。(設定で毎回帰還させることもできる、列車個別に設定も可能)
    全ての駅の要求が満たされて仕事がなくなったタイミングで待機所に戻ります。

  4. 優先度をつけた搬出、搬入が可能
    搬出や搬入に優先度の設定ができます。
    MOD追加レシピによくある副産物を優先使用し、製造ラインを詰まらせないように循環させることができます
    搬入の場合、石炭は火力発電所に優先で入れて余りはプラスチックに入れる、といったことができます。

  5. 1つの駅で複数種のアイテムを取り扱える
    フィルターインサーターを回路に繋ぐことで1個のチェストに何十種類のアイテムが入っていようと正確に要求されたアイテムを取り出せます。
    また、液体ポンプとインサーターが混在してる駅でも正確に配車して配送してくれます。

  6. 1つの駅で搬入、搬出の両方の仕事が行える
    文字通り、『素材を搬入⇒同じ駅で完成品を必要な時に搬出』といった構成ができます。液体が混在していても可能です。

  7. space explorationの軌道エレベーターに対応している。
    惑星軌道上駅、地上駅の在庫を相互に認識して配送させることができます。お互いのネットワークを揃えておくだけで設定完了であり特殊な手順は不要です。

  8. Loaderに対応している。
    Krastorio2などにあるローダー系にも対応しています、工夫すればローダー駅でも複数アイテムの取り扱いが可能です。

  9. 駅の名前の影響を受けない
    列車の動作をX,Y座標による移動で制御しているため、極論全部同じ名前の駅でも正確に配達してくれます。
    ただし、全部同名だとエラーログが出ても「どこの駅?」となる問題があるので、ちゃんと名前をつけるのを推奨

箇条書きで特徴を挙げるとこんな感じです。

使い方(基本編)

供給駅から要求駅へ配達するための最小限の設定です。

1.待機所(デポ)を作り、列車をネットワークに登録する。

デポモードに切り替えて駅の真横に置く
今回の解説は全て機関車1-貨物1の最小編成で行います

自動運転モードの列車をデポモードの駅に送り込むことでmod制御下のネットワークに登録されます。登録された列車は自動で1秒待機状態にスケジュールが上書きされます。
デポモードに設定されたネットワークに車両が登録され、このネットワーク間でのみ配送するようになります。ここにアイテムのアイコンを入れるとそのアイテムを搬出するとき反応しなくなる問題があるので、基本的に0~9やA~Zやシグナル等を入れたほうがいいです。(魚のような列車で搬送することがほぼないアイテムなら入れてもOK)
運行中のバニラ列車がここに停車するとネットワーク下に入り自動制御運転に上書きされます。バニラ列車を残したい場合は、待機所の名前を分けて入らないようにしましょう。

2つある設定に関しては下記の通りです

  • 同じデポを要求
    全ての仕事が終わって戻るときに必ず登録した時の駅に戻るようになります。チェックがない場合は登録した駅と同名の空いてる駅に戻ります。

  • デポバイパス
    配送が終わっても仕事が残っている場合、待機所に戻るのをキャンセルして次の仕事に従事するようになります。供給、要求駅が近すぎて往来頻度が高いとたまにデッドロックを起こす(信号の区分けが少なくお互いが近いと、供給⇔要求に入りたい同士がループして詰まる)が、それくらいしかデメリットはないので常時ON推奨

2.提供駅を作る

掘削機で掘った銅鉱石を出荷する駅

提供側はチェストと制御装置の入力側をケーブルで繋ぐだけで設定完了です。
これでチェストの中のアイテム数がそのまま駅の在庫として登録されます。
他の設定に関しては提供側は特にいじらなくて大丈夫です、自動許可リストもONのままでいいです。

3.要求駅を作る

銅鉱石を銅板に加工する要求駅。しきい値は2000、銅鉱石の要求数は8000個とした
要求チェストのアイコンがしきい値設定であり、これは導入時に自動追加される
しきい値については後で詳しく解説するが、一回の配送の下限値と思えばいい

チェストをケーブルで繋いで駅の在庫数を確認できるようにし、定数回路で『しきい値』と『その駅に欲しいアイテムの数をマイナス』で入れます。
動作原理としては、『制御装置にマイナス入力されているアイテムにチェスト内部のアイテムを加算して最終的にプラスになるよう、供給駅から要求駅へアイテムを輸送する』といったものになってます。
複数種のアイテムが1つの駅に欲しい場合でも、その分入力すればちゃんと持ってきてくれます。

4種類要求した例

その他2つある設定に関しては下記の通りです

  • 自動許可リスト
    ONだと線路に隣接しているインサーターやポンプを見て自動で適切な車両を配車してくれます。基本的にONのままでいいです。
    OFFにすると車両の長さもタンクかどうかも関係なく、とにかく手が空いた列車を作業に割り当てるようになります。液体を取り扱う駅に普通の貨物車を呼んで詰むなんてことをやらかすので、OFFにするのは基本的に非推奨です。

  • 非アクティブ条件
    発車条件に非アクティブ1秒が追加されます。主に複数種のアイテムを取り扱う駅で、インサーターが完全にストップしたのを確認してから出発するために使います。
    意味もなくONにすると、例えば1秒間隔で1個ずつアイテムが流れるような場所だと、貨物が満杯になるまで居座ってしまいます。

  • スタックしきい値
    しきい値を実数ではなくアイテムのスタック数で計算してくれるようになります、詳細は後述

設定はこれだけで、問題が無ければ数秒後に列車による配送が開始されます

仕事が始まるとこのようなスケジュールが自動でセットされる

されない場合は提供、供給を間違える等の初歩的ミスを除くと、大体しきい値に問題があります。

しきい値について

要求するときの1回の配達における最小数の設定になります。デフォルト(無入力)では2000がセットされており定数回路からの入力で上書き可能です。
低ければ低いほど配送される頻度が上がります。例えば1000にセットすると、駅の在庫が1000個減った時点で配送されるようになります。
なお、しきい値は輸送開始の最低数を指定するだけなので、供給駅の在庫が十分ある場合は要求数に収まるだけの分を可能な限り積載して配達してくれます。

しきい値が小さければ小さいほど供給頻度が多くなり、列車の往来や本数が増えて渋滞になりやすい問題が出てきます。
逆にしきい値が大きすぎると、一回の運送で大量に運んでくれるようになりますが物が届く前に駅の在庫が切れてしまう可能性が出てきます。
消費が激しいアイテムに割り当てる電車の本数を増やしたい時はしきい値を下げて要求数を上げることで対応できます。
このへんは実際に運行してみて調整しましょう。私は大体は要求値の50%をしきい値に入れており、これで間に合わない場合は25%に下げるといった感じでやってます

また、しきい値はスタック数で設定することもできます(チェックボックスで変更可能)
例としてこのモードで20と入れれば、どんなアイテムも貨物車20スロット分を最低限積み込んで配達されるようになります。
銅鉱石は50で1スタックだが銅板は100で1スタックのような、1スタック数が異なる複数の貨物の設定の時、個々の設定を省けるメリットがあります。

ただし、要求数はスタック数として入力できないこと、要求数を超えたしきい値を入れると配送されないことによる別の計算の手間が出てくるので、一長一短です。

右の入力ではエラーで配送されない、スタックしきい値設定でも要求数は実数を入れること。

しきい値が高すぎて配送されないケース(積載限界を超過)

しきい値が貨物車の積載限界数を超えると、一回でそんな配達できる列車が見つからないとエラーを出して配送されません。

ロケット燃料が必要なので他所からコピペして書き換えた
怒られた

1スタック10個のロケット燃料の場合、貨物車両40スロットの限界積載数は400個になります。画像のように2000のしきい値を満たす場合は200スロットも必要となり、最低でも貨物5両編成の車両をネットワークに登録してあげないと配達しきれないのでエラーとなります。

しきい値が高すぎて配送されないケース(要求数を超過)

要求数よりしきい値が高い場合も配達されません、特にスタックしきい値を利用すると起こりやすいので注意

消費量が少ないので鉄板の要求数を1000と入力し、40スタックをしきい値にした例

これだと40スタック搬入しようとすると4000個搬入することになり、1000の要求数を3000超過してしまう矛盾が発生してしまうため配送されません。
修正例としては以下の2通りです。

修正例1.要求数を増やして対応する

この設定だと『鉄板が残り1000個を切ったタイミングで40スタック補充する』挙動となります。

修正例2.要求数はいじりたくない場合

要求数1000をいじりたくない場合は、しきい値を下げて対処することになります。
ここでしきい値に限界値である10と入れると、在庫が0になると10スタック配送されるといった挙動になります、これだと0になってから輸送時間分のボトルネックが出てしまうので、残り50%相当の5(残500を切ったら500搬入)にしました。

しきい値は要求数以下に設定しないとエラーとなる』ということを覚えてもらえれば配達されない問題は大体解決できるかと思います。


スタックしきい値は便利ですが計算ミスを起こしやすいため、計算が苦手なら直感でわかりやすい要求数直打ちをおすすめします。

修正例1の『鉄板が残1000個を切ったタイミングで40スタック(4000個)補充される』の実数値版
4000個入れる余裕ができたら配送されるという事がわかりやすい

ついでに液体にはスタックの概念がないので、スタック設定でも実数値計算となります。

給油機モードで補給所を作る(任意)

待機駅で燃料補充できる設計なら不要ではあるのですが、燃料が残り少なくなった時に自分で補給に向かう専用の駅を設定できます。
作り方としては以下の通りです。

modで石炭を車両燃料に加工しないと列車に使えないため、加工を挟む設計となっている
ネットワークがBなのは自分の設定環境が違うだけです

燃料補給のロジックは『燃料がなくなったらここに来て、非アクティブ条件で発進』だけなので、このままでは燃料の在庫に関係なく補給駅にやって来てしまいます。
どうやら駅側のネットワークの有効/無効だと制限を無視してやってきてしまうことがあるようです

これだとダメ

なので、車両制限を上手く使って入場制限してやりましょう。

燃料が100以上あればL=1で車両制限が1となり列車が入れるようになる
これだけだと作り続ける燃料を積み続けて非アクティブを達成できず居座る可能性がある
念のため列車のIDを取得することで停車してるかを確認し、チェストへの補充を停止するようにした

使い方(上級編)

ここからは回路を駆使して、1つの駅で複数のアイテムを取り扱う方法の解説となります。

実はCyberSynの制御装置が、搬出したい時はマイナスの値を出力しています
駅から列車の積み荷のプラス値を出力し、
搬出の時は制御装置がマイナスの要求値を出力しているので、この2つをうまく組み合わせて制御を行います。

列車の内容を取得で積み荷のプラス値を取れる

フィルターインサーターを使って特定のアイテムのみ搬出する。

雑多にいろいろ入ってるチェストから特定のアイテムのみ搬出する場合、算術回路を1個追加することで実現可能です。

スクラップリサイクル区画(mod)の例
鉄鉱石、銅鉱石、石、レアメタルの4種類が1つの倉庫に入っている
ここに来た列車の要求に合わせてフィルターが自動設定されて搬出を行う(画像は石)
×マークのアイコンは貨物スロットのロック制御であり、これは後で解説する。
非アクティブ設定は忘れないようにすること

画像じゃわからん、って人のために一応この部分のBPも置いておきます
(AAIの6x6チェストMODとCyberSynのみで読み込めるはず)

0eNrNV0GOmzAUvYuXFbSxgSGw6x26q0bIAWdiDdjINtNGIxadqEeoeoAuuqjUTdVdpR6GVW9RGxKGSWDGqK3STRQb+5n33v/fn1uwyitSCsoUiG8BTTmTIH59CyS9Yjg3c2pbEhADqkgBHMBwYUZS4fTaXdNcEeFSJonQf0DtAMoy8hbEsL50AGGKKko6wHawTVhVrPTKGPZQAtPcTTeYMnd/qANKLvVOzsz5Gs310PPAAVsQo+B5oE/JqCBptwDVzgk46sGVaHEVL8dQ4R7zIeKFA7QMSvA8WZENvqFcmB2SsCxRPGkhQbzGuSQOEARnyVrw4jCvRKWn20Fizi1JlpyIeUOFqlqmBz3bFe4rUNft6ax7GWn2QPNzJQhhQyFpBmJPr6Uirahqh6i+NNu1Nx0RAEa08foz062ekFvmprxYUYaV5nkqEoomhJ+QCQuqNgVRNE3044z2NNZUSGUvxUsTTZIYDAOkSZkQhaEDeEnEgeGLScEEyY7lCgZymDGMtGAOQJP6oqMN/kO9odF7RGK/53Ivhp3I/kl0/1uRCU43ozq78KHOz/RWXqmymg3+pwH9qD9TDgT3Qb6n9IT+4XR9GXegK30TtfJEkT7VdKXl2rstaFWp2pBeDKqmMwst5+k1yVyZcyUHiKgH7AS0TA/PLrovBpeArnJXG+WaEj5WX/eahk9X7NAe1LMGXdqDQmvQyBr0kNQWoCYGbFFDe1Roj2pvFUT2qPZeQc8e1d4s6FujwhluBfaoM9yyTyw4wy37zIIz3BqkVrU6NBzTYRWNFRJ4n0oYU/cNFmTDK0mmLffQX69maPFETzvyMn0zujy+LPzxy+LwIgXPSMLXyeBmhXOuRwSPGhKEpmjB+bS8s9FaPN5nTZJE80nC/4Yk8qZoefNpLc5G67hHRv4ULX82LRidjZZ3TCuYohXMp7U8G63OHP1t3n7Ox4OvfwfkeEV03wma3Yfm7lOz+9Lc/Wx2P359ft+8+9rcfW9235rdRz2v197oBrS7HZbQDyMULi+ihbfw6/o3DiiREQ==

動作原理としては以下の通りです、今回は画像の石に例えてます

  1. 列車の到着時にCyberSynの制御装置が必要分のマイナスの出力をしているのを取得する(今回は石-2000とする)

  2. それを駅についている列車に積んでいる荷物を出力する機能と合算する(CyberSyn制御装置の出力と駅を結線する)

  3. 1と2の合計出力を-1倍にして正の数に直してフィルターインサーターに入れてフィルターにセットする(石-2000の出力が+2000となり、それがインサーターに入ってフィルターにセット)

  4. 石が積まれるたびに貨物の正の数が増えて-2000が減っていく、例えば貨物の石が1000なら残り-1000になる

  5. 貨物の数が規定数を上回ればマイナス信号を上回り正の数となる(石2000積載から-2000で0、少し超過した場合は2005で+5とかになる)

  6. 算術回路から出る信号が逆にマイナスとなり、インサーターのフィルターが外れてストップする。(0なら未出力、+5とかなら-5になりフィルター解除)

といった仕組みです、文字で書くと複雑に見えますが回路自体は-1倍して正数に戻してフィルターインサーターに入れてるだけです。

貨物ロックスロット数について

この入力がある駅は貨物スロットが指定した数だけ少なく処理されます。

Xのほうがロック数、!は優先度設定なのでまた後で説明します

例えば2とセットした場合、貨物車両に満杯に積める状況でも2マスは必ず開けるように調整されます(貨物スロットが40いっぱい積める状況でも、38スロットしか使用しないようになる)。
あえて積載数を削る理由があるの?と思うかもしれませんが、主にインサーターがアイテムを掴みっぱなしになる現象の防止のためのバッファとして使います

上4つが石を搭載しようとしたが貨物が満杯で積み込めなかった
そのまま発車されてしまい掴みっぱなしになっている

この掴みっぱなしになったアイテムは次に来た列車に問答無用で放り込みます
一種類のアイテムしか提供しない駅なら別に問題ないのですが、1駅で複数種提供する駅の場合は、次に来た列車の取りに来たアイテムが別のアイテムの場合に異物混入となり配送先のラインを詰まらせる原因となります。

そこでロック数を利用して空きを確保してあげれば、規定数を満たしても掴み過ぎた分はロックして確保した空きスペースに投入されるため、インサーターが掴みっぱなしになる現象を防止できます。
後は非アクティブ条件にチェックを入れることで、空きスペースに投入中に発車されないようにインサーターが動作停止したことを確認させるようにしましょう。(設定を忘れると積み込みが間に合わず発車されて掴みっぱなしになることがあります)

優先度設定について

先ほど出た!マークの数値が優先度です、ここの数値が高い場所を優先して配送するように設定できます。
副産物やリサイクル品は優先度を高く設定して優先利用、足りなくなったら掘削機産を使う、といった感じに使えます。
搬入、搬出両方に優先度設定が可能です。
優先度はマイナス値も有効です、優先度が一番高い全ての駅の要求が満たされた段階で次の優先度段階の配送が開始されるといった挙動になります。

先ほど説明に使用した施設はスクラップをリサイクルして鉱石に戻しています、掘削機よりここの鉱石を優先して利用してくれないとリサイクル場が詰まってしまいます。
なので優先度を設定して優先利用しています。

複数の液体を1つの駅で搬入、搬出する

ポンプにはフィルター機能がないので、1つの駅で複数取り扱う場合は工夫が必要です。
といってもやり方は固体より簡単で、搬入したい場合は駅が積み荷のプラス値
搬出したい場合は制御装置がマイナスの要求値を出力しているので、これをポンプの動作条件に指定するのみです。

原油処理場の例
貨物が水なら水のプラス値が出るので左のポンプのみが
原油なら同じように右のポンプのみが作動する

搬出したい場合は、CyberSynの制御装置が必要分のマイナスの出力をしているのでこうなります。

石油ガスが欲しい列車が来たときは制御装置が石油ガスのマイナス値を出力する
これで左のガスのポンプのみ稼働し荷積みが行われる。当然右の軽油のポンプは動かない。

応用すれば1つの駅で搬出、搬入の両方の作業をさせることが可能です。

浄水所(mod)の例、ここは汚水をろ過して水に戻し、再利用する区画である。
汚水を持ってきた場合は汚水プラスが出力されるので上のポンプのみ動作
水が必要な列車が来た場合は水マイナスが出力されるので下のポンプのみ動作
今回はいずれかが負の数(緑*)を条件にしているが、これでも問題なく動く

提供と要求を一か所で行う場合は、ステーションの設定を中間設定にするのも忘れないようにしましょう。

1つの駅でアイテムを搬入、搬出する。

液体ポンプの項の説明で察しがついたかもしれませんが、アイテムの場合も条件をインサーターにセットしてあげるだけで可能です。
ポンプとの違いとしてインサーターはフィルターがかけれるため、搬出したアイテムが取り出したチェストへ逆流しないようにする仕組みはインサーターのフィルターリストを調整することで行えます。そのため搬入側に回路は必要ありません。
インサーターが掴みっぱなしになると搬入にきた列車に搬出品を放り込む可能性があるため、非アクティブを追加するのと貨物ロックスロット数の利用は忘れないようにしましょう

原子力発電所の例、1つの駅で燃料棒の搬入、使用済み燃料棒の搬出を行う
使用済み燃料棒を回収しに来た列車はマイナス信号を出すので、その信号に合わせて搬出する。
搭載した数が持っていきたい数を上回った段階でマイナス信号がなくなる為、インサーターがストップする。
取り出した使用済み燃料棒をチェストに戻さないよう搬入側はフィルターをかけること、忘れると一生出し入れし続けるループがおきます。

ステーション制御モードを利用してしきい値(優先度)の個別設定をする。

今回は電池工場を例とする(硫酸-50000、鉄板-4000、銅板-4000、しきい値25000)

硫酸のしきい値はタンク貨車1台の満杯の25000でセットしたい、しかしこのままだと鉄板、銅板もしきい値25000となり、要求数をオーバーしているため配送が始まらない。
しきい値を鉄板、銅板基準に2000あたりまで下げれば強引に解決できますが、それでは硫酸が2000減るたびに搬入されて供給頻度が多くなってしまい渋滞の原因になってしまう。
こんな時はステーション制御の出番です。

隣に置いて品目を『正数』で入力、するとしきい値として個別に上書きされる。
これは真横に置いておくだけで機能する、CyberSyn同士の結線の必要はない

画像の場合は鉄板と銅板のしきい値が2000に上書きされ、無事搬入されるようになります。
また、ステーション制御に入れた品目に優先度を付ければ、その品目だけ優先度が設定されます。

複数種提供してる駅から複数種要求した時の仕様

1つの駅に複数種のアイテムがあり、受け取り先も複数種求めている場合は1度の配送でまとめて行います。
ある程度輸送先の用途等が決まっているならば、1つの駅にまとめておくと電車の本数が減らせます。

モジュールを製造するため、このような要求をした
この時に要求された基板工場のチェストに両方入っているなら、以下のようにまとめて持ってくる

応用:チェストと組み立て機を直接接続し、1駅で材料搬入と完成品搬出を行う

ここまで解説した回路を全て使いこなせれば、物流ロボットでいう『要求チェスト⇒組み立て機⇒供給チェスト』のような構成が1駅で実現可能となります。
サイエンスパックや宇宙カプセル等、組み立て機が1~2台あれば十分な物をネットワーク上に乗せる時に、コンパクトに済ませることができます。
例として私の製造サイエンスパック駅を紹介します。

6種類のアイテムを要求し、液体(プラズマストリーム)が混在している
さらに不要な副産物としてジャンクデータカードが出てくるのを処理しないといけない
流量は必要ないため、動かす組立機は1台でOK
組み立てた完成品を駅のチェストに戻すことによる1駅で搬入、搬出する構成
フィルターのブラックリストで搬出する完成品の逆流阻止
搬出はフィルター制御なのでジャンクカードとサイエンスパックを個別搬出可能
液体と固体に別々のしきい値を設定
まさに今までの解説の集大成である

注意点として、組立機から完成品をチェストに戻すのは回路制御で入れ過ぎないようにしましょう。
これを行わないと、駅内がサイエンスパックで満杯になった状況で材料を搬入に来た場合、『搬入品がチェストが満杯で入らない⇔完成品を取り出そうにも搬入にきた列車が邪魔で取りだせない』のループでデッドロックを起こします。

貨物制御モードを利用してLoaderを使った複数種のアイテムの搬出

あらかじめ駅で荷積みを行う予定の分だけ貨物のフィルター処理をやる機能です、複数種の貨物を取り扱う駅で利用します。

こんな感じに鉄板が置いてある駅の線路に、インサーターのように貨物部に隣接して置く
ここに鉄板を2000要求する駅から列車がやって来る
すると、このように鉄板を積むスペースをフィルターで確保する
鉄板2000=20スタックなので20スタックだけフィルターをかけている
未フィルターのスロットをバーにチェックを入れると、空きスロットをブロックする
スロット数のロックを無視してブロックするため、複数種の積み込みを行うときはインサーターが掴みっぱなしになるため注意
とはいえ、掴みっぱなしの放り込みもブロックしてくれるので機能的には問題ない

フィルターインサーターを利用した方法で複数種のアイテムは取り扱えるため、基本的にフィルターは掛けれるがネットワークによるフィルターの変更ができないLoaderでの混載防止で利用します、実際に使うと以下の通りです。

Loaderを利用した複数種のアイテムの搬出駅の例
鉄鉱石のみの要求に銅鉱石と石が積みこまれないようブロックしている
上で書いた基板工場のような複数種⇒複数種の運搬でもちゃんと対応可能

注意点として、空きスロットのブロックは搬入の時に動作しません。
素材を入れて完成品を取り出すような搬入、搬出を両方行う駅でLoaderを使う場合、素材を入れてる間に完成品をどんどん放り込まれてしまいます。
この場合は貨物制御モードを使わず、以下のような回路を組んで対応しましょう。

  • 列車到着時にマイナス信号がきたら、積み込みのためにコンベアを動作させるようにコンベアに回路をセットする。マイナス信号がない場合は搬入に来た列車なので動作させない。

  • 列車からの信号がプラスになったらコンベアは停止する。次にきた列車にLoader内に残ったアイテムを混入させないよう、非アクティブ条件と貨物スロットのロックを駆使してLoaderの中のアイテムを積み切る。

  • 荷積みしたアイテムを搬入路に吸い込まれないよう、搬入側のローダーにもフィルターを付けておく

上で説明したフィルターインサーターの貨物混載防止のための設定や、複数のポンプの制御方法とかの応用で作れます。

列車が出す欲しいアイテムのマイナス信号に合わせてコンベアを動作させて積み込む
積み込みが終わるとコンベアは停止するが、この時loaderの中に4個アイテムが残る
これを残すと次に来た列車に入ってしまうので、貨物ロックと非アクティブで残さず積む

知っておくと便利な情報編

必須ではないですが、覚えておくと応用でさらにやれることが広がりそうなものを纏めてあります

列車のネットワークを細かく区分する

提供、要求駅にネットワークの変数を入れると、細かいネットワーク設定ができます。(デフォルトだと-1のネットワークがセットされている、これは全ネットワーク所属扱い)
SEでの使用例ですと、コアマイニング産の石や鉄鉱石だけ詰まらせないように埋め立て地の変換場に持っていく、みたいな設定ができます。

こんな感じにネットワークの信号を追記するとこの駅は『Aの1』の個別ネットワークとなる
画像は鉄板要求駅にセットしたため、『Aの1』と『未設定』の鉄板からしか配送されなくなる
未設定の場合は全ての個別ネットワークに所属扱いになる点に注意

例題のようなコアマイニング詰まり防止の運用をする場合は

  • コアマイニング駅:A1を入れる

  • 埋め立て地処分駅:A1を入れてコアマイニングとネットワークを一致させる

  • 掘削駅:A2を入れてA1の埋め立て地駅に送られないようにする

この設定なら、普通に使いたい駅は未設定にしておくことで、A1コアマイニング駅もA2掘削駅も利用できるので問題なく動作します、後はコアマイニングの余剰品を処分する駅だけ搬入優先度を下げておけばOKです。

駅のネットワークに関しては二進数によるビット値でグループ分けが行われます
つまり1だと01、2だと10で単一のネットワークとなりますが
3だと11なので1と2の両方に所属するような扱いになります
4だと100で第3の独立ネットワークとなりますし、7だと111なので1,2,4のネットワーク所属になります
-1だと全てのビットが1となるようで、全ネットワーク所属扱いになります(デフォルトがこれ)

二進数のビットで1の位置が一致するネットワークに所属すると覚えときましょう。
この機能に関しては『Cybersyn Combinator』modが優れていたような気がするので、わからないなら直感でいじれるこちらを利用するのも手です。

なお、ネットワークAとBの両方に所属、みたいなことはできないです。
どうしても似たようなことをやりたい場合は、AネットワークからBネットワークに受け渡すHub駅を作ってやるしかないです。

異なる編成数の列車が混在する時の挙動

ここまで機関車1-貨物1で解説してきましたが、「掘削機の鉱石を駅に運ぶのは機関車1-貨物2でやりたい」みたいな事もあると思います。
この場合は異なる編成数の駅(1両と2両)ができるわけですが、混在していても問題なく動作します。挙動は以下の通りです。

  • 機関車1-貨物1:2両用提供駅から荷積みが可能であり、2両用駅に荷卸しも行える

  • 機関車1-貨物2:1両用提供駅にも1両用荷積み駅にも入ることはできない

つまり、長い車両は自分より短い駅に入ることができませんが、短い車両は自分より長い駅に侵入が可能ということです

なおインサーターの配置で何両用か判断しているため、ダミーのインサーターを置けば2両用が1両用の提供駅に入ることも一応可能です。
または自動許可リストをOFFにすることでも一応入れるようになります。

実は自動許可リストは列車が何両だけではなく、何両目にあるのはタンクなのか貨物車なのかで見てくれています
貨物が先頭にあるような変則的な車両構成であろうと、適切な位置にインサーターやポンプがあればちゃんと仕事をこなします。

「貨物-機関車-タンク」という配置で2種類を同時要求する実験
これでも対応する位置の提供駅と対応する車両を用意してあげれば遂行してくれる

列車砲については車両としてカウントされていない模様。機関車1-貨物1-列車砲1みたいな編成の場合は、機関車1-貨物1用の駅に入れます

専用GUIでネットワークの状態を確認する

デフォルトだと何故かOFFになってますが、設定をかえることで専用のGUIでネットワークの状態を確認することが可能です。

設定⇒MOD設定⇒スタートアップタブにひっそりいる
これをチェックしたらCtrlとTで開けるようになる
このような画面が出現して、今運んでいるものや在庫が要求数以下の物などが見れるようになる
見れるだけで設定変更などの操作はできない

駅のネットワーク設定ミスに気が付きやすくなるのでONにしとくと便利です、SE環境ならサーフェス別で見ることもできます。
K2SE環境でクラッシュしたことはないので常時ONでもいいかも?他MODとの競合で起きるかもしれません。(未調査)

簡易トラブルシューティング

よくある警告の解決策です。

警告表示解説

在庫もある、要求先も空いている、それを配達ができる列車がない、といった状況で出ます。
『列車の本数が今のままだと足りなくて仕事が回りきらないから増やして』って意味です。

動ける電車はあるのに出てるんだが?って時は駅のインサーターの配置が認識されていない(modで斜め掴みができる場合でも線路に隣接して置く必要がある)、デポのネットワークにちゃんと登録されてないことが多いです。デポに関しては一回手動⇒自動にしてデポに入れなおしてやると解決すると思います


ロケット燃料を例にした項目で説明した通り、設定したしきい値が高すぎて配達できない場合この警告が出ます、『1回でしきい値の量を積める車両はうちにないよ』って意味です。
スタック数が少ない物は設定に注意しましょう。


なんらかの理由でデッドロックして止まってます(デフォルトだと5分列車が動かないと出る)
複線にしていてもデポバイパスモードで供給と要求が近すぎると、お互いがお互いの場所に入りたがって詰まることがあります
しきい値を上げたり、複線を増設して流れを改善したり、駅に車両制限をかけて極端に集まらないようにすれば大体解決します

貨物がない駅で在庫以上に要求しており出発しなくなるケースが一部の状況で発生することがあります。
もし該当するエラーが起きている場合、後述の方法で修正しましょう。


他にも様々な要因でエラーを吐くことがありますが、これ以外のエラーは限定的なのでエラー文を読めば解決できると思われます

エラーを吐いた列車は一回手動にして待機駅に入れなおすことで復帰します。運転中に車両の長さをかえたり駅を解体することによってエラーを吐いた場合も、エラーを吐いた車両は手動運転に切替わっているだけなので一回待機駅に放り込んで再起動をかけることで復帰可能です。

また、しきい値と要求値の設定を間違えた駅が1つでもあると、その間違えているアイテムの輸送全てにエラーが波及します。
ちゃんと設定してるのに輸送してくれない・・・といったケースは大体どこかの駅が間違えているので、専用GUIを利用してエラーを吐いてるアイテムにフィルターをかけて問題点を見つけましょう。

貨物がない駅に居座る問題

立往生発生パターンの1つで、積載する貨物が足りず提供駅に居座り続けてしまうことがあります。
以下のようなパターンで起こる問題です

  1. 供給駅に4000個の鉄板があり、鉄板を2000個要求する駅が2つ、そこから2000枚回収したい列車が2両やってくる

  2. 1両目が2000枚回収しに来たが、インサーターの動作により少し超過(2008枚回収)して発車してしまう

  3. 2両目が2000枚回収に来るが超過分8枚を持っていかれて2000に満たないため、列車は駅で8枚分の補充を待つ

  4. そこに鉄板が供給され続けるなら補充分を積んで出ていくので問題ないのだが、ランディングパッド等の補充間隔が非常に長い駅、搬入搬出を一か所でやる駅で材料の補充が不可能な場合はずっと居座り続けて最終的に立往生の警告が出る

この問題は貨物の積載数と制御装置のマイナス出力を利用してフィルターを制御した方法を応用することで、列車に積み過ぎた余剰分をチェストに戻すインサーターを付けることで解決できます。


イリジウムインゴットを取り出すランディングパッド駅の例
余剰分を戻す逆向きのインサーターを1つ用意し、積みすぎた物を戻す
戻す時はスタックサイズ制御を駆使することで素早く戻すことができる
バッファーとしてチェストを挟む場合、超過分を戻すスペースをパッドに埋められないように搬出作業中はチェストへの移動を停止させるようにしておこう

貨物がない駅に居座る問題(2両以上の場合)『Universal Station』

CyberSyn Project公式で紹介されている『Universal Station』が『貨物がない駅に居座る問題』の2両以上の編成に対応したバージョンです。
公式でブループリントが配布されていますので、これをベースに解説します

初見じゃ何の回路かさっぱりわからない

動作原理としては、貨物制御モードがフィルター分のマイナス要求数を出すのを利用し、正負反転する今までの解説でやってきた方法でスタックフィルターインサーターで積み込み。
超過して積んだ分は真ん中のフィルターインサーターで在庫に戻す設計になっています。
やってることは貨物がない駅に居座る問題で解説した手法とまったく同じです。ステーション制御でやっていたことをワゴン制御の制御回路を使って一両毎にやってるということです。

・・・と解説した所で「貨物に積まれた数はどこで取得しているの?」と気が付いた人は素晴らしい洞察力です。
答えは中央の条件回路がメモリーセル回路になっており、フィルターインサーターが掴んで入れた数をカウントすることで何個積まれているかチェックしています
赤線がメモリーセルのカウント用の配線、緑線がフィルター設定用の配線となっており、条件回路の出力部分でカウント側(赤)からフィルター制御側(緑)に数を受け渡してます。
そして渡されたカウント数(ワゴンの積載数)とワゴン制御のマイナス信号要求数を合算し、計算結果をフィルターインサーターのフィルターにセットしています。
最後に列車が発車すると列車IDのTがなくなることでチェックマークが届かなくなり、それによりメモリーセル回路もリセットされるといったカラクリです。

コピーして4両用に増設した物で緑基板と赤基板を8000個ずつ要求して実験
まずは1両に1種類のフィルター制限がかかる
そしてスタックフィルターインサーターが貨物のフィルターにあわせてセットされる
最終的に前2両は緑基板2000x2、後ろ2両は赤基板2000x2で荷積みが完了した
スタックインサーターが掴みすぎて超過した分を倉庫に戻すインサーターが真ん中にあるので、何度やっても緑8000赤8000ぴったり配送される

配車が間に合わなくなってきた時の問題

バニラやちょっとしたmodくらいなら起こらない問題ですが、K2SEのような年単位でプレイする超大型MODで高SPMを出す場合、拠点が超巨大化していくと電車のレスポンスが悪くなってきます(しきい値を下回ってもなかなか配車されない)
これはMODの設定で上限解放をすることで解決可能です、ただしUPSに負荷がかかるようです(筆者の環境では体感できず)

秒ごとの更新は60回(1tick)が上限
あとは列車制御システムの更新率(更新のタイミングで何台まで配車できるか)を上げる
この設定だと1秒に720台まで配車できる

終わりに

長い解説文を最後まで読んでいただきありがとうございます。
もし今回の解説でCyberSyn導入のきっかけとなれば幸いです。
LTNの導入で挫折した方でもCyberSynは取っ掛かりやすい構造になっているため、もしよければ挑戦してみてください。(筆者もLTNは一回挫折しCyberSynから回路の世界に入りました)

ついでにLTNもCyberSynも『制御装置にマイナス入力されているアイテムにチェスト内部のアイテムを加算して最終的にプラスになるよう、供給駅から要求駅へアイテムを輸送する』基本構造はまったく同じです。
そしてLTNは『フィルターインサーターを使って特定のアイテムのみ搬出する』で紹介した部分をデフォでやらせようとするので、回路が苦手な人に導入難易度が高く感じるのではないかと思われます。
もし今回の解説でCyberSynの構造が理解できれば、LTNも割とすぐ理解できるかと思います。最終的にLTNの導入を考えている場合でも、練習でCyberSynに触れてみるのをオススメします。


この記事が気に入ったらサポートをしてみませんか?