メイドイン俺:リズムゲー解説:「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。上で「しっぱい」を呼んでいれば「判定」のスイッチを見る処理は不要。
以上で「指定したタイミングでプレイヤーにタッチさせるゲーム」は作成完了。