Unity 2Dアクションの作り方13 特殊武器を全種類作成 倒したボスのウェポンを使う | Unity入門の森 ゲームの作り方

Unity 2Dアクションの作り方13 特殊武器を全種類作成 倒したボスのウェポンを使う

Unity 2Dアクションの作り方 ロックマン風横スクロールアクションゲームを作る


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

この記事はロックマン風2Dアクションゲームの作り方講座の第13回です。

11章と12章にてボス敵の作成とHPゲージの実装を行いました。

前回の記事:

Unity 2Dアクションゲームの作り方12 ボスキャラ行動パターン開発・HPゲージの実装
この記事はロックマン風2Dアクションゲームの作り方講座の第12回です。 前回はパーティクルシステムを用いた敵討伐時のアニメーションやボスキャラそれぞれの個性的なアクションを実装を開始しました。 前回の記事: 今回の記事では引き続きボスエネミ...

今回はロックマンのゲーム性を高めている機能の一つである「倒した敵の武器を使えるようにする」機能を実装します。

プレイヤーに特殊武器を持たせ、ステージ攻略中に切り替えながら使用させることによってゲームの遊び方に幅を持たせていきます。


【Line登録者限定のプレゼントもあるよ!】

撃破したボスの特殊武器を使えるシステムの実装

プレイヤーキャラが様々な武器を切り替えて使用できるシステムをこれから実装していきます。仕様は以下のようなものになります。

  1. 初期武器+追加武器7種の計8種類の武器がある
  2. 装備中の武器はAキーまたはSキーで切り替えできる
  3. 追加武器は初期では使用できないが、0番目~7番目のボスを倒すとそれぞれ対応したものが解禁される
  4. 追加武器にはエネルギー残量が設定されており、エネルギー切れになるとその武器は使用できない(ステージを切り替えるとエネルギー回復)

ほか、初期武器にも共通して付与する仕様として連射速度の制限を実装予定です(攻撃した後、指定された時間の間は次の攻撃が出来ない)。

 

特殊ウェポン武器の種類一覧

ステージクリア後に手に入る特殊武器7種を以下のような内容で作成します。

(初期武器) 作成済み
Doggy(犬騎乗) 攻撃はせず、犬に乗ったり降りたりします。犬に乗っている間はジャンプ力上昇
Tackle(タックル) 前方に短い距離で瞬間移動しつつ無敵時間を発生させ、射程の短い弾を撃ちます。
Windblow(突風) 前方に竜巻弾を発射し、当たった敵をノックバックさせます。(ボスにはノックバック無効)
IceBall(雪玉) 斜め上方向に弾を発射します。(弾は物理演算に従う)
Lightning(稲妻) 斜め上の離れた位置から真下に弾を発射します。
WaterRing(水の輪) プレイヤーキャラの周囲にゆっくりした弾を複数発射します。
Laser(レーザー) 一瞬で射程の端まで届く範囲攻撃を行います。

 

武器切り替え処理とエネルギーゲージを実装する

まずは武器の切り替え処理やエネルギー残量システムをまとめて実装していきます。各追加武器の実装はその後に行い、ステージクリア時の武器アンロック機能は次章で実装します。

ActorController.cs (一部省略)

weaponBulletPrefabをList形式に変更し複数種の弾丸を扱えるようにしました。

武器の種類をenumで定義しています。

今後の拡張をスムーズにするため、各武器の使用時に呼び出すメソッドは予め作成しておきました。

 

それぞれの武器で生成するプレハブへの参照をリスト化し、1発あたり消費エネルギーの値などもパラメータとしてInspectorから設定できるようにしています。以下のスクリプトも編集し終えたらまとめて設定していきます。

 

ActorSprite.cs

装備中の武器に合わせてスプライトを変更可能にします。

またボス敵の時に使用した被撃破パーティクルの再生や、犬騎乗時のスプライトのセットまでできるようにしておきます。

 

ActorNormalShot.cs

プレイヤーキャラ用の弾丸クラスも拡張します。いくつかの特殊武器はこのクラスをそのまま使う、あるいは継承したクラスを使用するので予め機能を増やしておきます。

 

武器エネルギーゲージUI作成

