見出し画像

【Factorio】回路ネットワーク解説: メモリーセル編

「組立機から8個だけアイテムを取り出すインサータを作りたい」
とあるMODで遊んでいると、そんな状況になった。
実現するためには「メモリーセル」という仕組みを使う必要があるので再勉強してみた。

メモリーセル

メモリーセルとは回路ネットワークにおいて、信号の数値を記憶する装置である。

算術回路の入力を「それぞれ×1」もしくは「それぞれ+0」とする。出力は「それぞれ」
インサータを算術回路の入力と出力の両方に繋げる。設定は画像のとおり。
これでインサータが掴んだ数の累計が、算術回路から出力される。

ティックカウンター

この仕組みを応用するとティックカウンターを作成できる。
上記の画像では、インサータの代わりに定数回路を繋いでいる。定数回路からは「T=1」が出力されている。
FactorioのFPS(1秒あたりのフレーム数)は60なので、1/60秒ごとにカウンターが進むことになる。
しかしこれはカウンターが進み続けるので使い勝手が良くない。

秒数カウンター

算術回路ではなく条件回路を繋ぎ、上記の設定にすると1秒(60フレーム)ごとにカウンターがリセットされる。累積された「T」が60になった時、出力は行われず、定数回路の「T=1」のみ入力される。これによりリセットが実現できる。

条件回路の出力をインサータなどに繋いで、作動条件を「T=59」とすれば1秒に1回だけ動くインサータになる。T=60にはならないので注意。

組立機から8個だけアイテムを取り出すインサータ

ここで主題に戻ろう。このような状況となるシナリオを考えてみた。

  • 木材が貴重となる世界で、1時間に1個しか生産できない

  • 組立機を使い、木材1個から規格外の凄い石炭が100個生産できる

  • 石炭も貴重なので、プラスチックの生産には8個だけしか回せない。残りは他のアイテムの生産に回す。

  • 凄い石炭の組立機に複数のインサータを置き、プラスチックの生産ラインには8個だけを送り出す。

凄い石炭を8個だけ取り出す回路

単純なメモリーセルで実装した。カウンターの上限は8個以上ならなんでもいい。

インサータの設定は作動条件を石炭8個未満としている。スタックインサータのスタックサイズは8の約数である1,2,4,8いずれかに設定する必要がある。

この設定により石炭を8個だけ取り出すことができる。しかし1時間後に次の木材が来た時に、そのままだと動作しないのでリセットする必要がある。

石炭カウンターのリセット

リセットのタイミングは組立機に木材が入る時、すなわちインサータが木材を掴んだタイミングとした。これを条件回路に流す。

インサータが木材を掴んだ信号を受け、石炭1として出力し、算術回路へ流す。

算術回路は石炭1から石炭100に変換している。これは条件に合う大きい数字ならなんでもいい。これを先程のメモリーセルへ繋ぐ。

メモリーセルは石炭20個以上の信号でリセットされるので、インサータが木材を掴んだタイミングでリセットされることになる。
これで木材を1個入れるごとに石炭を8個出す回路の完成となる。

Ultracube: Age of Cube

今回は木材でのシナリオで解説したが、そんな状況は存在しない。しかし実際Ultracubeで似たようなシチュエーションに遭遇し、今回の記事を書くことになった。

Ultracubeでは世界に一つしかないキューブを使って様々なアイテムを生産する必要がある。
蒸気、鉄板のような基本アイテム、レアアースの精錬など必要な生産物は色々あるがキューブは一つしかない。複数の製作機にキューブを回して生産するのだが、生産量の管理には回路が欠かせない。

このMODは最強の回路ゲーだ。
私は様々なMODを遊んだが、これほどまでに回路を必要とするMODは始めてだ。
回路好きな工場長さんは是非プレイしてみることをおすすめする。

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