最近Unityを使ってドラクエ風2DRPGの制作を行っています。
流石にRPGは、実装しなければならない機能が物凄く多くて、アクションゲーム等に比べると制作難易度がぐっと上がりますね。
まだまだ、完成には程遠いんですけど、UnityでRPGを作りたい人向けに個人的に役に立つなと思った機能についてまとめておこうと思います。
【Unity】RPGを作る際に使いたい便利な機能について
現在私が作っているゲームの見た目は、こんな感じです。昔ながらのRPGって所ですね。
2Dで制作を行っているので、全ての機能において2Dと3Dどちらでも有効に活用出来るとは限りませんが、参考にしてもらえればと思います。
①Unityアセットストア
Unityのアセットストアには、2DRPGを作成するために役立つ便利アセットがたくさん公開されています。
RPGは、多ジャンルと比較しても難易度が高いので0から全てを作り上げる事に抵抗がある人は、RPGのテンプレートとなるアセットを手に取ってみると良いでしょう。
どのように作られているのかが分かるようになりますし、中身を多少変えるだけでもオリジナルのゲームを作ることが出来ます。
②TileMapとTile Palette
TileMapとTilePaletteは、もはや2DRPGを制作する上で必須機能といっても過言ではありません。
画像にあるように、基本的にマップチップを組み合わせる事で町や村、フィールドを作る事になります。Unityでは、パレットに登録しておいたマップチップをマウスでなぞることでマップを構築していきます。
スイスイと作れるので、見た目の部分だけならクオリティの高いものをあっという間に作り上げる事が出来ます。
また、衝突判定を行う、行わないといった設定もレイヤー1つで簡単に行えるので、初心者にとってはとても便利な機能になります。
③ScriptableObject
ScriptableObjectは、大量の共有データを格納すると公式に書いている通り、RPGのようなさまざまなデータを管理する際に効果を発揮します。
特徴としては、何かしらのゲームオブジェクトにアタッチして使用しない事ですね。アセットをイメージしてもらえれば良いと思います。
また、メモリの節約にも繋がりますので、RPGを作るにあたってうってつけです。
RPGでは、「プレイヤー」「仲間」「敵」「アイテム」など取り扱うデータの種類が多岐に及びます。敵一つ見ても、スライムからラスボスまで、敵の種類もたくさん用意する必要があります。
それぞれを1つ1つインスタンス化しているとその分使用するメモリの量も増えてしまいます。ScriptableObjectのみ参照することで、パラメータの使用メモリを削減するわけですね。
ScriptableObjectについては、公式ページに詳しく載っているので参考にしてください。
※ScriptableObjectの一般的な使い方について記事にしました。
④Panel・Canvas Group
パネルも必須機能の1つですね。
ほとんどのRPGでは、コマンド画面が用意されていますよね。プレイヤーの強さを確かめるステータス画面やアイテム一覧画面などが良い例です。
これらの画面というのは、私もそうですがパネルを組み合わせて作ります。
また、Canvas GroupコンポーネントにおけるInteractableは、UIが入力を受け付けるか判断する機能となっていて、コマンド画面の行き来を行う上で重要な役割を担っています。
interactableのオンオフを繰り返すことで、各種コマンドの選択を行うようにします。
⑤Fungus
Fungusは、会話イベントを実装することが出来るアセットです。
特にプログラミングに慣れていない初心者の方にオススメしたいアセットとなっており、登場するキャラクター達の会話あってこそのRPGですので、0から作るのが厳しい場合に是非取り入れるべきだと思います。
⑥Audio Source
BGMやSEを実装することで、ゲームの雰囲気が全然違います。
操作感が気持ちよくなりますし、ゲームの盛り上がりには欠かせないので必要不可欠ですね。
まとめ
現在は、まだ製作途中なので、気になった機能や便利な機能については随時更新したいと思います。
やはり、見た目の部分に関してはそこまで難しくないんですけど、スクリプトの数が膨大になってきており、RPG作りの難しさを痛感している今日のこの頃といった感じですね。