ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【Unityで2DRPG】 バトルシーン(戦闘シーン)を実装する方法

Unity で 2DRPG のバトルシーンを実装する方法について、独学ですが実装方法をまとめてみました。

事前に準備が必要なもの

  • 戦闘時の背景画像
  • 戦闘時のキャラクター画像
  • 戦闘時の敵画像
  • 攻撃時のアニメーション
  • BGM
  • 効果音

敵Prefabの作成

敵画像の取得

以下のサイトから敵画像を取得しました。
www.irasutoya.com

ゲームオブジェクトにコンポーネント追加

SpriteRenderer設定
  • 取得した敵画像を登録
  • SortingLayer設定

事前にSortingLayersを以下のように登録しておきます。
f:id:a1026302:20201201015904j:plain
SortingLayerを「Battle Chars」にします。
f:id:a1026302:20201201020120j:plain

BattleCharスクリプト追加

キャラクタの設定を行います。

  • プレイヤーかどうか
  • 攻撃のパターン
  • 名前
  • 戦闘時のHP
  • HPのMax値
  • 戦闘時のMP
  • MPのMax値
  • 防御
  • 武器の力
  • 防具の値
  • 画像
  • 死んでる時の画像
  • 生きてる時の画像

f:id:a1026302:20201201022917j:plain

Prefab作成

obake という Prefab を作成します。
f:id:a1026302:20201201024510j:plain

プレイヤーPrefabの作成

ゲームオブジェクトにコンポーネント追加

SpriteRenderer設定
  • 取得したプレイヤー画像を登録
  • SortingLayer設定

事前にSortingLayersを以下のように登録しておきます。
f:id:a1026302:20201201025012j:plain

BattleCharスクリプト追加

キャラクタの設定を行います。

  • プレイヤーかどうか
  • 攻撃のパターン
  • 名前
  • 戦闘時のHP
  • HPのMax値
  • 戦闘時のMP
  • MPのMax値
  • 防御
  • 武器の力
  • 防具の値
  • 画像
  • 死んでる時の画像
  • 生きてる時の画像

f:id:a1026302:20201201025442j:plain

Prefab作成

社長(主人公)という Prefab を作成します。

BattleManagerの設定

ざっくり以下の設定を行います。

  • 戦闘時の背景
  • プレイヤーの配置
  • 敵の配置
  • プレイヤーprefabの登録
  • 敵prefabの登録
  • 魔法的な攻撃の登録
  • ParticleSystemの登録
  • ダメージ処理のスクリプト追加
  • プレイヤー情報表示(名前/HP/MP)
  • 敵名の表示情報追加
  • プレイヤーのHPの表示情報追加
  • 敵の表示情報追加
  • 魔法を選択する部分を設定
  • 逃走の確立指定
  • アイテムの表示位置指定
  • ゲームオーバーシーン指定
  • 報酬(経験値)
  • 報酬アイテム
  • 逃げる(可能/不可能)フラグ

接触すると戦闘するゲームオブジェクトの作成

敵画像をHierarchyに追加

敵画像を Unity にアップロードして、Hierarchy に追加します。
f:id:a1026302:20201201000751j:plain

ゲームオブジェクトにコンポーネント追加

「Box Collider 2D」を追加

「Box Collider 2D」を追加し、「Is Trigger」にチェックを入れます。
f:id:a1026302:20201201001429j:plain

BattleStater スクリプトを追加します。

BattleStaterというスクリプトを事前に作成し追加します。
(スクリプトについては後日)
背景画像や敵情報、報酬等々を設定します。
f:id:a1026302:20201201014700j:plain

プレイ動画

戦闘シーンの動画をアップロードしました。
www.youtube.com