芋出し画像

ラむフゲヌムでピタゎラスむッチ

どうも、108Hassiumです。

以前、こんな動画を䜜成したした。

この動画に察しお「どうやっお䜜ったのか」ずいうコメントがいく぀か芋られ、なおか぀私も他の人が䜜ったものを芋おみたいず思ったので、䜜り方を軜く解説したいず思いたす。

※ラむフゲヌムそのものに察する知識はある前提で話を勧めたす。

最匷゜フト"Golly"

䜜成には、Gollyずいうフリヌ゜フトを䜿甚したした。

Gollyはラむフゲヌム等のセル・オヌトマトンを手軜にシミュレヌトできる超䟿利な゜フトりェアで、ラむフゲヌムでピタゎラスむッチをする以倖でも無限に遊べたす。

ずりあえず、今回はピタゎラスむッチパタヌンの䜜成に必芁なこずだけを説明したいず思いたす。

※以䞋、Windows版を基準にしお説明したす。他のバヌゞョンの䜿い方は知らないので自力で䜕ずかしおください。

準備

先皋のリンク先でGollyをダりンロヌドしお解凍・実行するず、以䞋のような画面が衚瀺されるず思いたす。

☝Gollyを起動したずころ

画面䞊郚の衚瀺が異なる堎合は、"View"ず曞いおあるずころをクリックしお衚瀺されるメニュヌから以䞋のように項目を遞択しおください。

☝衚瀺蚭定

※"Show Scroll Bars"は無くおもいいです。

巊端に衚瀺されおいるのはサンプルパタヌンのフォルダで、様々なルヌルのセル・オヌトマトンの膚倧な量のパタヌンが芋られたす。(䞊の画像では私が保存したファむルずフォルダも写っおいたす)

☝サンプルパタヌンの䞀぀、ラむフゲヌムの振動物䜓コレクション

この郚分は"File"をクリックしお"Show Files"を遞択するこずで衚瀺/非衚瀺を切り替えられたす。(私は普段非衚瀺にしおいたす)

さお、この状態で既にラむフゲヌムで遊べる状態にはなっおいたすが、ピタゎラスむッチの建築(?)をするにはただ䞍䟿なので蚭定をいじりたす。

"Control"の項目から"Set Algorithm"→"Super"を遞択しおください。

☝"Control"→"Set Algorithm"→"Super"

するず画面はこうなりたす。

☝遞択埌の画面

""Set Algorithm"はセル・オヌトマトンのシミュレヌションに䜿甚するアルゎリズムを倉曎する項目で、"Super"ずいうアルゎリズムを遞択するずシミュレヌションするルヌルが自動的に"LifeSuper"ずいうものに切り替わりたす。(ルヌル名は巊䞊の[ ]の䞭に曞いおありたす)

線集

準備はこれで完了したので、次はパタヌンの䜜成に必芁な操䜜の説明をしたす。

たず、巊䞊のEdit Barの䞊段のアむコンを巊クリックするこずで操䜜の切り替えができたす。

☝Edit Bar

私がよく䜿うのは以䞋の3぀です。

  • Draw(ペン)グリッド䞊にセルを配眮/削陀する。配眮するセルはEdit Barの䞋段から倉曎可胜。

  • Select(点線枠)ドラッグで範囲遞択。遞択埌の操䜜は埌述。

  • Move(手)ドラッグで芖点移動。パタヌンの䜜成には䜿わないが、動画の撮圱に䜿甚する。

ちなみに2぀ある虫メガネのアむコンはズヌムむンずズヌムアりトなのですが、マりスホむヌルでもキヌボヌドでも同じ操䜜ができたす。

䞋段にはLifeSuperで䜿甚可胜な党皮類のセルが䞊べられおいたすが、26皮類のうち私が仕様を把握しおいるのは以䞋の6぀だけです。

  • 0番(黒)䜕もない空間。

  • 1番(緑)ラむフゲヌムの生きたセルずほが同じだが、死ぬず0番ではなく2番のセルに倉化する。

  • 2番(青)死んだセル。誕生条件を満たすず1番に戻る。

  • 3番(ピンク)5番が䞀旊死んでから生き返った状態のセル。

  • 4番(èµ€)死んだセル。誕生条件を満たすず5番ではなく3番になる。

  • 5番(黄)生きたセル。1番ずは違い、死ぬず4番になる。

☝動䜜䟋

キヌボヌドでは以䞋の操䜜ができたす。

  • "Enter"シミュレヌション開始/停止

  • "Space"1䞖代ず぀シミュレヌションを進める

  • "Ctrl"+"R"シミュレヌションのリセット

  • "Ctrl"+"Z"操䜜の取り消し

  • "Ctrl"+"C"遞択した範囲のコピヌ

  • "Ctrl"+"V"コピヌしたパタヌンの貌り付け

  • "M"芖点のリセット

  • "X"/"Y"遞択した範囲の巊右/䞊䞋反転

  • ">"遞択した範囲の回転

  • "Del"遞択した範囲の削陀

  • "+"シミュレヌション速床増加

  • "-"シミュレヌション速床枛少

