大道芸 ~攻略編(シューティングの一般論)~
はじめに
大道芸は、オーソドックスな縦スクロールシューティングの体(てい)をしてはいますがパターンシューティングです。
自機は強力なボムやテレポートを備えてはいるものの、絶対数が不足しているのであくまでも計画的に使うべきものです。
したがって、敵や場所それぞれについて対処法を編み出す必要があります。
また、「戻り復活」であるため攻略法を確立しないと先には進めません。
別記事「大道芸~ゲームシステム~」の Tips および その他、豆知識 も参照してください。
乱数について
大道芸では乱数は一定ではない(Scratch で用意されている乱数ブロックでは「種」の指定ができない、つまり同じ乱数列を再現できない)ので、完全に同じ操作をしても同じ結果にはなりません。
つまり、パターンを作ったうえで、その場その場でのアレンジが必要という過酷なものです。
(ちなみに達人王は完全に同じ操作をすると同じ結果になる。らしい)
大道芸で乱数が影響してくるのは主に以下です。
弾の発射タイミング(周期は一位に定まる)
敵の出現位置の左右
また「いつもの戦車」が撃ってくるようなバラマキ弾の方向も乱数です。
シューティングの一般論
ここで書く内容は大道芸のみならず、シューティングゲームについて普遍的に言えることです(いわゆる縦シュー、横シューなどの二次元シューティングを想定しています)。
フツーにプログラミングするとそのようになるということです。
敵弾の種類
敵弾には大きく分けて以下の2種類があります。
自機の位置を見ている弾
自機の位置を見ていない弾
前者は自機の動きにより干渉する(動きを変える)ことが可能です。逆に
後者は自機からは干渉できません。
ここでは便宜上「狙い弾」、「固定弾」と呼びます。
狙い弾、固定弾それぞれについて、一度に発射される弾の数を n とすると
n = 1 の場合が、単発弾です。
n > 2 の場合、弾の配置にもバリエーションがありますが一般的なのは扇型です。それをここでは便宜上「n-way 弾」と呼びます。
n-way弾にも弾数が奇数の場合/偶数の場合があります。
※n = 1 の場合は 1-way の奇数弾とも言えます
n-way の狙い弾では、上図のように
奇数の場合は中央の弾が自機を狙うように
偶数の場合は中央の一組の弾が自機を挟むように
撃つのが一般的です。
※固定弾もどこかの座標を狙っているだけです
その他、狙い弾の亜種として「誘導弾」もあります。
誘導弾は単発の場合が多いです。
まとめると以下のようになります。
狙い弾
奇数 or 偶数
固定弾
奇数 or 偶数
誘導弾
(細分化は略)
以上が主な敵弾の種類で、これらを複合したものや一部パラメータが経過時間とともに変わるものなどもありますが基本的にはこれらで成り立っていると言っても過言ではありません。
なお、大道芸で「いつもの戦車」が撃ってくるようなバラマキ弾は狙い弾の一種です。狙った方向を基準にあえて乱数で散らしています。
敵弾の特性:狙ってくる弾でも必ずしも当たるとは限らない
「弾は任意の角度に発射できるとは限らない」からです。
処理の都合であったり、意図的に角度を限定している場合もあります。
例えば、敵の正面から少しずれた場所に自機が居た場合、真下に撃ってくるといったことがあります(これを利用した安全地帯はよくあります)。
敵弾の特性:弾にはインターバル(発射までの休憩時間)がある
敵がひっきりなしに弾を撃ってきてしまってはゲームになりません(そういうゲームもありますが高次周であったりと場所は限定されていますし、それでも「弾は任意の角度に発射できるとは限らない」ことを利用して弾の途切れを作り出すことはできます)。
通常、弾を発射した後は一定の休憩時間があります。その間は何もしてこないということです。
敵弾の種類による対処法
当たり前のことですが
自機に向かって飛んでくる弾は避けないと当たる。
自機以外に向かって飛んでいる弾は避けなくても当たらない。
これが大前提です。
狙い弾
当たり前ですが、避ける必要があります。撃たれてから避けるのではなく、撃たせてから避けることがポイントです。
n-way 弾は、奇数の場合は避けないと当たるが、偶数の場合は動かなければ当たらない。ということになります。
※実際には他の弾も存在しているのでそれほど単純ではありません。
大道芸では1発の弾と偶数の n-way 弾を意図的に混在させたりしています。
固定弾
元々当たらない場所に居れば当たりません(当たり前ですが)。つまり、この弾に当たるということは自分から当たりに行っているということです。
自機の移動速度
8方向移動を前提とすると
斜めに移動する場合、次の2通りの方式が考えられます。
縦横方向の移動量を保持する方式
斜め方向の移動量を保持する方式
ここでは便宜上「ベクトル成分保持方式」、「ベクトル量保持方式」と呼びます。
前者の場合、移動量は斜め移動のほうが大きい、つまり、斜めのほうが速く動けるということです。これは大きく弾を避けたいときに有効です。
逆に後者の場合、斜めのほうが縦横方向の速さは遅くなるということです。これは安全地帯に入るときなどの細かい位置決め時に有効です。
縦シュー/横シューを大ざっぱに分類すると
縦シュー(達人など)は どちらかというと爽快弾避け
横シュー(グラディウスなど)は どちらかというとパターン性重視
という傾向があると思いますが、前者には「ベクトル成分保持方式」、後者には「ベクトル量保持方式」が多いようです。
これは前者は「アチョー」と避ける場面が、後者は細かい位置制御が必要となる場面が、多くなるからだと思われます。
大道芸は「ベクトル成分保持方式」です。
「ベクトル成分保持方式」では前述したように斜めのほうが速く動けるので積極的に斜め移動を活用すべきです。
また、同じ避けるなら敵弾方向に対し直角に避けるほうが相対的な回避速度は上がります。普段そこまでシビアな状況はないですが、レーザーのような高速弾に対しては影響してきます。
続きはこちら
以上のことが把握できたら以下の具体的な攻略編に進んでください。