メイドイン俺:リズムゲー解説:「N番目」編

=前置き=

情報共有のために、「N番目でタッチするリズムゲー」の作成方法をメモしておく。


ここでは、「パチパチ3人衆」のノリで「人間ウェーブの4番目を担当する」というゲームにする。(人間ウェーブ:スポーツとかの観客に見られる、順番にジャンプしたりするあれ。正式名称は知らない)

=構造=

構造はいたって単純で、

  • 最初の3人
    • 自動でジャンプするやつら
  • プレイヤー
    • タッチでジャンプするやつ
  • 判定
    • ちゃんとしたタイミングで押したかどうかの判定

の5つだけで済む。ジャンプする4人はコピペ&少しの改変で済むので、実際にはもっと楽。

=作成手順=

=最初の3人=

最初の3人で必要なのは、「指定したタイミングでジャンプする処理」と「着地する処理」だけ。リズムによって「ジャンプする処理」の個数は変動するものの、「着地する処理」は一つでOK。


アニメは「地上(通常時)」と「空中」の2つ用意しておく。


ジャンプの方は

  • 「指定時間になった」時に
  • 「上へまっすぐ移動(初速)」+「ステージ全体をピョンピョン(自由落下)」+「SE:ジャンプ」+「アニメ:空中」

でOKで、
着地の方は

  • 「指定範囲(床)にぶつかった」時に
  • 「着地位置に瞬間移動(ストップでも良いが、位置が若干ずれる。しかし、ストップにしておけばコピペは楽。)」+「アニメ:地上」

でOK。


最初の1人分を作っておき、あとはそれをコピペして「初期位置」「ジャンプするタイミング」「着地後の移動先」を変更すればOK。

=プレイヤー=

メインの判定は別のもので行うので、ここでは「タッチしたらジャンプする」という処理さえ入れればOK。(実際には、あとで成功判定を少し追加するけど)


これも上の3人のコピペをベースに出来て、着地は(着地後の移動先を変更すれば)そのままでOK。
ジャンプは少し変更が必要で、

  • 「画面タッチ」+「アニメが地上である」時に
  • 同じ処理(初速+自由落下+SE+アニメ)

でOK。


これだけで、見た目はもう完成。
下の成功判定の際に「プレイヤー」はもう少しいじる。

=判定=

残っているのは「成功したかどうか」の判定。これに必要な要素は、

  • 指定した範囲内でタッチされたか(成功)
  • 指定した範囲外でタッチされたか(失敗)
  • 指定した範囲内で2回以上タッチされたか(失敗)

となる。


これはアニメを用意すればわりと簡単に実現できる。


まず、以下のアニメを用意する。

  • NGアニメ
    • 1コマ。最初のアニメもこれ。
  • OKアニメ
    • 3コマ。


考え方は、

  • NGアニメの時に画面がタッチされたら失敗
    • タッチ待ちの時以外は常にNGアニメ
  • OKアニメの時に画面がタッチされたら成功
    • OKアニメはタッチタイミングより少し早めのタイミングで再生し、タッチタイミングの少し後で再生終了する
  • OKアニメの時にタッチされたらNGアニメに変更する
    • 範囲内でも2回以上のタッチはNG扱いにする
  • NG時にタッチされたら「しっぱい」を呼ぶか「スイッチ:オン」にする
    • 「スイッチ:オン=失敗」ということにして、後から参照できるようにもできる

という感じ。


これを実際に適用すると、

  • 初期状態
    • NGアニメで画面外にセット
  • タッチタイミングより少し早めにOKアニメを再生(必要なら複数個用意)
    • 「タッチタイミングの1メモリ前」の時に
    • 「OKアニメを再生:1回だけ:最速」
  • OKの時にタッチされたらアニメを戻す
    • 「アニメがOK」+「画面タッチ」の時に
    • 「NGアニメを再生」
  • NGの時にタッチされたら失敗にする
    • 「アニメがNG」+「画面タッチ」の時に
    • 「しっぱい or スイッチ:オン」
  • OKの時にタッチされなかったら失敗にする
    • 「アニメが再生終了」の時に
    • 「しっぱい or スイッチ:オン」+「NGアニメを再生」

となる。プレイヤーが全部で何回タッチする必要があるかによって「OKアニメの再生」は増やす必要がある。といっても、この構造では2回が限度。


あとは、「プレイヤー」あたりに

  • 「時間が最後付近」(+「"判定"のスイッチがオフ」)の時に
  • 「スイッチ:オン」

にして、「プレイヤーのスイッチがオンなら成功」という風に成功条件を設定すればOK。上で「しっぱい」を呼んでいれば「判定」のスイッチを見る処理は不要。


以上で「指定したタイミングでプレイヤーにタッチさせるゲーム」は作成完了。

=あとがき=

メイドイン俺でリズムゲーを作る場合のもっとも簡単と思われる例について書いてみた。この構造だと「プレイヤーが3回以上タッチするようなものは別の処理が必要」とかの問題があるものの、最初に作るリズムゲーとしては悪くないと思う。


他のリズムゲーをコンテストに一応応募したので、もしそれが受かってるようならそっちについても書いておかなきゃなーという感じ。テーマに合ってるかがちょっと微妙だったりするし、バンブラで落ちた経験もあるので、まぁあまり期待しない方向で。
でも「楽譜」の概念とかはいつかちゃんと書いておきたいところ。