2DRPGの作り方10 UnityでNPCの会話システム・メッセージダイアログを作る | Unity入門の森 ゲームの作り方

2DRPGの作り方10 UnityでNPCの会話システム・メッセージダイアログを作る

Unity C# 2DRPGゲームの作り方 ~ドラクエ風レトロRPGを作ろう!~


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

前回までで2DRPGのNPCの移動処理をUnityとC#で実現してきました。

前回の記事:

2DRPGの作り方9 UnityでRPGのNPCを作ろう ~移動処理編~
前回はフィールドマップとダンジョンマップをマップ間移動処理を実現するマスイベントを作成しました。 前回の記事: 今回の記事ではフィールドマップに村人を配置していきます。 UnityでNPC(ノンプレイヤーキャラクター)を作る方法をマスターし...

今回の記事ではこのNPCキャラクターの村人と会話できるようにしていきます。

会話用のイベントの実装やメッセージダイアログの表示法などをマスターしていきましょう。


【Line登録者限定のプレゼントもあるよ!】

会話用のイベントデータの作成

それでは実際に会話のためのイベントデータを作成していきます。

まず、「RPGSceneManager」スクリプトに以下の内容を追加します。

会話のイベントは「MassEvent」クラスの派生クラスとして定義します。

新しく「NPCEvent」という名前のスクリプトを作成し内容を以下のようにします。保存先はお好みでOKですが、記事ではAssets > Scripts > MassEventフォルダーの中に保存してます。

「NPCEvent」はメニューのAssets > Create > MassEvent > NPCEventから作成できますので、新しく「NPCEvent」というイベントデータを作成してください。

保存先はお好みでOKですが、記事ではAssets > MassEventフォルダーの中にしています。

作成した「NPCEvent」データの設定内容は次のようにしてください。

会話用のイベントデータを作成したので、「NPCEvent」を「NPC」プレハブに設定できるように「CharacterBase」スクリプトを修正していきます。

コンパイルできたら、「NPC」プレハブの「NPC」コンポーネントの「Event」フィールドに「NPCEvent」を設定してください。

会話用のUIの作成

次に会話内容を表示するためのUIを作成していきます。

次の手順でシーンにGameObjectを作成してください。

  • メニューのGameObject > UI > ImageをクリックしGameObjectを作成する
  • 作成されたCanvasのGameObjectの名前を「MessageWindow」に変更
  • 「MessageWindow」には「Image」という子GameObjectが予め作成されているので、その名前を「Panel」に変更する
  • 「Panel」の子GameObjectにメニューのGameObject > UI > Textをクリックしテキストを追加する
  • テキストの名前は「TextTemplate」に変更する

GameObjectの作成ができたら、それらのパラメータを次のように変更してください。

続きを読む

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

村人のいる方に移動したら会話UIが表示され、メッセージが流れるようになっていればOKです。

まとめ

今回の記事ではNPCである村人と会話できるようにする処理を実装しました。

今回作成した会話用のUIは以降の記事でも使用していくのでしっかりと理解しておきましょう。

また、さらにメッセージダイアログを修正する案として、開く際にアニメーションさせたり、メッセージが終わったら何かしらの画像を表示したりするなども考えられますね。

興味がある方は作ってみるといいでしょう。

今回の内容をまとめると以下のようになります。

  • 「CharacterBase」コンポーネントにイベントデータを設定できるようにした
  • 会話用のイベントデータを作成
  • 会話用のUIの作成
  • プレイヤーがNPCに話しかけると会話できるようにスクリプトを作成

それでは次の記事に行ってみましょう!

2DRPGの作り方11 パラメータ設定と武器・防具・回復アイテムをUnityで作ろう
前回の記事ではNPCの会話システム、ダイアログシステムを作成しました。 前回の記事: 今回の記事では、RPGに必須となるプレイヤーのパラメータ設定の実装、そして武器・防具・回復など各種機能を持たせるためのアイテムを作成していきます。 Scr...

Unity C# 2DレトロRPGゲームの作り方講座へ>>



Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

コメント

  1. KAN より:

    村人の隣に行っても会話ができないのですがもう少し追記お願いできないでしょうか。

  2. ああああ より:

    NPCEventのCreateAssetMenuの行の”が全角になっているミスを発見しました。
    重箱の隅をつつくような指摘ですが一応記載しておきます。
    よろしくお願いいたします。

    • Unity入門の森 より:

      誤植報告ありがとうございます。
      たしかに右側のダブルクォーテーションが全角になっていました。
      こちら修正しておきました。

  3. TH より:

    すいません、コメントが反映されていないようなので、改めてお送りします。
    バージョン2021.3.5f1で、macの環境で作業をしています。
    MassEventにNPCEventの項目がありません。MoveMapしか表示されていない状態です。
    8章で追加されていたプロジェクトをDLさせていただいて、使用しています。
    NPCEventはバージョンをさらに落とす必要がありますでしょうか。
    それとも別の方法がありますでしょうか。
    原因がわからず困っています。
    ご確認いただけると幸いです。

    • Unity入門の森 より:

      文面だけで環境差のある個別質問回答はかなり厳しいので回答が難しい状態です。
      1記事目の導入で書いた通り画面操作部分など2019、2020、2021バージョンで若干見た目や開発メニューの位置や名称に差が出ます。
      講座と同じ画面で作っていきたい場合2019LTSでスタートして進めてみてください。

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