Godot 4で会話のダイアログを自作してみた!

2024/05/17
おはこんばんにちは!最近はGODOTばかり触っているギルガメです!

今回は、Godot 4を使ってジャンプキング風のゲームにおける会話のダイアログシステムを自作してみました。アドオンを使ってダイアログシステムを追加できますが、アドオンでは自由度が足りないと感じることもあります。そこで、今回は自作のダイアログシステムを作ってみました。



アドオンでも十分だけど、最低限の機能と今後はカスタマイズを考慮して作ってみました。

構成は上記のようになります。
  • Dialog: CanvasLayerです。ここに必要なものを設定していきます。
  • ColorRect: ダイアログの黒い背景の部分です。おしゃれなダイアログなどカスタマイズしやすいです。
  • Char: キャラクター画像用のSprite2Dです。
  • Next: ダイアログの会話のテキストが終わった時に点滅して知らせてくれるアイコン用です。
  • TextDelay: Timerです。0.1秒ごとに文字を表示するためのものです。
  • Selectpanel: 選択表示用のパネルです。
  • VBoxContainer: 選択できるボタンの配置を良くするContainerです。
  • Button1, Button2, Button3: 選択用のボタンです。最大3個まで選択の表示できるようにしています。

次にキャラクターごとにセリフが違うのでキャラクターにテキストファイルを設定して、テキストファイルから表示する仕様で作りました。

var txt = FileAccess.open(file_path, FileAccess.READ) var dialog: Dictionary = {  "id": 0,  "char": {"name": "", "pos": "1", "img": "", "size": 11, "posY": 476},  "content": [],  "type": {"dialog": false, "option": []} }

上記のようにファイルを読み込んでDictionaryで細かく設定していきます。
ファイルは下記のように設定しました。

0 1 ギルガメ res://assets/sprites/portraits/gilgame-p.png 11 476
…君は誰?

0 1 ゴーレム res://assets/sprites/portraits/golen-p.png 15 420
ワタシ ハ ゴーレムココ ハ メモリアルダンジョンココカラ デタイカ?

0 select option 1 わからないけど、ここから出たい… option 99 ずっとここにいてもいい

1 1 ギルガメ res://assets/sprites/portraits/gilgame-p.png 11 476
ここから出たい… どこにいけばいいの?

1 1 ゴーレム res://assets/sprites/portraits/golen-p.png 15 420
ウエ ヲ メザセキオク ノ カケラ ヲ ミツケルンダ

99 1 ギルガメ res://assets/sprites/portraits/gilgame-p.png 11 476
ずっとここにいてもいい

ゴーレムに話した場合は上記のテキストファイルを読み込んでダイアログをスタートします。
select を感知する選択用のパネルを見せて、選んだものによって次の会話にいけるようになります。

今回は、Godot 4を使ってジャンプキング風のゲームにおける会話のダイアログシステムを自作してみました!アドオンでは実現しにくいカスタマイズや自由度を、自作のダイアログシステムによって得ることができます。 ぜひ、自分のゲームにもこのシステムを取り入れて、キャラクター同士の会話をより魅力的に演出してみてください!

次回もお楽しみに!
© Copyright 2024 YOSAPPS. Powered with by YOSAPPS