【Unity】3DダンジョンRPGの作り方 第10回|キャラクター作成・パーティ編成UIの構築 | Unity入門の森 ゲームの作り方

【Unity】3DダンジョンRPGの作り方 第10回|キャラクター作成・パーティ編成UIの構築

Unity 3DダンジョンRPGの作り方 ~世界樹・ウィザードリィ風ゲームを作ろう~

現場レベルのゲーム制作が、すべてここで学べます。

【永久会員チケット】

永久会員チケット|Unity入門の森

全講座を見放題で学ぶ

ソースコード・素材・プロジェクトすべて公開。
Unityの基礎から応用まで、一生使えるスキルを体系的に習得。

この講座は3Dダンジョン探索型RPGの作り方について説明しています。今回はその第10回目になります。

前回まで戦闘システムの開発を進め、複数ターゲットなどの機能も実装して一区切りとしました。

前回の記事:

【Unity】3DダンジョンRPGの作り方 第9回|エネミーAI・オートバトルシステムの実装
この講座は3Dダンジョン探索型RPGの作り方について説明しています。今回はその第9回目になります。前回は戦闘のステート管理などを実装し、アクターの通常攻撃スキルを使用できるところまでを実装しました。前回の記事:今回はエネミーもスキルを発動し...

今回からはダンジョンRPGの重要な要素の1つとなるキャラクター作成および育成システムを実装していきます。ウィザードリィで例えると訓練所のようなシステムですね。

自分でキャラクターメイキングを行い登録。そして登録したキャラクターでパーティ編成できるようになります。

Unityで他作品を作るときにも応用の効くドロップダウン・スクロールビュー機能を使います。スキルアップしながらキャラクターメイキング・パーティ編成画面を作っていきましょう!

【ゲームの作り方講座プレゼント中!】

UnityでRPGのタウン(街)シーンを作成

タウン(街)シーンはゲーム起動後に開始されるシーンとして設計し、この画面からキャラクターを作成したり、それをパーティに編成したり、スキルの習得や装備変更などを行ったり、ダンジョン探索を開始できるようにしていきます。

 

タウンシーンはバトルシーンと同様、3Dオブジェクトは配置せずCanvas内のUIによって画面を構成します。

よってCanvasの設定はそこからの使いまわしで良いため、まずはBattleシーンを開き、それを別名で保存することで新規シーンとするのが楽です。新しいシーン名はTownとします。

その後、もともとCanvasオブジェクト以下にあったオブジェクトを全て削除することで初期化完了とします。

TextMeshProへの固定文章を言語別に適用するスクリプト

UIオブジェクトを作成していくにあたって今後もTextMeshProによる文章表示を使用していきますが、それぞれの文章はシーン中に変化するものとしないものの2種類があります。

戦闘画面で作成した「キャラクターの残りHPを表示するテキスト」などはシーン中に変化する文章です。

対してシーン中に変化しないものとは、例えばバトルコマンドボタンの「ATTACK」やキャラクターUI内の「HP」「TP」という文章です。

変化しない文章にはこの先日本語も使用しますが、言語設定が英語に設定されている場合は英語版に切り替わって表示できるようにしたいです。

よってまずはTextMeshProコンポーネントにアタッチして使用する、「日本語と英語の文章のうち適したものを表示する」機能をもつクラスを作成します。

SimpleTranslationText.cs (新規)

インスペクターからtext_JPパラメータに日本語で表示する文章、text_ENパラメータには英語で表示する文章を予め入力しておけば、あとは自動的に切り替えて表示してくれます。

またstaticメソッドとしてGetTranslatedStringも定義しています。これは引数に日本語、英語のstringをそれぞれ渡せば言語設定に応じたstringを返してくれるものです。今後ほかのクラスからも多用する予定です。

各UIオブジェクト作成

ここからは「街画面でキャラクターを作成&編成し、そのチームでダンジョンへ進んでバトルを行う」という基本的な流れの実装を目標に開発を進めていきます。

