時間がどんどん溶ける工場自動化ゲーム「shapez」で、何でも自動で作れる工場を作る方法まとめ
- tomo1109_Reffi
- 72103
- 149
- 107
- 8
じゃあどうするかというと、ないならとりあえず土台を仮置きして、積層が終わったあとで土台部分は切り取り、ゴミとして捨てる、ということになる。
2023-03-25 18:36:37積層するときは土台がないと下の層に落ちるのに、切断するときは土台がなくなっても下の層に落ちずに宙に浮くのは釈然としないところがあるんだけど、ともかくshapezというゲームの仕様としてこうなっている。
2023-03-25 18:49:33いや、「落ちる」と解釈するのが良くないのか?積「層」なので、積層時に干渉する部品があれば上に積めるし、なければ積めないだけであって、落ちているわけではないのか。
2023-03-25 18:54:40ここまでが前提なんだけど(長い)、要約すると、最終的な成果物には必要のないゴミを作って、それを捨てるという工程が必要になる場合がある、と。
2023-03-25 18:59:27で、万能工作機械を作ることを考える。まずは、「ゴミを作ってそれを捨てる」ことを考えない、不完全な工作機械で考えてみる。
2023-03-25 19:06:071:課題の図形を4つの層にばらす 2:各層を4つの象限にばらす 3:16個の部品の、色と形状を解析する 4:解析した色と形状で、16個の部品を作る 5:部品を層ごとに組み立てて4つの層を作る 6:4つの層を下から順に積層する これで完成。
2023-03-25 19:12:54しかし、完全な工作機械を作るにはこれでは足りない。どのような場合に「ゴミを作ってそれを捨てる」工程が必要になるのか、判定する必要が生じる。
2023-03-25 19:15:29ただ、問題は、shapezにはAND,OR,NOT,XORの論理ゲートしかないことなんだよな・・・単純なループ処理すら実装するのは大変そう。
2023-03-26 02:33:54判定ロジックを組まなければいけないんだけど、shapezにはプログラミング言語的なものはない。論理回路だけでどうにかしなければならない。
2023-03-25 19:49:47shapezではこの形って作成不可能なのか?工程に二分割切断が必須だから、1箇所の土台に対して2個の浮いた図形を積層することはできない?もし左下にも土台があれば、1対1が2ペアなので簡単にできるけど・・・ pic.twitter.com/lDnXyQ6kmM
2023-03-26 00:36:42これはできる。この場合、土台と浮いた図形が1対1になるよう、相手をそれぞれ分けないといけない。 pic.twitter.com/nzT2OSsSkR
2023-03-26 00:41:14理屈の上ではできそうな気がしてきた。実装するのめっさ大変そうだけど・・・ twitter.com/tomo1109_Reffi…
2023-03-26 02:00:22土台にできる部品は2通り考えられる。(それぞれ下層に部品が存在するのであれば。)ただし、shapezの仕様上、「切断機は縦にしか切断できない」という縛りがあるので、回転させなくても切断できるパターンを選べるのであれば優先的に採用する。
2023-03-26 02:15:41そのまま切断できるパターンを選べない(下層のその位置に部品が存在しない or 既に別の部品の土台として使われている)場合は、90度回転させて切断して、逆方向に90度回転させるというめんどくさいパターンを選ぶことになる。
2023-03-26 02:17:43Shapez.io - This MAM can handle floating layers! youtu.be/YvLFeIhf16Y @YouTubeより
2023-03-26 03:07:18shapezの制約上、Floating Layerを作成する際には、「1つの土台に対して1つの空中部品しか作成できない」ということなのであれば、右半分と左半分でそれぞれ土台と空中部品を1対1にして、最大2つまでしか作ることができない筈。 twitter.com/tomo1109_Reffi…
2023-03-26 03:18:48なので、右半分と左半分を別々に作成して、最後に結合するという方法でも、Floating Layerを使用する全てのパターンが実現できる筈、ということになるのか。目から鱗だ・・・
2023-03-26 03:21:35左右で半分に分けたらそれぞれのロジックは全く同じになるから片方はコピペで作れるし、土台と空中部品のペアは最大でも1つになるから、土台がもう使われているか判定する必要なんてなくなるもんな。判定のロジックもかなり簡略化できる。
2023-03-26 03:26:18左右半分に分けてしまえば、判定ロジックを簡略化できるというか、大半を省略できるなこれ・・・ twitter.com/tomo1109_Reffi… pic.twitter.com/F33LTD1Vla
2023-03-26 03:37:53で、こんな感じで、空中に浮かぶ側の部品から、土台にできる部品を探索する。 pic.twitter.com/RDotYAqEJr
2023-03-26 02:10:37ここまで自分で気付いたんだから、左右半分に分ける発想まで後一歩といえばまあそう言えなくもないんだろうけど、実際には自力でやろうとしたら、散々こねくり回して時間をかけた後でようやく気付くんだろうな・・・ twitter.com/tomo1109_Reffi…
2023-03-26 03:44:34Floating Layerを考慮しない不完全なM.A.M.をワイヤレイヤ上で仮想的に作成して、課題をアンスタックしてスタックし直してみたときに元の形状と一致しなければ、Floating Layerが使われているということになるのか。それを元に回路を切り替えていると。
2023-03-26 04:09:52Shapez.io - BUTTMAM Series Pt. 1 - Introduction + What is a TMAM? youtu.be/6Zep8xgTGxc @YouTubeより
2023-03-26 04:51:28