StageManagerプレハブの編集画面に入り、武器エネルギーゲージのUIを準備しておきます。

Canvas以下にあるActorHPGageFrameオブジェクトを複製し、新しい方の名前をActorEnergyGageFrameに変更します。

HPゲージの右隣くらいに配置すると良いでしょう。(PosXが-400程度)

 

HPGageオブジェクトはEnergyGageと改名します(任意)。

ゲージの色およびIconの表示画像についてはスクリプトから制御するためここでは変更不要です。

 

Inspector設定

Actorオブジェクトに対して各種参照をセットしていきます。

まずは先ほど用意した武器エネルギーゲージUIの、ゲージ画像とゲージアイコン画像への参照をそれぞれセットします。

 

名前がweaponから始まる5つのリストは、全8種の武器の各データを入力・セットするパラメータです。まず武器数は8なのでリストの要素数には8を入力しておきます。各要素にセットする内容は後述します。

 

weaponBulletPrefabsリスト

各武器を発射する時に生成するプレハブへの参照をセットします。

以降のリストも含め、ActorControllerクラス内のActorWeaponTypeで定義されている武器の順番で内容を設定していきます。

現在は初期武器弾のプレハブしかないのでこれを格納します。

 

weaponIconSpritesリスト

各武器のアイコン画像をセットします。

基本的に弾の画像をセットすればOKで、Textures/Attacks/Actorフォルダ内に素材がまとまっています。

Doggy(犬騎乗)の部分のみTextures/Actors/Ride.pngを指定します。

 

weaponGageColorsリスト

武器ごとに設定できる武器エネルギーゲージの表示色です。

アルファ(A)値が0だと非表示になってしまうので1にすることを忘れないようにしましょう。色は適当で大丈夫です。

 

weaponEnergyCostsリスト

その武器を1回発射するごとに消費するエネルギーの量です。

後からバランス調整できるので適当な値を入力しましょう。ただし初期武器だけは消費エネルギーを0にしておくことを推奨します。

 

weaponIntervalsリスト

各武器の連射間隔です。1を入力すれば1秒ごとにしかその武器を発射できません。

 

これで一旦ActorController側への参照セットは終了です。この先弾丸プレハブを作成した時はここでの参照セットを追加します。

 

ActorSpriteコンポーネント

ここにはまずボス用に作成した被撃破パーティクルおよび犬に騎乗している時のプレイヤーキャラ画像の参照をセットしておきます。

そしてここからは装備中の武器別に歩行アニメーションおよびスタン画像の表示を分けるので、それぞれの装備用の画像をセットします。

 

これで一通り準備完了です。

ここまでの動作確認として、通常武器の連射間隔・武器切り替え・ゲージ表示等の機能が動いているかを見ておきましょう。

 

特殊武器1: 犬に騎乗 ライドアーマーなどの乗り物を簡易実装する方法

武器というイメージではないかもしれませんが、特殊武器の1つとして犬の上に乗って移動するモードに切り替える処理を実装します。

ロックマンでもライドアーマーや犬のラッシュなどアクション操作を助ける乗り物が登場するシリーズがありますよね。そんな乗り物を簡易的に実装するイメージです。

弾を発射しないのでプレハブを作成する必要はなく、スクリプトの編集のみで完了します。

続きを読む

このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はUnity入門の森ショップ(https://unityforest.shop/)で講座閲覧権を取得してね。

まとめ

これで全8種の武器を実装完了しました。武器エネルギーの管理や連射速度の制限などを含め、よりアクションゲームらしいバランス調整が行えるようになったかと思います。

ついにゲーム開発も仕上げの段階になりました。タイトル画面から通しでプレイできるようにするためあと少し頑張りましょう!

 

次の記事:

Unity 2Dアクションの作り方14 ステージセレクト・タイトル・データの受け渡し・効果音・HP回復アイテムの実装
この記事はロックマン風2D横スクロールアクションゲームの作り方講座の第14回です。 前回はプレイヤーキャラの特殊武器の実装を行いました。個性豊かな7種類の追加武器を実装できました。 前回の記事: 今回はステージセレクトやボス撃破後の特殊武器...

Unity 2Dアクションゲームの作り方講座に戻る>>



Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

コメント

タイトルとURLをコピーしました