【Unity】RPGを作るチュートリアルその27 所持アイテム情報を保持するクラス

【Unity】RPGを作るチュートリアルその27 所持アイテム情報を保持するクラス

シンプルなRPGをUnityで作るチュートリアルシリーズの27回目です。

第26回では実行中のキャラクターの状態(現在のHPやMPなど)を保持するためのクラスを作成しました。

今回は実行中にパーティとして所持しているアイテムの情報を保持するためのクラスを作成していきます。

 

 

制作環境

MacBook Pro 2023 Apple M2 Max

Unity6 (6000.0.30f1) Silicon

 

作業内容と順序

シンプルなRPGを作る上でどんな作業が必要か、どんな順番で作っていくと良さそうか、別ページで検討しました。基本的にこの流れに沿って進めていきます。

 

チュートリアルの一覧

このシリーズ全体の一覧は以下のページにまとめています。

 

前回の内容

前回は実行中のキャラクターの状態(現在のHPやMPなど)を保持するためのクラスを作成しました。

 

所持しているアイテムの情報を保持するためのクラス

今回のチュートリアルでは、アイテムをパーティ単位で所持するようにしたいと思います。初期ドラクエをイメージするなら個別にアイテムを持たせたり、なんなら薬草をスタックしたりと、個別のキャラクターに紐づく形にするのが王道ですが、チュートリアルで解説する難易度を考慮してパーティ全体で持たせることにしました。(下のティアキン方式)

  • アイテムはID単位で枠を使って、枠ごとに所持数の限界まで持たせる(ティアキン方式)
  • パーティのアイテム枠(種類ごと)を決めて、その中で持てるアイテム種別数を制限する(FF3, 4方式)
  • アイテムひとつごとに枠を使って、合計60枠までのように制限する(世界樹方式)

といったように所持できるアイテム数や種類の数を制限する方法はゲームごとに異なるため、自分のゲームにあった持ち方を試してみると良いかと思います。アイテム数を制限するのは利便性から離れるものの、限られた環境下でゲームをクリアするコンセプトならマッチすることもあります(バイオハザードシリーズなど)。ここはゲームのテーマやコンセプトに合わせて選べると良いかと思います。

ちなみにファミコン時代やスーパーファミコン時代に所持できるアイテム数に制限があったのは、アイテムの情報を保持するためのメモリ枠にハード的な制限があったからというメタ的な理由もあるかもしれません。

このクラスで持たせたい情報としては、

  • 所持しているアイテムのID
  • 所持している個数
  • このアイテムを使用した回数

です。アイテムを使用した回数も保持するのは、以前作成したアイテムの定義データである「ItemData」の中で、アイテムの使用可能回数を定義しているためです。アイテム使用の処理を実装した際に、使用可能回数に達した場合にアイテムの個数を1つ減らす処理を入れていきたいと思います。例えば3回使えるアイテムなら使用した回数が3回になったら1つ消費するイメージです。

パーティ全体で所持しているアイテムの情報をリストとして保持することで、どのIDのアイテムをいくつ持っているのかを表現します。

 

所持しているアイテムの情報を保持するためのクラスの実装

Projectウィンドウの「Assets/Scripts」のフォルダにて、空のスクリプトファイルを作成します。名前は [PartyItemInfo] にしました。

スクリプトファイルの作成
スクリプトファイルの作成

 

作成した「PartyItemInfo」の中身は以下のように記載しました。

このクラスについても、JSONUtilityを使ってシリアライズする際に対象となることを祈って[Serializable]をつけています。

今回もまだ動作確認はできないので、スクリプトを保存してコンパイルエラーなどがなければ完了です。

 

今回のブランチ

 

まとめ

今回は実行中にパーティとして所持しているアイテムの情報を保持するためのクラスを作成しました。

次回はキャラクターの情報全体を保持するクラスを作成していきましょう。前回と今回で作ったキャラクターのステータス、アイテムの情報などを保持するようにしていきます。

     

ゲーム開発の攻略チャートを作りました!

CTA-IMAGE

「ゲームを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


ゲームを作り始めた時にぶつかる壁である「何をしたら良いのか分からない」という悩みを吹き飛ばしましょう!