dialogue manager
https://youtu.be/UhPFk8FSbd8
https://www.youtube.com/watch?v=G_TN8jz4v9o
独立したファイル上で、独自DSLを用いて簡単なメッセージ出力と選択肢の提供とメソッドの実行を簡単に記述できる
基本的にはproject -> tool -> create copy of dialogue example ...でコピーをダイアログを作成
コピーダイアログをいじって、ゲーム内からはカスタマイズしたコピーダイアログをロードして扱う
await
.dialogue 記法
~で始まるのがタイトル
ブロックを区切るのに使われる
タイトルはgoto文のラベルに近い使いかたがされる
=> ENDでダイアログの終端
またはファイルのEOFでも終端判定される
[[Hi|Hello|Howdy]]のようにするとその中からランダムで一つ選んで表示
{{variable}}で変数展開
variableはグローバルかダイアログマネージャーの設定で指定する
一行を複数行に分割する場合は\nで改行するか、インデントを行う
\でエスケープ
bb_codeに対応しているのでマークアップ可能
[#と]でか囲むと注釈
%で複数行のうちランダムに一つ選択
%3,%2等すると全体の割合から確率でその行を選択してくれる
=>でタイトルのブロックにジャンプする
ドラクエの無限選択肢を実現できる
=><でタイトルのブロックにジャンプして、そのブロック終了後にこの行に戻してくれる
関数呼び出しのようなジャンプを実現
importもできる。
import "res://snippets.dialogue" as snippets
再利用可能なブロック部分を読み込んだりできる
snipets/hogeとしてタイトルを指定してジャンプできたりする
-で選択肢を提供する