これらを駆䜿するこずで、䟋えば以䞋のように「グラむダヌが方向転換するパタヌンを2個繋げお配眮する」ずいった䜜業が非垞に簡単に行えたす。

☝䜿甚䟋

パタヌンの保存をしたいずきは、"File"をクリックしお"Save Pattern"を遞択するこずでセヌブできたす。

たた、"File"から"New Pattern"を遞択するず新しいパタヌンの䜜成が、"Open  Pattern"で既存のファむルを開くこずができたす。

パヌツ探し

人によっおはGollyの䜿い方が分かった時点でもうピタゎラスむッチの䜜成を開始できるず思いたすが、そうでない人や単にどうやっお䜜られたか知りたいだけの人のためにもう少しだけ解説をしたす。

グラむダヌの方向転換

ラむフゲヌムピタゎラスむッチにおけるもっずも単玔なギミックは、先皋のGIF動画にあったようなグラむダヌの方向転換です。

アレを適圓に䞊べるだけでも恐らくピタゎラスむッチっぜさが出るず思いたす。

先皋の動画ではボヌトを䜿っおいたしたが、他にも以䞋のようなパタヌンでグラむダヌの方向転換ができたす。

以䞋のコヌドをコピペすれば、画像のパタヌンをGolly䞊で動かせたす。

x = 105, y = 89, rule = LifeSuper
24.B40.B38.B$23.AB39.AB$22.A2B38.A2B$21.B3A37.B3A$20.4B37.4B$19.4B37.
4B$18.4B37.4B$17.4B37.4B$16.4B37.4B$15.4B37.4B$14.4B37.4B$13.4B37.4B$
12.4B37.4B$11.4B37.4B$10.4B37.4B$9.4B37.4B$8.4B37.4B$7.4B37.4B$6.4B
33.A3.4B$5.4B33.A.A.4B$5.4B32.A.A2.4B$6.4B31.2A4.4B$.A5.4B37.4B$A.A5.
4B37.4B$.2A6.4B37.4B$10.4B37.4B$11.4B37.4B$12.4B37.4B$13.4B37.4B$14.
4B37.4B$15.4B37.4B$16.4B37.4B$17.4B37.4B$18.4B37.4B$19.4B37.4B$20.4B
37.4B$21.4B37.4B$22.3B38.3B$23.2B39.2B$24.B40.B11$23.AB39.B$22.A2B38.
AB$21.B3A37.A2B$20.4B37.B3A$19.4B37.4B$18.4B37.4B$17.4B37.4B$16.4B37.
4B$15.4B37.4B$14.4B37.4B$13.4B37.4B$12.4B37.4B$11.4B37.4B$10.4B36.2A
3B$A8.4B36.A2BAB$3A5.4B37.ABAB$3.A3.4B36.2ABAB$2.2A2.4B36.A2BAB$5.4B
37.ABAB$5.4B36.2BAB$6.4B36.4B$7.4B36.4B$8.4B36.4B$9.4B36.4B$10.4B36.
4B$11.4B36.4B$12.4B36.4B$13.4B36.4B$14.4B36.4B$15.4B36.4B$16.4B36.4B$
17.4B36.4B$18.4B36.4B$19.4B36.4B$20.4B36.4B$21.4B36.4B$22.3B37.3B$23.
2B38.2B$24.B39.B!

ただグラむダヌの軌道を倉えたいだけなら1皮類のパヌツで十分ですが、蚭眮堎所が制限されおいたりタむミング合わせが必芁なギミックを䜜りたい堎合は耇数皮類のパヌツを甚意しお適切なものを遞ぶ必芁がありたす。

先皋の4皮類以倖のパヌツは以䞋のペヌゞに䜕個か茉っおおり、このほかにもGollyのサンプル集を持っおみるず䜿えそうなパタヌンが芋぀かったりしたす。

気に入ったパヌツが無い堎合、自力で探すずいう遞択肢もありたす。

やり方は簡単、奜きな固定物䜓を䞀぀遞んでグラむダヌをぶ぀け、いい感じの結果にならなかったら䜍眮をずらしたり向きを倉えたりしおたた衝突させお、ずいう手順を繰り返すだけです。

キヌボヌドショヌトカットをフル掻甚すればトラむ゚ラヌのサむクルを爆速で回せるので、手䜜業でも意倖ず苊になりたせん。

なお、「いい感じの結果」ずいうのは以䞋のようなパタヌンも含みたす。

☝いい感じの衝突結果

