【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は始めてだ。
回路好きな工場長さんは是非プレイしてみることをおすすめする。
この記事が気に入ったらサポートをしてみませんか?