見出し画像

AIがゲームマスターに! 「NFT-RPG用プロンプト生成エンジン」について

こんにちは!近持大和です。
PlayMining Verseの第一弾として展開している『カムイバース』というプロジェクトに裏方として参加しています。

漫画家の藤原カムイ先生を創造神として生み出された世界『カムイバース』では、住民となったプレイヤーたちの行動が日々歴史として刻まれていきます。

そのアクティビティの一つとして「プレイヤーがゲームマスターに行動を宣言すると、それがリプレイ小説となって公開されて世界の歴史になる」という企画(NFT-RPG)が行われています。

NFT-RPGの楽しみ方も別で書きたいと思いますが、今回の記事ではNFT-RPGのゲームマスターをAIに務めさせるための技術的な側面についてご紹介いたします。

▼はじまりはいつもの無茶振りから

NFT-RPGは、ゲームマスターが提示したシチュエーションに対する行動をプレイヤーが宣言し、ゲームマスターがその内容を元にしてリプレイ小説を執筆する、という流れで行われています。

ある時、DEA社のCo-CEOのkozoさんから「AIがゲームマスターをやったら新しいと思わない?」という無茶振りの相談を受けました。(kozoさんの無茶振りはいつものことなのでそれほど驚きません)

実はChatGPTにショートストーリーを作らせることはそれほど難しくありません。適当にシチュエーションをプロンプト(AIへの指示)として渡すだけでも、AIはそれっぽい小説を生成してくれます。
しかしゲームのリプレイ小説のように、プレイヤーが設定したキャラクターを違和感なく登場させ、さらにシナリオに沿った小説を生成させるためには、プロンプトをかなり調整する必要があります。

毎回プレイ内容に合わせてプロンプトを書くのはすごく大変です。
そこで、安定してリプレイ小説を生成させるためのプロンプトを構築するシステムである「NFT-RPG用プロンプト生成エンジン」を開発しました。

▼NFT-RPG用プロンプト生成エンジンの構成

「NFT-RPG用プロンプト生成エンジン」は、現状はGoogle Spreadsheetの数式とGAS(Google Apps Script)で実装されています。
特にGoogle Spreadsheetにこだわりがあったわけではなく、元々シミュレーション用にExcelを使っていたのですが、これを『カムイバース』のメンバーとテストプレイをするためにSpreadsheet化して、そしてそのまま魔改造を繰り返した、というのが経緯です。
正直、とんでもなく複雑な仕様になってきているので、そろそろ別のプログラム言語に移植しないといけないなあ、とは思っています。

「NFT-RPG用プロンプト生成エンジン」は、主に3つの仕組みで構成されています。

  • プリセットプロンプト

  • 性格スクリプト生成プログラム

  • ストーリー分岐フラグ

上記の3つにつきまして、それぞれ簡単にご紹介します。

▼プリセットプロンプト

これは、生成する小説の基本的な仕様を定義するための命令群です。
この仕組みによって、世界観に合った小説を安定的に生成することができるようになっています。

『カムイバース』のNFT-RPGには、ファンタジーRPGの設定をベースに『カムイバース』の世界観に合わせてチューニングしたプリセットプロンプトを導入しています。
これを、例えばSF用の設定に差し替えるだけでSF小説のようなリプレイを生成することもできるようになっています。
『カムイバース』以外のコンテンツでNFT-RPGを行う場合にも、全体のシステムを大きくいじることなく横展開ができるような設計にしています。

▼性格スクリプト生成プログラム

『カムイバース』のキャラクターシートは、将来的に本格的なTRPGとして遊べるルールを作ることを想定して、属性や能力値などのパラメータを詳細に設定できるようになっています。

しかし、AIは能力値を数字で解釈することができません。
例えば「このキャラクターの身体の能力値は"5"だ」とプロンプトで設定しても、AIはそれが何を示すかを判断できません。(正確に言いますと、判断基準が毎回変わってしまうので安定した結果が得られません)
下手なプロンプトを設定すると「オレの身体は5だぜ」とかいう意味不明なセリフが生成されてしまったりします。

これを避けるために、能力値や属性などのパラメーターを分析して、それをAIが解釈できるスクリプトとして出力するプログラムを実装しています。
これによって、例えば「身体:5、知力:1、属性:カオティックグッド」のキャラクターがいわゆる「愛すべき脳筋バカ」として振る舞う、などという小説が生成できるようになりました。

▼ストーリー分岐フラグ

これはおそらくはChatGPTの仕様によるものだと思われるのですが、AIは "明確なバッドエンド" を生成してくれません。
どんなに絶体絶命なシチュエーションをプロンプトとして設定しても、うまい具合に(悪く言えばご都合主義的に)その状況を打破して、無理やりハッピーエンドにしてしまいます。

とは言え、選択を誤ればバッドエンドになるからこそゲームは緊張感があって楽しいものです。
これに対応するため、「プレイヤーが特定の条件(フラグ)を満たしたかを判断してストーリーを分岐させる」という処理を組み込んでいます。
※現時点では汎用的な判断ロジックはまだ完成しておらず、シナリオによっては手作業でのフラグ管理を行っています。

現状では3つのエンディング(ハッピーエンド、ノーマルエンド、バッドエンド)に分岐できるようになっていますが、将来的にはもっと複雑なストーリー展開にも対応できるようにしたいと考えています。

▼NFT-RPGへのお誘い

この原稿を書いている時点(2023年9月24日)では「NFT-RPGプロンプト生成エンジン」のバージョン "2.1.1" が本番導入されており、今も改善やチューニングが進んでいます。

このエンジンの実装により、『カムイバース』のNFT-RPGではこれまで通りの達人ゲームマスターがリプレイ小説を執筆する「メインシナリオ」に加えて、AIがゲームマスターを務める「サブシナリオ」でも遊ぶことができるようになりました。

新時代のTRPG/Play by WebゲームであるNFT-RPGをぜひ体験してみてください。

『カムイバース』のX(旧Twitter)より
https://twitter.com/verse_kamui

▼『カムイバース』公式サイト

#NFTRPG

この記事が気に入ったらサポートをしてみませんか?