見出し画像

Factory Town(ver1.12.2):計算ブロックを利用した貨物運搬の制御

最近、ELDEN RINGを横目にひたすらFactoryTownをやっている。
見降ろし版のSatisfactoryの様なゲームだが、これがかなり面白い。

貨物の運搬を細かく制御できる「計算ブロック」というシステムがある。
これの使い方がちょっと難しかったのでメモ代わりに。


1.やりたいこと

蒸気機関車で運搬された貨物(今回は石炭)を駅A・駅Bにて荷下ろしする。

この際、駅Aのストレージに石炭が500個貯蔵されている場合のみ
荷下ろしを中止し、駅Bへ向かうように設定したい。


2.必要なもの

メニュー→計算ブロックより、以下の3つのブロックを使用する。

・インベントリセンサー
・数字(なくても可)
・演算


3.設定方法

初めに、上記3ブロックの役割について解説する。

【インベントリセンサー】
インベントリと論理リンク(後述)させることで、インベントリ内のアイテムの個数を数値として内部保持することが出来る。

【数字】
他の計算ブロックと論理リンクさせることで、そのブロックが保持している数値を表示することが出来る。

【演算】
他の計算ブロックと論理リンクさせることで、そのブロックが保持している数値とプレイヤーが指定した数値を比較し、その結果をシグナルとして出力する。

以上を踏まえ、今回の例であれば

駅Aのインベントリ内の石炭の数値をインベントリセンサーで保持

数字ブロックにリンクし表示させる

演算ブロックにリンクし、保持した数値を「500」と比較

500未満であった場合のみシグナルをレールアンローダーに出力する
(=500以上になった瞬間シグナルが止まり、荷下ろしが中止される)

こういう流れになる。


4.実践

実際にブロックを設置していく。

①駅Aの近くにインベントリセンサーを設置する。
その後、インベントリセンサーを左クリック→駅Aを右クリックすることで
論理リンクが形成される。

論理リンクが形成されると、このように黄色い矢印が表示される

この際、画面右上に表示されるメニュー内の「設定値」が
駅Aストレージ内の石炭の数と一致していればOK。


②続いて数字ブロックを設置する。
上記と同様、インベントリセンサーを左クリック→数字ブロックを右クリックする。

その際、上記画像のようなメニューが出るので「プロセス値」を選択する。

ここで注意したいのが、センサーと数字ブロックを論理リンクした瞬間には
数字の表示が変動しないということ。
数字が変動するのは、駅A内の石炭の数に変動があった時のみである。
0のまま動かない!等と騒がず、次の列車の到着を大人しく待とう。

正しく論理リンク接続できていれば、列車が通過し、荷下ろしがあった瞬間に
数字ブロックの表示が更新されるはず。


③同様に演算ブロックを設置する。
上記と同様、数字ブロックを左クリック→演算ブロックを右クリック。

またメニューが表示されるので、「左のプロセス値」を選択。

その後、画面右上のメニュー内の
「数学関数」を「未満」に、
「右の値」を任意の数字(今回は500) に設定する。

これにより、

左の値(インベントリセンサーから出力された値)と
右の値(自分で設定した値) を比較し、
左の値<右の値だった場合 にシグナルが出力される

ようになった。

ここまで出来たら、演算ブロックとレールアンローダーを論理リンクさせる。

「アクティブ状態の設定」を選択。

作業としては以上になる。


④最後に動作確認をしよう。

現在、駅A内の石炭は403個。
500個未満なので…
レールアンローダーが作動し、機関車が通過した瞬間に荷下ろしが行われ、
数字ブロックの表示が470個に増加した。
何度か繰り返す内に石炭が520個まで増えた。
この瞬間、レールアンローダーの動作が停止するので…
次に機関車が通過した時、駅Aでの荷下ろしは行われない。
余剰分の石炭が駅Bにて荷下ろしされた為、目的を達成したと言える。

5.まとめ

セールで積んでいたFactory Townだが、本当に面白い。
上記の処理はまだまだ初歩的なものだが、もっと複雑なロジックも組めるようなので継続してプレイしていきたい。

(間違いがあったら指摘して頂けると助かります)

以上



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