弾幕の器2:回避系のサブウエポン

3種類の回避系サブウエポン

敵の弾幕を強化したので、プレイヤー機も強化しないと釣り合いが取れません。ということでサブウエポンを追加します。今回は回避系の3種類を紹介。

 

クリアウェーブ

弾幕ゲームによくある一定範囲無いの弾を削除するサブウエポンです。ポイントなのは前回紹介した通常攻撃では破壊できない彗星弾を破壊できる点です。この特性を活用しないと勝つことが難しい敵も登場させる予定。
 
その反面。このサブウエポンはトラップ砲塔には効かないようにします。トラップ砲塔は起動後に弾の補充がないため、弾を消されると簡単に無力化されてしまうためです。
あと対惑星レーザーに対しても無力です。惑星にダメージを与えられるような大出力を小型機の兵装で無効化できてしまうのも変ですし、対惑星レーザーに対応するサブウエポンは別に用意してあるので。
 

ゴーストデコイ

自機ねらい弾を引きつけるサブウエポンです。地味ですが持続時間が10秒もあります。
 

次元ジャンプ

3次元方向へのジャンプです。当たり判定が無くなる時間は割と長めですが、その間は攻撃できません。対惑星レーザーを躱すためのサブウエポンです。
 
 
 

弾幕の器2:彗星弾

彗星弾

空母&艦載機は(戦略的には有効ですが)ウザいので弾幕の器2では廃止します。そのかわり要塞のカテゴリを追加し、その兵装として彗星弾を用意しました。弾を出しながら移動するのは艦載機と同じですが、破壊対象には含まれず破壊することはできません。

彗星弾は親弾を破壊できないため強力なのですが、サブウエポンで破壊できるような仕組みを用意する予定です。
 
 
 

弾幕の器2:分裂弾

近くにいた方が安全

以前、砲塔に近づけなくする砲塔を紹介しましたが、今回は逆に「砲塔から離れていると危険」な砲塔を追加しました。それが動画にもあるような分裂弾です。ポイントなのは「分裂前の親弾には当たり判定がない」点です。なので動画のように砲塔の近くにいる方が安全なのです。他の砲塔と組みあわせて色々な戦略が考えられそうです。

あと動画の後半のように設定によっては分裂後の方向を変更(ホーミングも可能)できます。
 

彗星弾

本日の記事には間に合わなかったのですが、分裂弾を進化させた彗星弾というのを作成しています(ほぼ完成)。分裂弾は分裂したら親弾は消えてしまいますが、彗星弾は親弾が消えず弾幕をまき散らしながら進んでいきます。
たぶん明日には動画をアップできると思います。
 
 
 

弾幕の器2:ホーミングの追加

ホーミング

作る予定ではなかったのですがホーミング弾を作成してしまいました。
ホーミングする強度(回転角)も調整することが出来ます。
【1回目】直線弾
【2回目】0.5度ずつ方向転換
【3回目】ホーミング弾
【4回目】反射回数を1にしてみた。

ホーミングを実現する数式は複数あるのですが、リアルだけれど処理の重い「角度でホーミングする数式」を採用しました。これは以前作成したカーブする弾を改造することで簡単に導入できるためです(ちなみにシンプルなホーミングは「位置の差を利用する数式」です)。
 
ホーミングってhormingと思っていたらrは必要なくhomingなのですね。homeの「帰巣する」という意味から派生しているそうです。
 
 

関係ないけど

にんじんを調理していたら凄く堅い部分があった。煮れば柔らかくなると思ったけれど煮ても堅い…。調べたら「木質化」という現象らしい。にんじんは数え切れないほど調理してきたけれど初めてしりました。木って感じよりも軟骨っぽいもろさがありました(煮たから?)。
→参考:異物検査員のブログ様「ニンジンから木片発見!?
 
 
 

弾幕の器2:対惑星レーザーの拡張

対惑星レーザーの拡張

対惑星レーザーは予告通り長さを指定してビームサーベル的に利用できるようにしました。さらに以下の様な設定が可能となっています。
————————————————
・レーザー回転中に長さを変更することが可能
・レーザー回転後にも何秒表示するか指定できる
 ↑この機能によりプレイヤーを閉じ込める戦略が可能になる
————————————————

 
 

原因不明だった警告

弾幕の器でも開発中に以下の様な警告が出ることがありました。しかし警告なので「まぁいいか」とスルーしてきました。
—————————————
warning: you CANNOT change update priority in scheduled function
—————————————
しかし今回は警告も無視せず、より安定したゲームにしたいので原因をしらべました。原因はオブジェクトの削除とスケジューラのタイミングでした(他の原因でも発生する可能性はありそう)。スケジュールが起動しているオブジェクトを削除する時に上記の警告が発生しました。
常にというわけではないので確実なことはまだ分からないのですが、削除する前に明示的にスケジューラを停止したら警告が出なくなりました。
まだ確信が持てているわけではないのですがメモ。

