渦巻弾幕の作り方

渦巻うずまき弾幕だんまくつくかた

基本きほん情報じょうほう

紹介日
2020.2.8

コレ以外にも色々な弾幕の作り方はこちらにまとめてあります!

Scratchでの弾幕の作り方9選|東方みたいな弾幕シューティングを作る!

この弾幕の作り方

所要時間: 10分.

渦巻状に弾が発射される弾幕を作ります。

  1. 緑の旗が押されたらブロック

    緑の旗が押されたら弾幕が出てくるようにします。ここを「スペースキーが押されたら」「◯◯メッセージを受け取ったら」に変えることで弾幕が出るようになります。

    緑の旗が押されたらブロック
    緑の旗が押されたらブロック

  2. 変数「発射角度」を作る

    弾幕の発射角度だけは最低限変数が必要です。この変数を各クローン(弾)ごとに変えることで、様々な方向に弾が飛び出します。

    弾幕の弾の発射角度を指定する
    弾幕の弾の発射角度を指定する

  3. 「ずっと」

    ここからはずっと弾幕処理を監視するように作ります。

    弾幕の処理を追加するループ
    弾幕の処理を追加するループ

  4. 発射の処理を作る

    「◯回繰り返す」に何発ショットを撃つか、弾数を指定します。
    その中で発射角度を少しずつ変えます。
    ここではうずまきにしたいので、弾数と角度の変化を掛けて360度になるようにします。今回の例では72×5=360となっています。

    弾数と発射角度の変化
    弾数と発射角度の変化

  5. 発射角度を360度で初期化する

    この処理は必須ではありませんが、360度で初期化しておかないと、永遠に加算処理が行われていずれは変数が持てる数値の上限に達してしまいます。

    360度以上になったら、 360度減算しておく
    360度以上になったら、 360度減算しておく

  6. 発射間隔を調整する

    ここはゼロ秒でもかまいません。渦巻弾幕を年輪のようにグルリ、グルリと展開する場合も、ここの数値が役立ちます。

    ここの数値を増やすと、 ショットとショットの間に スキマができます
    ここの数値を増やすと、 ショットとショットの間に スキマができます

  7. 「クローンされたとき」

    ここからは弾幕の「弾」の動きになります。

    だんまくとクローンは切っても 切りはなせない関係です
    だんまくとクローンは切っても 切りはなせない関係です

  8. クローン(=弾)の初期化処理を行う

    三角関数を使う場合はショットの向きは気にせずとも問題ありません。しかし今回は三角関数を使わない方法で実装します。同じような結果が出せるので、よりシンプルな実装と言えます。

    三角関数を使わずに作りたい ので、ショットの向きを変えておきます
    三角関数を使わずに作りたい ので、ショットの向きを変えておきます

  9. 弾のコスチュームにする

    どんな弾の形にするのか、というのも弾幕の楽しいところです。ただの円でもいいでしょう。ミサイルのようにしても、ビームのようにしても、特殊な形にしてもいいでしょう。リンゴを投げるような弾幕でも面白いでしょう。自分の考えるベストなコスチュームを模索しましょう。

    ショット用のコスチュームに変えます
    ショット用のコスチュームに変えます

  10. 弾を動かす

    弾幕の本質的な処理がここです。弾を動かします。ここでよく三角関数が使われます。三角関数を使わないほうがシンプルですし、弾がミサイルやビームのような形をしている場合は進行方向を向いて飛んでいくので、現実的です。弾が円形であれば、どちらでも見た目に差はありません。

    ※サンプル動画では、ここの数値は1です。

    三角関数を使っても使わなくてもOK、使わないほうがシンプル
    三角関数を使っても使わなくてもOK、使わないほうがシンプル

  11. クローンを削除する

    これが最も大事といっても過言ではありません。ちゃんとクローンを削除します。弾幕は大量のクローンが生成されるので、これを忘れるとプロジェクト自体が動かないくらいにメモリーを消費してしまいます。

    弾幕に使ったクローンを削除する
    弾幕に使ったクローンを削除する

渦巻弾幕のカスタマイズ例

微調整でまったく違う弾幕になるところが弾幕の面白いところです。ここからはカスタマイズについて触れます。

どんどん渦がきつくなる渦巻弾幕

クローンに対して、弾の動きに合わせて角度を変えます。

角度をきつくしすぎると、弾を発射しているスプライトに弾が当たります。

左回りに角度を変えるか、右回りに角度を変えるか、それによっても動きが変わるので試してみてください。

加速する渦巻弾幕

こちらもクローンの繰り返し処理のところに、スピードを加速させる処理を加えます。

その前提として、スピード(弾の速度)を変数として定義しておき、この変数の値を徐々に加算していきます。

渦がきつくなりながら加速する渦巻弾幕

この両方を組み合わせることで渦がきつくなりながら加速するという渦巻弾幕が完成します。

紹介日
2020.2.8