ワイヤー技術による自動生産工場編、第二段階。
実質第三段階にも突っ込んでいる編。
オペレーター図形7(ランダム課題)
一枚シェイプに始まり、一部欠けたやつ、半分のやつ、と来て、次なるレベル9、これ。
二枚積層、そして色付けパーツあり。
いきなり難易度跳ね上がりすぎ。
一枚の色付け一色、一枚のパーツ別色付け、一枚の色あり/なしパーツ混合 ...and so on って間に挟んでほしい少しずつの成長過程をすっとばしているふざけんな。
もしかしてあれか、そういうのはマイルストーンをこなす間のサブタスクで作ってくるべきだったのか。ないわー。
ひとまず一旦冷静に。
今、必要なことは何か、整理。
・着色セクション
・色液剤供給源
・混色セクション
・積層セクション
・二枚目シェイプ成形工場
大まかにこんな感じ。
だがそれぞれにフィルターとかルート分岐とかを挟まなければならないので、単純にこれらを並べるだけでは済まない。
とりあえず簡単な液剤供給源の設置から手を付けるか。
って始めたのだけど、色々いじくる中で、既存のグローバルデータ送信所ではこの先良くないと気付いた。
これ。
グローバルレシーバーで受信した課題の1つの図形データを四片分割して、パーツ別のデータをそれぞれグローバルトランスミッターで飛ばす、というやつ。
1枚シェイプではこれでよかった。
が、今後複数枚シェイプになっていくと、グローバルトランスミッターのチャンネルが足りなくなる。
ここまでのプレイでは北東パーツ(1):赤、南東パーツ(2):緑、南西パーツ(3):青、北西パーツ(4):黄と設定。色をチャンネルとして送受信データを区別するシステムだが、選択できるチャンネルは8色分しかない。
シェイプは最大4枚積層 ✕ 4パーツで、これまでのやり方で行くと16チャンネルが必要になる。しかもこれは最低値であり、ルートの分岐等でもっとチャンネルの融通が必要になる可能性もなくはない。数に余裕があるに越したことはない。
改善策を考える。
何がだめか。
要するに大元のデータを直で4パーツ分割~4チャンネルに振っているのが馬鹿。
馬鹿を踏まえて試行錯誤の末、積層図形を一枚ずつのデータに分け、1枚のデータを1チャンネルに送信。それを受信した先でパーツ別データに分割すればいい。という結論に達した。
ざっくり図解
積層図形を一枚ずつ別のチャンネルに飛ばす(これはまだ2枚分)
1枚のチャンネル(赤)データを受信先でパーツ別に分割
それはそれ。置いといて。
色液剤供給源を設置していく。
マゼンタ(赤青混色)駅
シアン(青緑混色)駅
イエロー(赤緑混色)駅
ホワイト(三色混色)駅
混色機を挟む分、これらの色は供給に少し時間がかかるので先に作った。
三原色は後回し。
液剤供給地域マップ
効率? 辞書から「こ」のページを捨てろ。
液剤出力判定
液剤列車の着駅、七色の入出力を管理する「配色選別」と名付けた区域の一角。
グローバルデータを受信し、1枚シェイプのパーツ別に「この色の着色が必要かどうか」を判定し、必要なら流し込み(下から上)、不要なら止める、というセクション。
基本的には前回作っていたシェイプ構成パーツの要不要を判定するやつのコンベアを液剤パイプに変更しただけ。
7色✕4パーツの28ライン分あり、この時点で処理能力様は呆れておられたとか。
パーツ着色判定バイパス
これは難易度高い。高かった。
ここで何をやったか自分の考えをまとめるためにこれを書いているようなもの。
シェイプのパーツには7色(赤/緑/青/シア/マゼ/黄/白)のいずれかが着色されたもの、の他に、無色のもの、そして着色すべきパーツがない(欠損、空)パターンがある。
着色機は、コンベアから入力されたシェイプに、パイプから入力された液剤を着色するマシン。液剤が空の場合には、無色シェイプを出力するのではなく、シェイプは着色待ちのまま止まり、何も出力しない。
よって、無色パーツが必要な場合には、着色機をバイパスするルートが必要になる。
「着色なら上に出力、無色/空ならバイパス」という設定をワイヤーで組めばいい。と安易に考えたが、そうではなかった。
この『無色』というのが曲者で、液剤のある7色なら着色できるが、『無色』はデフォルトの色であり液剤が存在しない。『空(カラ)』=パーツの欠損と『無色』は、同じ「着色の必要が無い」状態であっても実質別物なのだ。
パーツは存在するが塗るべき色が無い。『無色』は「無色という色が塗られた状態」と言い換えてもいい。「液剤の存在しない灰色が塗られた状態」でもいい。
この点の認識と、その条件分岐をワイヤー設計に落とし込むのに物凄く苦しんだ。軽く投げ出したくなった。
考え抜いた末に結果としてできあがったのが先の画像の構成。
要するに、全部の条件分岐を1マス土台に収めようとするから無理がある。この世界は広いのだ。クソだだっ広い。視野狭窄は死に等しい。
分岐土台を増やして、結果。以下。
色有無判定
パーツに着色が必要なら上、不要ならバイパス。
無色か否か判定
塗るべき色が無色以外なら上、無色ならバイパス。
ここに至るまで物凄く頭を悩ませていたところ、適当に触った論理回路の「イコール」端子(2つの入力を比較した正否の値を出力)に設定項目があり、それで比較条件を変更できることがわかって解決できた。
こんなのゲーム内マニュアルに書いてないもの。っつうかこのワイヤー関連ツールや自動化工場作成の云々自体が初歩的な大雑把な説明に終わっており、こんなもんよほどの shapez マニア以外さじ投げるっつうの。早期アクセス版だからやむなしか。正式版ではもっと説明が入るだろうか。
一から十まで書いてほしくはないけど、せめてツールの基本的な使い方は全部細かく書いてほしい。正式版では是非。正式版出る頃は自分には不要になっている気がしないでもない。
着色セクション
特別なことはやってない。1マス14機。
もっとがんばれば、三階も使えばもっと増やせるだろうが、パイプとコンベアの取り回しに試行錯誤やら長考するくらいなら適当なところで妥協してさっさと次いこう的な。
着色済みパーツ判定バイパス
隣接パーツの有無を判定し、有るなら上に流して2パーツ積層へ。無いならバイパスして 1/4 パーツのまま1枚シェイプ合成セクションへ。
これらを4パーツ分コピペ&調整して、一枚シェイプ成形ルートはほぼ完成。
ここまでで6時間くらいかかった。
三原色を加えて、レインボー駅完成。
線路がUターンしているのは、とにかく発着駅間が超長距離なので、着駅折り返しじゃなくて、2枚目シェイプ用の液剤駅へ連絡で行くようにした。同じ要領で三枚目、四枚目シェイプ駅にも乗り継いで、要するに
「発」→「1」→「2」→「3」→「4」→「着」/「発」→・・・
という環状線にできる。できるっていうか現時点で3&4が無いだけで既に環状ではある。つもり。
そして色々整理した。
要らない用済み施設を撤去して、オペレーター7工場全体をガーッと上(北)の方、渦の近くに持ってきた。大規模コピペが重くてゲームが固まりかけて落ちるかと思った。
これで予定の半分。1枚目工場のみ。
2枚目工場は、単に同じ施設群をコピペしていけばいいだけだが、PC 的にも自分的にも処理能力がもういっぱいいっぱいで、コピペだけだが、あんまり続ける気がしない。
1枚目も実のところ本当にちゃんとランダム発注に対応して動くのかどうか、どこかミスっているような気がしてしかたがない。確認するためには現在のレベルをクリアしなければならず、そのために2枚目工場が必要で。
一旦どうにかもう少しコンパクトな設計を考える必要があるか。でも必要素材と液剤の入力ソースはコンパクトにしようがない。
いつしか、つづく。可能性はある。