【Unity】RPGを作るチュートリアルその12 アイテム関連の定義データの作成
- 2025.01.19
- RPGチュートリアル
- RPG, Unity, ゲーム開発, チュートリアル
シンプルなRPGをUnityで作るチュートリアルシリーズの12回目です。
第11回ではRPG内で使用する定義データのうち、敵キャラクターに関する定義データを作成しました。データ内から画像を参照するため、モック用の画像に関しても作成しました。
今回は引き続き定義データの実装を進めていきます。消費アイテムや装備品など、アイテム関連の定義を作成していきましょう。
制作環境
MacBook Pro 2023 Apple M2 Max
Unity6 (6000.0.30f1) Silicon
作業内容と順序
シンプルなRPGを作る上でどんな作業が必要か、どんな順番で作っていくと良さそうか、別ページで検討しました。基本的にこの流れに沿って進めていきます。
前回の内容
前回は敵キャラクターに関する定義データを実装しました。
アイテムのカテゴリ分け
アイテムの定義データを作成していくにあたって、アイテムのおおまかなカテゴリ(種類)で分けていくと便利です。冒頭でも少し触れましたが、消費アイテムや装備品など、種類によって扱い方が異なるので、データ上でカテゴリを見分けられるようにしたいと思います。
カテゴリに関してはEnumで分ける方法、intなどの数値で分ける方法がありますが、今回はEnumで設定していきます。Inspectorウィンドウでカテゴリを選択する際に、名前で見分けられると便利なためです。
Enumでは以下の項目を作成します。
- カテゴリなし
- 消費アイテム
- 武器
- 防具
今回は導入しませんが、ゲームによってはイベントアイテムなどもカテゴリとしてあると便利かもしれません。イベントアイテムを単純にカテゴリなしにしておくよりは、後で見たときに使い道が把握しやすくなります。
「カテゴリなし」を先頭にしているのは、デフォルトでそちらに振り分けられるようにするためです。新規作成したアイテムデータのカテゴリ設定を忘れることは疲れているとよくあるので、データが不十分なアイテムが使用されないようにしています。
また、今回はアイテムのカテゴリーで装備可能な場所を判別します。武器という括りでも、右手に装備するのか、左手に装備するのか、といった形で装備可能箇所が複数ありそうな場合は、アイテムのカテゴリとは別に装備可能箇所のEnumなどを用意すると良いかもしまれせん。
Enumの作成
上の方針に沿ってEnum用のスクリプトファイルを作成していきます。Projectウィンドウで「Assets/Scripts/Enums」のフォルダに移動し、空のスクリプトファイルを作成します。名前は [ItemCategory] にしました。
上からカテゴリなし、消費アイテム、武器、防具です。Inspectorウィンドウではこの項目をプルダウンで切り替えてカテゴリを選択するようにしましょう。
アイテムの定義データの作成
続いてアイテムの定義データ用のクラスを作成します。Projectウィンドウから「Assets/Scripts/Data」のフォルダに移動し、ScriptableObjectのスクリプトを作成します。名前は [ItemData] にしました。シンプルですね。
アイテムの定義データとして必要な項目は以下のとおりです。
- ID
- 名前
- 説明文
- カテゴリ
- 効果量
- 使用可能回数
- 攻撃力の補正値
- 防御力の補正値
- 素早さの補正値
- 価格
後で項目を追加するとなると若干手間なので、ある程度汎用的に使える形で項目を用意しています。この辺りは他のゲームを参考にしつつ、どんな項目が必要か考えてみると良いかもしれません。
上の項目を踏まえて「ItemData」のクラスでは以下のように記載しました。
各フィールド名はほぼ直訳のような形にしています。パラメータに影響する部分は分かりやすいように同じ名前にしました。
スクリプトを保存したら定義データのScriptableObjectを作成していきます。同じ種類のデータでまとめるため、アイテムデータ用のフォルダを作成しましょう。Projectウィンドウの「Assets/Data」のフォルダにて、新しくフォルダを作成します。名前は [Items] にしました。
作成した「Items」のフォルダに移動し、コンテキストメニューの [Create] -> [Scriptable Objects] -> [SimpleRpg] -> [ItemData] からScriptableObjectのアセットファイルを作成します。
名前は [ItemData_0001] にしました。こちらも敵キャラクターの定義データと同様に0埋め4桁でIDを末尾につけています。といっても今回作るアイテムデータは数個なので4桁までは不要だったかもしれません。
作成したデータはInspectorウィンドウから設定していきましょう。
ここで作成したいアイテムデータは以下の5種類です。
- 薬草(消費アイテム) HP回復用
- 短剣(武器)
- ロングソード(武器)
- 皮の胸当て(防具)
- レザーアーマー(防具)
回復アイテムが1種類、武器が2種類、防具が2種類です。武器と防具はお店で上位品が買えるようにしたいと思います。
それぞれのアイテムの設定は以下のようにしてみました。設定値は任意のものに変えていただいてもOKです。
ID | 1 | 2 | 3 | 4 | 5 |
名前 | 薬草 | 短剣 | ロングソード | 皮の胸当て | レザーアーマー |
説明文 | 体力を回復する効能のある草です。 | 身を守るための短剣です。 | 刃渡りの長い剣です。 | 皮をなめして作った胸当てです。 | 広い範囲を守れる革製の鎧です。 |
カテゴリ |
ConsumableItem
|
Weapon
|
Weapon
|
Armor
|
Armor
|
効果量 | 30 | 0 | 0 | 0 | 0 |
使用可能回数 | 1 | 0 | 0 | 0 | 0 |
攻撃力の補正値 | 0 | 3 | 6 | 0 | 0 |
防御力の補正値 | 0 | 0 | 0 | 3 | 6 |
素早さの補正値 | 0 | 0 | 0 | 0 | 0 |
価格 | 5 | 20 | 50 | 10 | 30 |
価格に関してはまた後ほど調整していきましょう。5つのアイテムを作成すると以下のようにデータが並びます。今回は手作業で進めるとは言ったものの、Inspectorウィンドウから設定していくのはちょっと大変ですね。ここまでの作業で区切りを入れましょう。
今回のブランチ
まとめ
今回は定義データの作成としてアイテムに関する定義データを作成しました。カテゴリで処理を分けるのは大切なので、事前にどのようなものが必要なのかある程度想定して定義しておくと良いかと思います。
次回は引き続き定義データの作成として、魔法データの作成を行います。といっても複数の魔法は用意せず、回復の魔法だけになりそうですが、仕組みだけ入れておきましょう。
ゲーム開発の攻略チャートを作りました!
-
前の記事
【Unity】RPGを作るチュートリアルその11 敵キャラクターの定義データを実装 2025.01.17
-
次の記事
【Unity】RPGを作るチュートリアルその13 魔法関連の定義データの作成 2025.01.21
コメントを書く