![見出し画像](https://assets.st-note.com/production/uploads/images/122953195/rectangle_large_type_2_b8d2fe7fea3eda461b0755281cddf792.png?width=1200)
究極の全自動マリオを徹底的に解説 その7「毎回結末が変わる全自動」
直接的な説明をしようと思ってたんですけど、
よく考えたら大事なことを説明してなかったので、
今回はそちらを。
この記事では「スーパーマリオメーカー」のことを「マリメ」、
「3Dワールドスキン」のことを「3Dスキン」、
「中間ポイント」のことを「中間」、
土管に入った先のゾーンのことを「裏」、
対してスタートやゴールがあるゾーンのことを「表」
と表し、それぞれのゾーンにある中間のことを
「表中間」「裏中間」と表します。
また、「オブジェクト」「存在」という言葉を
その4にて説明しております。こちらも使用します。
存在限界数のことは「リミット」と表します。
そして今回から、ピンクコインに1番から10番までの
番号を振り、1番コイン、2番コインと呼ぶようにします。
前回までで、50回を超える復活回数を可能とする
全自動の作り方を説明してきましたが、
あの説明だとマリオのやられ方は
ワンパターンになりがちとなります。
復活に重きを置いているので仕方ないのですが、
では結末を変えるにはどうすれば良いでしょうか。
これには2つのハードルを超えなくてはいけません。
1つは、前回で言うところの
「裏中間からスタートし、表中間を通過してデス」
の部分に変化をつけなければいけない、ということ。
もう1つは、
「8番コインがカギになる周回」と
「9番コインがカギになる周回」と
「最後にゴールする周回」の3つの中で、
同じピンクコインで脱落するルートに変化をつける、
ということです。
まずは前者から考えましょう。
こういう時に考えるべきは、
「そのルートと他のルートで違う物は何か」です。
全自動ゆえ、操作で変化を付けるということは
もちろん不可能です。
では、違う物は何か。1つしかありません。
そう、ピンクコインです。
表中間を通過した後に、ピンクコインで分岐をすれば、
その後に変化を付けることができます。
ここで気をつけなければいけないことは、
「ピンクコイン分岐を行うと、ピンクコインを取得してしまう」
ということ。そして、
「中間を通過するとピンクコインの状況を記憶してしまう」
ことです。
つまり、ピンクコイン分岐を行った後は、
絶対に中間を通過してはいけないということになります。
そもそも前回の内容で
「裏からスタート時は表中間を通過し、
1番コインで分岐をしてからデス」
という風になっていたと思いますが、
これをどう実現するのかを書いていませんでした。
表からスタートした場合は1番コインに向かい、
そこから順々にピンクコイン分岐をしていくのですが、
裏からスタートしても表中間を通過し、
同じように1番コインに行くとすれば、
その流れで2番コインに向かってしまいますよね。
それを防ぐためにはどうすれば良いのか。
これは色々方法があるかもしれません。
僕は作成が分かりやすいという意味で、
裏からスタートした時にはオンオフを変えるようにしています。
これならば簡単に1番コイン後に脱落させられます。
そして話を戻しますと、
今の流れでの1番コイン後の脱落をやめ、
次のコイン分岐で脱落した時にデスするようにすれば、
各結末を変えることができます。
これで裏スタート時は結末を変化させられるようになりますた。
表スタート時は、色々変化を付けた後に
裏中間を通過してデス、という考え方ならば、
そこまで難しくなく実装できると思います。
問題は「裏中間を通過した後の結末を変える」
ことができるのかどうかです。
これは当初、
「もう一度ピンクコイン分岐のルートを通す」
という方法を考えていました。
事実、この方法でも結末は変えられると思います。
ただし、この方法にはいくつかの問題があります。
その1つは、
「1回目の通過時は裏中間、2回目の通過時は脱落からのデス」
という仕様を各分岐に仕込むことの難易度の高さ。
他にも
「後半のピンクコインはカギになることを考慮しないといけない」
ということがありました。
これが想像以上にややこしく、
つまり7番コインで分岐した場合は、
結末のために8番コインで分岐することになりますが、
大きな流れの1周目ではカギに変わってしまうから、
取ることができません。つまりここで分岐はできません。
でも、大きな流れの2、3周目では、
ここで分岐しないと結末に変化を付けられません。
というように、
「もう一度ピンクコイン分岐を行う」は
現実的では無い、周回数を減らさざるを得ない、
ということになってしまうと気づきました。
なので、今回取った考え方は
「ピンクコイン分岐の進行度でその他の場所を変化させ
その変化したルートに後で向かわせることにより、
ピンクコイン状況を反映した結末に向かわせる。」
というものです。
具体的には、マリオが下を通ったら反応するツララを使用しました。
ピンクコイン分岐で脱落する場所までの通路を
ツララと壊せるブロックによって切り開きます。
逆に脱落した後の通路は通れないようにしておきます。
そして、裏中間を切ったあと、
改めてその通路に向かうことによって分岐させます。
この方法であれば、
不用意にピンクコインがカギに変わることを考える必要がありません。
ドッスンを使う方法も考えましたが、
ツララはオブジェクトとして数えられないので、
多用しても問題がないということで、
ほぼすべてをツララによってまかないました。
ちなみに、この通路のことを今後「脇道」と呼びます。
ということで、これでピンクコイン分岐による、
結末の変化は付けられるようになりました。
次は大きな3つの周回での変化の付け方です。
先ほども書きましたが、
変化を付けるには「何が違うのか」を考えなければいけません。
大きな周回の違いとはなんでしょうか。
それは9番コインと10番コインの取得状況です。
逆に言うとこれ以外の違いはまったくありません。
なので、ずばりこの2つで分岐をすることになります。
では、どのタイミングで分岐させるのか。
これもまた先ほど書きましたが、
「ピンクコイン分岐を行うとそのピンクコインを取得する」
という現象があります。
せっかく取ったか取ってないかで周回数を増やしているのに、
ここで取ってしまうとすべてがパーです。
ということは。
9番10番コインの分岐は
中間を通過した後にする必要があるということです。
裏スタートの場合はすぐに表中間を通過しますから、
その後ということになります。
ただし、1番コインの分岐には
「もし取った時は10番コインを取得後に裏中間を通過してデス」
という要素があるので、
裏スタート → 表中間 → 1番コイン分岐
の後に行うこととなります。
表スタートの時は、ピンクコイン分岐の後に裏中間を通過するので、
その後になります。
さて、ではこの9番10番コイン分岐では何をすれば良いのでしょうか。
ルートを変えるとかデスをするということは当てはまりません。
ここまで述べたように、
結末は各ピンクコイン分岐の後に変化させることになるので、
ここでは、変化の手助けとなることをさせることになります。
この「手助け」はこれまた色々考えられる所ではあります。
ただし、3パターンの場合分けが必要と考えると、
おのずと可能性は限られると思います。
今回のコースでは、「マリオの状態」を変えることとしました。
1周目はキノコ、2周目はファイアフラワー、3周目は無取得。
ちなみに他の候補としてはネコ、ハリボテクリボー、
あかPOWボックス、その他のかぶりものがあります。
ブーメランやビルダーはファイアフラワーと同義となります。
スターやPスイッチも候補とはなりえるでしょうが、
時間の制限などのために多少扱いづらいと思われます。
実は当初は、ファイアマリオではなくハリボテクリボーを
想定していました。というか、途中まで作っていました。
しかし、ハリボテクリボーは敵が反応しなくなるという特徴で、
これがツララに影響してくることが分かったので、
ファイアマリオに変更した、という経緯があります。
ということで、マリオの状態を変えることができました。
これでどうやって結末を変えるのか、
マリオが大きいか小さいかで変化するルートを作ります。
これによりチビかそうじゃないかで振り分けられ、
さらに1回ダメージを負わせることにより、
でかマリオはチビ状態に、ファイアマリオはでか状態になるので、
そこでもう一度振り分ける、ということになります。
理屈の上では、これですべてのルートで変化を付けることができます。
しかし、ここでさらなる問題が浮かびます。
この大周回の9番10番コインの分岐と、
最後の周回に起こるメインルートの9番コインの分岐、
あと裏スタート1番コイン分岐時に起こる10番コインの分岐、
これらは同じ分岐なのでしょうか。
違います。
大周回の分岐はマリオの状態を変える分岐、
メインルートの分岐は10番ないしカギのルートかデスへの分岐、
裏スタート1番はデスか裏中間かの分岐。
つまり、ここで初めて現れるのは
「1つのピンクコインに2つの分岐」という荒技です。
これもまあ、色々なやり方はあるかと思いますが、
今回のコースではシンプルに
「右向きの分岐」と「左向きの分岐」を用意しました。
そして「左向きの分岐」がマリオの状態に関わるようにしました。
実際、2つ以上の意味を持つピンクコイン分岐は、
相当デリケートな仕組みとなります。
僕が過去作から多用しているのは、
頭上の下向き土管から横向きバネを落とす仕組みです。
地面はチクワにしておきます。
この場合、右からやってきた場合は左へ、
左からやってきた場合は右へという風になり、
2つの意味を持つ分岐が比較的楽に作ることができます。
これは今回の10番コインに使用している仕掛けです。
逆にチャレンジングだったのはもう1つの9番コイン分岐で、
これはシンプルに土管から通常のバネが出てくる仕様で、
右から来ると左の土管から、左から来ると右の土管から
バネが出るか出ないかで分岐するという仕掛けです。
作ってみるまで、作成可能か五分五分だと思ってましたが、
なんとかまともに動いてくれたので
ちょっとした感動は味わえました。
ただし、相当なデリケートさも牙を剥きました。
途中で全然まともに動作しなくなり、
盤面全体を1から見直す、という作業を数回やらされました。
この両方向のピンクコイン分岐が、
地味な注目ポイントとも言えると思います。
問題は実はこれだけではありません。
この9番10番コイン分岐は、
「コイン分岐はそのコインを取得する」
ということから、大周回の後半で
「そもそもこの9番10番コイン分岐を行ってはいけない状況」
が生まれるのです。
具体的には8番コインを取得する状況。
8番コインがカギに変わる大周回1周目は良いのですが、
2周目3周目は、
「9番10番コイン分岐をしたなら8番コイン分岐はしてはいけない」
「8番コインを取得するなら9番10番コイン分岐をしてはいけない」
という状況となります。
なので、ここは丁寧に1つ1つの状況を解きほぐさないといけません。
まず、10番と9番がどちらもフィールドにある状態、
これは大周回3周目ですが、
その場合は10番で分岐をした後、9番の分岐をスキップするようにします。
つまり
「10番がある」
「10番がない、9番がある」
「10番がない、9番もない」
の3つの場合分けにしておきます。
これがどういう利点を生むか、それはちょっと後回しにします。
少しだけ状況を基本ルートとして整理します。
表スタートの場合は、
ピンクコイン分岐 → 裏中間 → 9番10番分岐 → 脇道
裏スタートの場合は、
表中間 → 1番分岐 → 9番10番分岐 → ピンクコイン分岐
これが通常時の流れとなります。
表スタートの場合、8番コインを取った後に9番10番分岐に行くと、
その分岐中にカギになってしまいます。
なので、この基本ルートとは違うルートを構築しないといけません。
ここまで来ると、そんなに状況が多くないので、
個別に1つずつ見ていく方が良いと思われます。
1:大周回1周目、7番まで(と9番と10番)を持っている
ピンクコイン分岐 → 8番分岐でカギ化 → 裏中間通過してデス
2:大周回2周目、7番まで(と10番)を持っている
ピンクコイン分岐 → 8番分岐 → 表中間通過してデス
3:大周回2周目、8番まで(と10番)を持っている
ピンクコイン分岐 → 8番分岐 → 9番分岐でカギ化 → 表中間通過してデス
4:大周回3周目、7番までを持っている
ピンクコイン分岐 → 8番分岐 → 裏中間通過してデス
5:大周回3周目、8番まで持っている
ピンクコイン分岐 → 8番分岐 → 9番分岐 → 表中間通過してデス
6:大周回3周目、9番まで持っている
ピンクコイン分岐 → 8番分岐 → 9番分岐 → ゴールへ
「表中間通過してデス」は、実際には
「裏中間、表中間の順に通過してデス」となります。
3の表中間エンドは、カギ化しているので再出発の意味となります。
なんならカギ化はピンクコインの取得状況をリセットするので、
中間を切る必要はありません。
それとは違い、2と5が表中間を通過して終わっていることに注目です。
なぜ裏中間では無いのか。
裏中間スタートは、まず9番10番分岐に突入します。
つまりこの2つのシチュエーションは、
次が裏中間だと9番10番分岐中にカギ化してしまうのです。
すなわち、ここを裏中間エンドにすると、
裏スタートのシチュエーションが2つ増える代わりに3と6が消えます。
周回数としては変化が無いので、
どちらを選ぶかは作成者次第、ということになります。
僕は表スタートを本筋と捉えているので、
つまり9番10番分岐をあくまでサブと捉えていたので、
この流れを選びました。
そして、この避けられない状況が
周回数の減少につながります。
前回の全自動の復活数は52でしたが、
今回はこの状況から、復活数は50が最大となります。
さて、表スタートはすべてを洗い出せました。
これを踏まえて裏スタートも書き出してみます。
裏の基本は「表中間 → 1番分岐 → 9番10番分岐 → ピンクコイン分岐」
前半3つは変わることがありませんので、
最後のピンクコイン分岐から記していきます。
分かりやすいように、
表スタートと数字をシチュエーションで揃えます。
1:大周回1周目、7番まで(と9番と10番)を持っている
ピンクコイン分岐 → 8番分岐はせずにデス
2:大周回2周目、7番まで(と10番)を持っている
ピンクコイン分岐 → 8番分岐はせずにデス
4:大周回3周目、7番までを持っている
ピンクコイン分岐 → 8番分岐 → デス
5:大周回3周目、8番まで持っている
ピンクコイン分岐 → 8番分岐 → 9番分岐はせずにデス
3と6が無いのは、先の説明通り、
2と5が表中間エンドとなっているからです。
そして、9番10番分岐の先ほどの利点というのは、
ここの4と5に現れています。
もし9番10番分岐で9番を取ってしまっていたら、
この4と5の区別は付けられません。
なぜなら8番分岐でカギに変わってしまうからです。
この1周を増やすために、9番を取らないということが必要なのです。
裏スタート時には「分岐はせずにデス」
という状況がここに来て生まれます。
後半はそもそもそこに辿り着いている時点で、
オンリーな状況が生まれている、ということです。
僕自身、この考え方に行き着くまでに
だいぶ長い時間を要しています。
ピンクコイン分岐が売りのコースで、
あえてそれを拒否するという発想は
なかなかそこに至れませんでしたが、
なんとか考えを整理できました。
ということで、
理屈だけを説明するとこんな感じとなります。
各回の結末を変えるには
「中間を通過する前を変える」と
「中間を通過した後を変える」があり、
後者は前者の何倍もややこしい、ということです。
あと、
「1つのピンクコイン分岐に2つのルートが来る」
も言葉の説明は簡単ですが、実装は結構大変。
これはここではなかなか伝えづらいものがありますね。
次回は、今度こそ本編の説明に入っていけるかな、
と思って降ります。
この記事が気に入ったらサポートをしてみませんか?