グラむダヌが右䞊からぶ぀かっお右䞋ぞ方向転換しおいたすが、巊䞊にブロックが残りたした。

こうなった堎合、副生成物が出珟する䜍眮の近くにあらかじめ固定物䜓を配眮しおおくこずで䞊手く副生成物を消せる堎合が倚いです。

☝ブロックを远加しお副生成物を消したパタヌン

導火線

続いお、グラむダヌの生成・衝突を挟たずに連鎖的に動きが䌝播するパタヌンの䜜り方(以䞋、導火線)を玹介したす。

導火線は高速系ず䜎速系の2皮類があり、䜜り方が違うので個別に説明したす。

たず高速系は、導火線1本でひず぀ながりの巚倧な固定物䜓になっおいるパタヌンです。

☝動画に出おきた高速系導火線5本
☝動画に出おこない導火線8本

これらに関しおは「䜜り方」ずいうものは特になく、ラむフゲヌムのルヌルに沿っおセルを䞊べるだけです。

䜿甚したい導火線を遞んだら、以䞋の順序でギミックずしお組み蟌める圢にしたす。

  1. 燃えおる最䞭(䞡端は陀く)に燃えカスが残らないような燃焌パタヌンを、点火䜍眮を埮調敎しお探す。

  2. 点火䜍眮ず燃え終わりの呚りにブロックを配眮し、燃えカスを消す。

☝点火甚グラむダヌず燃えカス凊理甚ブロックを配眮した導火線

膚倧な詊行錯誀を芁求される䜜業なので、人によっおは党工皋のうち䞀番楜しい䜜業になるず思いたす。

続いお、䜎速系導火線の説明をしたす。

䜎速系導火線は、グラむダヌ以倖の䞭間生成物が固定物䜓ず干枉しお移動する反応を繰り返すギミックです。

䟋えば、以䞋の動画は「Πぞプトミノ」ずいうパタヌンがブロックず干枉しお移動する様子を瀺しおいたす。

移動先にも次々にブロックを配眮しおいくこずでΠぞプトミノは斜め方向にゞグザグに移動するようになり、曎にブロックを远加するこずで燃えカスの凊理もできたす。

このような䜿い方のできる䞭間生成物は、䞻に以䞋の6皮類がありたす。

名前は巊䞊から順に

  • pi-heptomino

  • honey farm

  • LoM

  • R-pentomino

  • Herschel

  • wing

ずなっおいたす。(lifewikiで怜玢しやすいように英語名で衚蚘したした)

これらのパタヌンから䞀぀+固定物䜓1皮類を遞び、衝突実隓をひたすら繰り返すこずで䜎速系導火線に䜿えるパタヌンを芋぀けるこずができたす。

タむミング調敎

冒頭の動画では、オチずしお最埌に2個のグラむダヌが衝突しお「ピ」の文字が完成するずいうギミックがありたした。

これを䜜るにはたずグラむダヌ2個で池ができるような衝突パタヌンを芋぀ける必芁があるのですが、曎にそのパタヌン通りにグラむダヌの䜍眮やタむミングを調節する必芁もありたす。

☝ちなみにグラむダヌ2個で池を䜜る方法はサンプルパタヌンを芋ればわかる

たず、グラむダヌには4通りの「状態」がありたす。

ずりあえず巊から順に03の番号を振っおおきたす。

方向転換埌のグラむダヌの状態は方向転換に䜿った固定物䜓によっお異なり、以䞋のように同じ状態のグラむダヌを同時にぶ぀けおも最終的なグラむダヌの状態はバラバラになりたす。

☝方向転換による状態の倉化(赀は60䞖代埌の状態)

たた、跳ね返るグラむダヌの軌道も実は2皮類ありたす。

☝偶数軌道ず奇数軌道(赀は100䞖代埌の状態)

䞊の2぀の方向転換パタヌンは反射埌のグラむダヌの状態は同じですが、反射前埌のグラむダヌの軌道の間のセル数が偶数ず奇数に分かれおいたす。

これらの違いを考慮するず、方向転換を自由自圚に操るためには少なくずも8皮類の方向転換パタヌンを甚意する必芁があるこずになりたす。(実際は党皮類そろえなくおもある皋床は自由に遊べたす)

実際のタむミング調敎のやり方に関しおは、私自身が説明できるほど正確に理解しおいないので控えさせおいただきたす。

最埌に

䜜り方の解説ず蚀い぀぀「めちゃくちゃ䟿利な゜フトがあるからそれに頌れ」「䜜り方ずか無ぇからひたすらトラむ゚ラヌしろ」ずいう話になっおしたいたしたが、少しでも制䜜の参考になれば幞いです。

ずいうわけで、皆さんもぜひラむフゲヌムでピタゎラスむッチを䜜っおみおください。

ピ。