汎用性の高い仕組み
前回までの作業で砲塔と攻撃を別処理にしました(指定した場所から弾を出せる)。その仕組みを利用することで「弾幕の器2」よりも柔軟に分裂弾を作成できます。仕組みは単純で、弾が消える時に(消えるまでの時間は指定できる)その位置から別の弾を出すようにするだけです。
動画では分かりやすいように変化の前後で弾の色を変更しています。簡単に弾幕の種類が増やせる仕組みだと思うのですが、弾の種類によっては演出的に違和感を感じます(動画では古い弾が一度消えてから新しい弾が出る)。ただ、これは弾のデザインによっては違和感は軽減できると思います。また誤魔化し用の演出を設定できるようにする予定です。
***********************************************
・360度弾の弾幕から正面への軌道変更(固定角の指定)
・360度弾から親弾の角度から90度変更(親弾基準の角度指定)
・360度弾からホーミング
・360度弾から疑似ホーミング(母艦と自機から角度算出)
・360度弾から一時停止して正面へ
・スイング砲塔から正面への軌道変更
・スイング砲塔から2つの分裂弾
・スイング砲塔からホーミング
・ランダム弾から正面への軌道変更
・ランダム弾からホーミング
***********************************************
動画以上に複雑な分裂弾を作成できそうですが、使いどころを誤るとゲームバランスを大きく崩しそうです。綺麗な弾幕パターンを乱す要因にもなりそう。
子弾用の砲塔
今回は分裂用の砲塔を用意しました。既存の砲塔には連射設定(どれ位の間隔で何回弾を出すか)が有るのですが分裂には連射設定は必要ないためです。今回までの仕様変更でフォーマットは以下の様に変わりました(タップで拡大した画像を表示)。
各砲塔の最後に追加されたchild[0]〜child[2]が分裂に関するパラメータです。ポイントは分裂した子弾にも分裂を設定できることで、これを利用すると多段階の軌道変更などもできます。動画で5番目に表示される弾幕では360度弾幕の後、その場で1秒停止してから正面に弾を発射しています。これは速度0の弾を途中に挟むことで実現しています。
彗星弾やレーザーブレードは?
次回の弾幕ゲームでは敵の特徴を印象つけるため、敵ごとに固有の兵装を用意する予定です。彗星弾やレーザーブレードは固有兵装にして特定の敵しか使用しない予定です。実装はデザインを少し進めてからにします。
デザインを進める
固有兵装を除いた弾幕の仕組みは概ね完成しました。あとは弾のデザインや演出をつけたいのですが、その前に全体的なデザインのラフを作成しようと思います。でないと適正な弾のデザインや演出ができないません。
懸案事項
次回の弾幕では敵はダメージを受けると段階的に強くなっていきます(砲塔が追加されていく)。しかし移動ルーチンは変化しません。当初はそれで良いと考えていたのですが、今は移動ルーチンも段階的に変えた方が良さそうだと考えています。
データの構成を大きく変更しなければならないので採用するか否かは迷っていますが、忘れないようにココにメモしておこうと思います。
twitterを本格的に初めてみた。ブログの更新記事をつぶやくのがメイン。あとCocos2dやUnity、その他アプリ開発に関連するツイッターの方をフォローして情報も集められたらなぁと思います。
— 柳澤@ゲーム作るよ (@designdrill) 2015, 12月 28