弾幕の器2:トラップ砲塔

シールド砲塔は

弾幕の器では砲塔や艦体に当たり判定がないため、砲塔に張り付いての攻撃が有効でした。なので弾幕の器2では砲塔に寄せ付けないシールド砲塔を用意しようと考えていたのですが、前回の記事のとおり通常砲塔で実現できてしまいました。
 

トラップ砲塔

なのでシールド砲塔は別の攻撃方法を持たせることにしました。動画にて色々なバリエーションを紹介しています。特徴は起動すると「砲塔とは離れたところに弾幕が生成され砲塔の周りを周回する」点です。プレイヤーを囲んで潰すようなトラップも実現できるのでトラップ砲塔と名付けることにしました。

 
 
 

弾幕の器2:通常砲塔の拡張(4)

バグ修正

前回追加したカーブする機能ですが、重力の設定とバッティングして上手く機能しないことが判明したので修正

【動画:0秒〜】
カーブ単独なら問題なく機能する。

【動画:25秒〜】
重力(上方向)を追加したのでレーザーが上に上っていく。一見正常に機能しているようだが、レーザーの間隔が同じため重力による加速処理が機能していないことが分かる。本来はカーブの設定がしていない中央のように加速しないといけない。
 
【動画:40秒〜】
プログラム修正。カーブでは回転した後でspeed_xとspeed_yを再計算しないといけないのですが、その際の基本速度を変更しないのがバグの原因。なので角度変更の後に速度を測定し、それを利用するようにしました。
 
【動画:1分10秒〜】
重力が強すぎるので重力の設定を1/10に変更。重力が弱いので分かりにくいのですが、レーザーの間隔が一定ではなくなり加速度の処理が正常に行われているのが確認できます。
 

次回からシールド砲塔

予定していたシールド用の弾は通常砲塔に追加した制限時間で実現できてしまいました(砲塔にプレイヤーを近づけさせない用)。なのでシールド用の弾は別のアイデアで新しく作ろうと思います。トラップっぽい用途にも利用できそうな弾になる予定。

 
 
 

弾幕の器2:通常砲塔の拡張(3)

動画概要

重力の設定とは別にカーブする機能を追加しました。
—————————————
普通の弾幕

カーブの設定

複数弾にもカーブ設定が可能

カーブの設定によっては画面内に弾が残留

弾の制限時間を設定できるように
—————————————

 

カーブする弾幕

重力を設定しても弾道はカーブしますが速度が加速します。今回追加したカーブの設定は速度が変化しないため重力の設定とは別の使い道があります。
 
カーブする弾は単体では避けるのは簡単ですが、直進する弾と合わせるとプレイヤーを混乱させてしまいます。なので通常は弾のデザインを変更して混乱しないように配慮します。
しかし弾幕の器2では、あえてデザインを同じにして混乱を招く戦略を考えています。つまり カーブ弾の砲塔と直進弾の砲塔が待機状態で混在する場合は、うまく調節して片方ずつ起動させるような対応が必要になります。
 

弾の制限時間

カーブの設定によっては弾が画面外に移動せず残ってしまいます。これを防ぐために弾に制限時間を設定できるようにしました。制限時間になったら画面内でも弾は削除されます。
 
 

弾幕の器2:通常砲塔の拡張(2)

動画概要

予定が遅れているので、少しずつでも進めていきたい今日この頃。
本日は通常砲塔の反射回数を設定できるようにしました。
—————————————
反射しない弾

反射回数を1に設定

重力の設定を追加

反射回数を2回に設定

レーザーの場合も反射で方向が切り替わります。
—————————————
 

 
 
 

弾幕の器2:通常砲塔の拡張(1)

動画概要

今回は通常砲塔に2つの機能を追加しました。

【レーザーの回転処理】
普通の弾幕 → 重力設定 → レーザーでもOKに

【進行方向への加速】
普通の弾幕 → 進行方向への加速 → 分かりにくいので初期速度を0に
→ まだ分かりにくいので初期速度を-5に
 
 

レーザーの方向設定

弾幕の器でも重力の設定をした弾幕はありましたが、レーザーには重力の設定をしませんでした。それは重力を設定すると方向が変わるためレーザーの方向を変更する処理が必要になるためでした。
しかし弾幕の器2ではレーザーの方向を設定する処理を追加したのでレーザーにも重力設定をする事が出来るようになりました。
 

進行方向への加速

弾幕の器では進行方向へ加速することはできませんでした。違いが分かりにくいのですが動画の最後の方にあるように初期速度をマイナスにすることで、最初は逆方向に移動した弾が反対側に加速して移動するような弾幕を作成する事ができるようになりました。