イベントのテキスト化は想像以上に大変なことがわかった。わはは。
当初はパラメータ類だけテキストファイルに持たせればよいと考えていた。
たとえば、イベントの発動条件にしろ、イベントの内容にしろ、ある固定のロジックがあって、そのパラメータだけ変えれば、イベントの内容が変わる、と。
そして、そのパラメータをファイルに外出しにしておいて、状況によってファイルから適切なパラメータ定義を取り出す仕組みでよいかな、と。
甘かった。
というのも、以下の状況に対応しようとした場合、パラメータだけでは厳しいんじゃないかと。
たとえば、ストーリーのある進行状況で、ある町のある場所(宿屋なり道具やなり)に行った場合に、その場にいつもと違う人物がいて、メニューに話しかける、みたいなコマンドを増やしたい場合、とか。
そこまで柔軟にしなくても、たとえば、ある状況である場所に行った場合、イベントが発動してアクターとのダイアログが始まりました、と。
そこで、アクターに質問されたとする。
アクター:「いい儲け話があるんだが、いっぱいつきあわねえか?」
プレイヤー:「はい/いいえ」
で、プレイヤーの返答によってその後の反応が変わるっていう、もっともありうべき状況をどうするか。
もちろん、当初の予定通り、定義ファイルにすべてパラメータとして定義することも、このくらいなら、たぶん不可能ではない。
しかし、それだと定義ファイル自体が非常に煩雑でメンテナンスしにくかったり、デバッグしにくいフォーマットになりそうだということに、今日いろいろ試してみて気が付いたわけだ。
じゃあどうするか?
いわゆる独自のスクリプト言語を作る?
Unityのスクリプト自体、スクリプト言語なのに、その中でさらに独自のスクリプト言語をつくっちまうってか。
どうしよう、そこまでやるかってところで、頭抱えていた。
あしたは、久しぶりのUnityイベントに参加するので、ちょっと気分をリフレッシュして、何かが降りてくるのを待つことにしよう。わはは。