「Titanium Court」のストーリーレット・システムが、大規模なストーリー制作を支える仕組み

大きな話題を呼び、インディペンデント・ゲーム・フェスティバル(IGF)アワードでシーマス・マクナリー・グランプリを受賞した、ソロデベロッパーAPトムソンの新作『Made with UnityTitanium Court』が、先週リリースされた。
GDC開催週にキャプチャされたAP氏との対談をご覧ください。この新作ストラテジーゲームについて、そしてその一意でダイナミックなストーリーテリングを実現するために彼が開発したツールについて、AP氏自身の言葉で語っています。
APトムソン:「Titanium Court」とはどのようなものですか?実は、その質問には答えるのが非常に難しいのです。
そこは妖精と魔法の世界ですが、この世界の魔法は、あなたが想像するよりももっとありふれたものかもしれません。そして、この世界のありふれた側面は、あなたが想像するよりももっと魔法のようなものなのです。

ストーリーを最優先にしたゲームの制作
『Titanium Court』は、さまざまなジャンルが奇妙に融合した作品だ。つまり、ちょっとしたマッチ3の要素が入ってるわけですね。タワーディフェンスの要素が少し入っていて、リソース管理や経済シミュレーションを行い、放火シミュレーションも行っているんだ。このゲームでは、いろんなことが起こっています。また、このゲームはテキストを読む場面が多いナラティブ重視のゲームであり、ナラティブの展開のペース配分がとても興味深いものになっています。勝っても負けてもナラティブは進んでいくという構成で、その合間にローグライク風のプレイが挟まれているような感じです。
これは読書が好きな人向けのゲームだと思うのですが、残念ながら、私の知る何人かの大学教授からは、現代人はもう読書という行為の仕方を忘れてしまっている、とよく言われています。
読む価値は十分にある。

動的ストーリーテリングのためのツールの構築
『Titanium Court』のナラティブ構成は、現在では「ストーリーレット・システム」として広く知られる手法を採用しています。私が「ストーリーレット」という言葉を思いついた当初は、その言葉自体を聞いたことがなかった――
これを一つのシーンとして捉えてもよいでしょう。
ストーリーレット・システムが真に実現を可能にするのは、ゲーム内で実際に何が起こったかによって、ある出来事が起こることもあれば、起こらないこともあるような、非常に動的な物語です。
つまり、これでナラティブの構成を設計できるわけですが、私はこれを「瓶に入ったメッセージ」のようなデザインと呼んでいました。具体的には、シーンファイルを開き、そのシーンについて知っておくべきことすべて――ゲーム内のどこで起こるかといった情報も含めて――を書き込んで、それを瓶に入れ、海に放り投げるようなものです。そうすれば、数週間後、私がゲームをプレイしている最中に、そのシーンが実際に展開されることになるのです。

UNITYでのストーリーレットのマネージメント
つまり、動き回るキャラクターや、特定の場面で突然現れる縦向きイラストがあるんです。そして、これらはすべて、JSONスクリプトファイル内に存在する単一のコンテナにまとめられています。また、このファイルの中には、このシーンがゲーム内のどこに表示されるかを示すメタデータが多数含まれています。つまり、このシーンはこの章で表示されるべきだとか、このシーンは他の特定のシーンを見た場合にのみ表示されるべきだとか、あるいはこのシーンはゲーム内で特定の条件を達成した場合にのみ表示されるべきといった情報があるわけです。
これで、複雑な依存関係のウェブを処理できるんだと思います。
同時にトリガーされるシーンが多くなりすぎないように、ロック機能がビルトインされています。つまり、こういう仕組みになっているんです。特定のシーンについて、「さあ、この登場人物たちの行動をロックして」と指示を出すことができるんです。
最初は、いわば個別のスクリプトファイルとして開始します。つまり、これはJSONファイルのようなもので、そこにすべての台詞や舞台ディレクティブ、そしてメタデータを入力するのです。しかし、その後、私が作成したUnity エディター内のプリプロセッサスクリプトに処理を引き継ぎます。このスクリプトは、それらのJSONファイルをすべて読み込み、それらをすべてプレハブに変換し、プレハブにデータを設定します。さまざまなブーリアンフラグなどの適切なデータが、それらすべてのプレハブと共に単一の中央インデックスオブジェクトに登録され、そのオブジェクトが、適切なタイミングで正しいシーンを選択するという実際の技術的な実装を処理できるようになります。
このようなシステムでは、互いに独立したシーンが多数存在し、「これがこの順序で起こる」とまとめた単一のバイブルやドキュメントがないため、大量のバックストーリーを把握するのが必ずしも容易になるわけではありません。まさにそれが我々の求めていることです。プレイヤーの状況に応じてダイナミックに反応するシステムが欲しいからです。しかし、その一方で、物事がどのような順序で起こるかを完璧に把握するのは、少し難しくなるかもしれません。
つまり、ゲーム内のナラティブシーンを構成する上で、非常にモジュール的なアプローチと言えるでしょう。
Steamのキュレーターページで、Made with Unityを使って制作されたその他のゲームを探ってください。また、Unityブログやリソースハブでは、Unity開発者によるさまざまなストーリーを紹介しています。