まずはTownシーンに以下のUIオブジェクトを配置していきます。

  • 背景画像UI
  • ①:ダンジョンへ行くウィンドウ
  • ②:編成ウィンドウ
  • ③:キャラクター作成ウィンドウ
  • ①~③のウィンドウを開くためのボタン

基本的にはImageやTextMeshPro、Buttonなどの今まで扱ったUIのみを使用するので、ここからは文章での設定説明は割愛します。

細かなレイアウトや使用する画像等は各々自由にアレンジしても問題ありません。

(Image)背景画像オブジェクト_BackGround

背景画像オブジェクトとしてBackGroundを作成します。

戦闘画面のときと異なり、全てのUIオブジェクトはこのBackGroundより子の階層に配置していきます。

(Button – BackGround)ウィンドウを開くボタン_TownButton

「ダンジョンへ行く」ウィンドウや「編成」ウィンドウなどの各種ウィンドウを開くためのボタンとしてTownButtonを作成します。

(子オブジェクト)Text (TMP)

子オブジェクトとして自動生成されているTextMeshProの設定も変更します。

先ほど作成したSimpleTranslationTextコンポーネントもアタッチしておきます。(文章は入力不要)

(Image – TownButton)ボタンの外枠画像_ButtonFrame

ボタンの外枠の装飾として画像オブジェクトのButtonFrameを作成します。

ボタンの大きさは可変とするので、外枠画像のサイズもボタン自体の大きさに自動的に合わせるようStrechの設定に変更します。

TownButtonプレハブ化・インスタンスの配置・文章編集

いま作成したTownButtonオブジェクトはウィンドウの数だけ必要になるので、プレハブ化して使いまわせるようにしておきます。Townフォルダを作ってプレハブを保存します。

プレハブ化を終えたら元になった1つめのインスタンスはTownButton_Dungeonに名称変更します。そしてRect Transformの位置を調節して「ダンジョンへ行く」ボタンを完成させます。

そしてこのボタンは、日本語では「ダンジョンへ行く」、英語では「Go Dungeons」という文章を表示したいのでText (TMP)内のSimpleTranslationTextに言語別の文章入力します。

(実行時でないシーンビュー上ではTextMeshPro – Textコンポーネントに入力したもののみが表示されます。)

 

続いて「キャラクター作成」ウィンドウを開くボタンもプレハブから配置します。位置は好きな数値で調整してOKです。SimpleTranslationTextでは日本語に「キャラクター作成」、英語に「Recruit」と入力しておきます。

「編成」ウィンドウを開くボタンも同様に作成・配置します。細かなレイアウトは自由に調整してください。SimpleTranslationTextでは日本語に「編成する」、英語に「Formation」と入力しておきます。

(Empty – BackGround)各種ウィンドウ用空オブジェクト_FacilityUI

ここからは「ダンジョンへ行く」「編成」などのウィンドウUIを作成します。こちらもプレハブ化を前提とした設計になります。

続きを読む

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

まとめ

長くなってしまったのでここまでを前半として一度終了とします。

後半ではスクリプトを作成し、職業の設定からパーティ編成編成、ダンジョンシーンへの遷移などの動きを一通り実装します。

次の記事:

【Unity】3DダンジョンRPGの作り方 第11回|職業選択・編成システムの機能実装
この講座は3Dダンジョン探索型RPGの作り方について説明しています。今回はその第11回目になります。前回から引き続きタウンシーンの開発を進めます。今回はスクリプトを作成してキャラクター作成・編成のシステムやシーン遷移を実装します。前回の記事...

Unity 3DダンジョンRPGの作り方講座に戻る >>

【ゲームの作り方講座もプレゼント中!】

現場レベルのゲーム制作が、すべてここで学べます。

【永久会員チケット】

永久会員チケット|Unity入門の森

全講座を見放題で学ぶ

ソースコード・素材・プロジェクトすべて公開。
Unityの基礎から応用まで、一生使えるスキルを体系的に習得。

コメント

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