シナリオファクトリー

シナリオファクトリーっていうツールがあります。

体験版でおおよその使い勝手はわかるやつなんでそれを見てもらえればという感じですが、JSON ファイルに定義された文章を、置換テーブルに沿ってキャラクター名とか地名とかを置換しながらランダムで抽出して並べるというツールになっています。

進度という概念があって、進度1の間は進度1のデータだけ抽出、ということをやっています。各進度の最後でだけ表示する文章というものも設定できるので、シーンのつなぎの文章を設定できるようになっています。

進度が4段階なのはたぶん起承転結を意識してるからだとは思うんですが、これって単に状態遷移なんで、ひとつのデータセットで完結させるのはあきらめて、ひとつのシーンで4つの状態まで持つことができると考えて、複数のシーンを組み合わせて完結するようにシナリオファイルを作ってやるのがいいんだろうと思います。

で、現状はそれをやるにはちょっと不足があり、たとえば条件分岐や変数がないので、前段のシーンでこういう状態になったので、次のシーンではこういう展開にする、みたいなことはできません。たとえばタグのフィルタで手動でやることになったりする。それは思っていたツールとは違うので、そのへんができるツールは自分で作るしかなさそうですね、となっています。

結局、そのような複雑な要求に応えるためには全自動で進む eramaker が必要なんですけど、eramaker は記述が自由すぎるし、データセットを作るのが面倒なので、そこの間をうまく取りたいんですよね。

センテンスが状態を持ち、あるセンテンスが出力されたら状態を push/pop する、ということをやり、現在の状態にマッチするセンテンスをフィルタリングして取ってきて並べる、そういうツールがあればよさそうです。

データセットは必ずしも JSON でなくてもよく、たとえばCSVとかでもぜんぜんよさそうですが、センテンス内で改行したいとかってなると面倒なのでフラットなテキストデータのほうが記述はしやすいでしょう。パーサが必要だけど、そういうパーサは今日日簡単に書けるので、パーサを書いてよろしくやるだけでよいです。

JSで書けばたとえばRPGツクールMVのプラグインにしてしまってゲーム内で動的に台詞を出力したりみたいなことができます。この場合パーサをプラグインに同梱するのはやりすぎなので JSON に変換して JSON から抽出して出力する部分だけプラグインにすることになるでしょう。

夢は広がるけど時間は有限なのでここまではただの妄想なんですが、気が向いたらなんか作るかもしれません。


掲題のツールについては面白いツールではあるので興味があったら体験版を触ってみるといいと思います。

こちらからは以上です。