MRが楽しい

MRやVRについて学習したことを書き残す

DialogueSystemのダイアログマネージャーの使い方

本日は DialogueSystem の勉強枠です。
DialogueSystem のダイアログマネージャーの使い方を確認しながら記事にします。

Dialogue System for Unity

Dialogue System for Unity は会話イベントや吹き出しを Unity で簡単に実装できる有料アセットです。
Cinemachine や Input System などのライブラリにも対応しており、様々な機能やサンプルUIを提供します。
assetstore.unity.com

Dialogue Systemのダイアログマネージャーの使い方

DialogueSystem には開発に役立つドキュメントページが用意されています。
今回は以下のダイアログマネージャーの使い方のページを翻訳しつつ、実際に手順を試したものを記事にします。
www.pixelcrushers.com

前提条件

事前に Dialogue System のインポートを行った Unity プロジェクトを作成してください。
詳細な手順は以下の記事のアセットのインポートを参照ください。
bluebirdofoz.hatenablog.com

DialogueManagerプレハブ

DialogueManager プレハブ(ダイアログマネージャー)はランタイムアクティビティを調整し、ダイアログシステムのランタイムデータを含むLua環境を維持します。
ダイアログマネージャーを追加するには以下のアセットをシーンにドラッグします。

Assets/Plugins/Pixel Crushers/Dialogue System/Prefabs/Dialogue Manager.prefab

既定の設定では DialogueManager はシーン切り替え後も保持され、シーン中に 1 つのコピーのみが存在します。
通常メインシーンに追加されたダイアログマネージャーを 1 つ使用します。

ロケーションシーンに他のダイアログマネージャーを配置して、メインシーンから入らなくてもテストできるようにすることができます。
ただし、通常のゲームプレイではメインシーンのダイアログマネージャーがロケーションシーンのダイアログマネージャーを破壊することに注意してください。

DialogueSystemControllerコントローラ

Dialogue System Controller コンポーネントはダイアログシステムの設定を保持します。

Initial Database

ダイアログマネージャーは起動時にここに設定されたダイアログデータベースをロードします。

Display Settings

[Display Settings]セクションには、次のサブセクションがあります。

  • Localization Settings:言語ローカリゼーションの処理方法を制御します。
  • Subtitle Settings:ダイアログUIでの字幕の表示方法を制御します。
  • Camera & Cutscene Settings:カットシーシーケンサーの動作を制御します。
  • Input Settings:会話でのプレイヤーの応答メニューの動作を制御します。
  • Alert Settings:ダイアログUIが画面上のアラートメッセージを表示する方法を制御します。

特定の会話のこれらの設定を上書きするにはダイアログエディタで[Conversations]タグを開きます。
[Menu-> Conversation Properties]を選択してから[Override Display Settings]にチェックマークを付けます。

Persistent Data Settings

[Persistent Data Settings]セクションではセーブデータに含めるデータとシーンの変更後に保存されるデータを指定できます。

Other Settings

[Other Settings]セクションには、その他の設定が含まれています。

  • Instantiate Database:Unityエディターのプレイモードでアセットを直接使用する代わりに、ダイアログデータベースのコピーをロードします。
  • Dialogue Time Mode:デフォルトではダイアログシステムは Time.timeScale に依存しない[Realtime]モードで実行されます。ダイアログシステムで Time.timeScale を尊重する場合は[Dialogue Time]モードをゲームプレイに設定します。
  • Debug Level:Unityエディターのコンソールでのダイアログシステムのロギングレベルとビルドでのプレイヤーログファイルを設定します。


その他のコンポーネント

DialogueManager プレハブには他に次のコンポーネントが設定されています。

  • Instantiate Prefabs:基本的な UI プレハブをダイアログマネージャーのキャンバスにインスタンス化します。これらにはセレクター要素、クエストトラッカーHUDとクエストログウィンドウが含まれます。
  • Input Device Manager:マウス、ジョイスティック、キーボードコントロール間の切り替えを適切に検出し、UI ボタンにオートフォーカスするタイミング(ジョイスティックとキーボード モード)とボタンをフォーカスしないタイミング(マウス モード)を UI が認識できるようにします。
  • シーンに標準の Unity Evemt Suste, がない場合は、それを追加する必要があるかもしれません。

デモのダイアログマネージャーには、次の追加コンポーネントが設定されています。

  • Save System:セーブデータを処理し、シーンの切り替え間でデータを保持します。
  • Standard Scene Transition Manager:シーンの切り替え中にフェードアウトするために使用されます。次のシーンを読み込み中に読み込みシーンを表示することもできます。
  • Player Prefs Saved Game Data Storer:Save System が PlayerPrefs に保存できるようにします。
  • Json Data Serializer:Save System の JSONリアライゼーションを提供します。


ダイアログマネージャ設定ウィザード

オプションのダイアログマネージャ設定ウィザードは各設定の詳細な説明と共に構成を順を追って説明します。
ウィザードを実行するにはダイアログマネージャーの[Wizard]ボタンをクリックするか、メニューから[Tools -> Pixel Crushers -> Dialogue System -> Wizards -> Dialogue Manager Wizard]を選択します。