💬

Godot 会話アドオン「Dialogic」「Dialogue Manager」比較

2022/12/11に公開

Godotの会話アドオン「Dialogic」と「Dialogue Manager」についてざっくりと紹介します。
どちらもGodot3とGodot4版があり。会話シーンを楽に作ることができるアドオンです。
ここではGodot4版について書いています。

先にまとめ

  • Dialogic は会話シーン内でやりたいことが大体できるぐらい機能いっぱい。
    がっつり会話シーンならこれをベースにゲームを作っていける
  • Dialogue Manager はシンプルで使いやすい!
    マップ上のフキダシやUI系のシーンとかで活躍しそう
  • どっちも使うのもあり


どちらのアドオンも有効化すると上部メニューバーに表示されます。
ファイルシステムにてリソースをダブルクリックするとアドオンもエディタで編集画面が開きます。

Dialogic

https://github.com/coppolaemilio/dialogic
Dialogicでは、高機能な会話シーンを作成することができます。
ADVやノベルゲームのような、複数キャラクターの立ち絵を表示したりするリッチな会話シーンに向いています。
Dialogic内の変数やGDScript側とのシグナルでの連携などが便利です
演出の追加や、ややこしい機能要求にも応えられるアドオンです。おすすめ!

Godot4で大きく変わっており、内部的なつくりからエディタまで一新されています。
現在もアルファ版で開発中なので作りかけの機能や、大きな変更があります。

タイムラインエディタ

右バーにイベントコマンドがあります。見ての通りいろいろできます。

名前 概要
Text テキストを表示する
RichTextLabelがベースなので、BBCodeが使えるが、それに加えて文字列内で[]で囲む特殊文字でいろいろできる
ウェイト・自動文字送り・画像・シグナルemitなどなど
Character キャラクターの表情・ポジションの設定を変える
position ポジションの細かい位置設定を変える
Save セーブ
Choice 選択肢表示
condition 選択肢のコマンド
Jump Labelにジャンプする
Label ジャンプするためのラベル
Wait floatでウェイトを指定してその間止める
End Timeline 実行中のタイムラインを終了する
Background 背景画像を変更する
Glossary 用語集の操作ができそう、開発中?
History 会話ログの操作ができそう、開発中?
Music BGMの再生
Sound SEの再生
Change Style ダイアログのテンプレートシーンを変更する
テンプレートシーンはGodotのシーンなので編集可能
Voice ボイスの再生
Signal Godotのシグナルをemitする
入力した内容がargでsignal_eventというシグナルとなる
Set Variable DialogicのVariableEditorで定義した専用の変数に値を入れる
これはDialogicのAutoLoadシングルトンを介して他のGodotスクリプトから値の取得・設定も可能
Call Node 現在のシーンのNodePathと、関数名を指定して、それを実行する。
引数も設定できる
text Input ユーザーが入力できるテキストダイアログを表示する
DialogicのVariableに入力値が入る

アドオンのコードやシーンを参考にして内部を弄れば既存コマンドの動作の上書きやオリジナルのコマンドの追加もできます。
Dialogic機能としてオリジナルのコマンドも追加できるようになるのも検討中だとか?

左のサイドバーの「→ Text Editor」からテキスト編集をすることもできます。
テキストに限ると、VisualEditorより早く作成していけますね。

キャラクターエディタ


キャラクターのportraitを定義できます。
表情やポーズの差分として画像かシーンを指定します。
シーンにしておくとさらにシーン側でアニメーションをつけたりメッシュアニメーションにできたりと表現の幅が広がります。
Styleからキャラによってダイアログを変えたり、TypingSoundsでポポポポ音を設定したりできます。

設定


設定にぶちこまれているエディタ機能が多い!
タブは、一般設定、翻訳、キャラ表示、選択肢、Godot3版からのコンバーター、用語集、履歴、セーブ、テキスト、変数ですね。

「VariablesEditor」でDialogic変数の管理、「GlossaryEditor」で用語集の管理ができます。
これらはGodot3では設定の中になかったので、分かりにくいかもしれません

Dialogue Manager


https://github.com/nathanhoad/godot_dialogue_manager
Dialogue Managerは、シンプルで使いやすい会話ダイアログです。
ゲーム上で実行する、テキストを表示するシーンとスクリプトが少ないのが◎

マップ上でNPCから出るフキダシや、プレイヤーへの説明ポップアップなど、テキストを
Dialogicよりは機能は少ないですが、会話シーンにもじゅうぶん使えます。

addons/dialogue_manager/example_balloon/ にサンプルのコードとシーンがあり、これをカスタマイズすることで目的にあわせたダイアログにできます。


どっちも使う、使い分けする

DialogicからDialogue Managerを出す、ようなこともできます。
キャラが話している時に他のキャラの反応をフキダシで出したり、フキダシを連続で大量にだして群衆の反応を表現する、などができそうですね。

次回の記事では、具体的なコードやシーン例、プロジェクト配布などがしたいですね~……

Discussion