世界を動かす技術を、日本語で。

HNに表示: どんな本もテキストアドベンチャーゲームに変えるAIを作りました

概要

KathaaVerse は、AIを活用して任意の本を インタラクティブな冒険 へと変換するWebアプリ。 ユーザーはお気に入りの物語で 自分だけの選択肢を楽しめる。 ジャンルのリミックスや有名作品の新解釈も可能。 進行中のプロジェクトで フィードバックも歓迎。 多様なジャンルの物語体験を提供。

KathaaVerse概要

  • KathaaVerse は、どんな本でも AIがテキストアドベンチャー化 するWebアプリ
  • ユーザーの選択によって 物語が分岐・進行 するシステム
  • お気に入りの本を 自分だけの物語 として体験可能
  • ジャンルのリミックス機能で、例えば Duneをノワール探偵物語 としてプレイ可能
  • 現在 開発中 のプロジェクト、 意見・要望も受付中

対応ジャンルと作品例

  • Fantasy & Magic (ファンタジー・魔法)

    • Alice in Wonderland:アリスが不思議の国へ迷い込む冒険
    • Harry Potter and the Philosopher's Stone:魔法学校Hogwartsでの新たな生活
    • Matilda:読書好きな少女Matildaの超能力と家族との葛藤
    • Ramayana:Rama王子と誘拐されたSitaの壮大な叙事詩
    • The Hobbit:Bilbo Bagginsのドラゴン退治の冒険
    • The Little Prince:小さな王子の宇宙と地球での出会い
    • The Lord of the Rings:壮大なファンタジー冒険譚
  • Science Fiction (サイエンスフィクション)

    • Dune:砂漠の惑星を巡る貴族間の戦い
    • Inception:夢の中で情報を盗む男の物語
    • Interstellar:人類存続を懸けた宇宙探査
    • Neuromancer:天才ハッカーとAIの対決
    • Star Wars: A New Hope:反乱軍に加わる青年の冒険
    • The Hitchhiker's Guide to the Galaxy:地球滅亡後の宇宙珍道中
    • The Martian:火星に取り残された宇宙飛行士のサバイバル
    • The Matrix:現実の真実を知るハッカーの物語
  • Contemporary Fiction (現代小説)

    • Five Point Someone:IITでの学生生活と友情
    • Oppenheimer:原爆開発に関わった科学者の物語
    • Pride and Prejudice:古典的恋愛小説
  • Dystopian & Thriller (ディストピア・スリラー)

    • 1984:全体主義体制への抵抗
    • Brave New World:科学と管理社会を描くディストピア
    • The Hunger Games:生死を懸けたサバイバルゲーム

使い方と特徴

  • 好きな作品を選び Start! ボタンで冒険開始
  • ストーリー進行中に 選択肢 を選んで物語を自分好みに展開
  • ジャンルや設定の リミックス も可能
  • AIが自動生成 するため何度でも新しい体験
  • ユーザーの意見や要望 を随時受付中

今後の展望

  • より多くの作品やジャンルへの対応拡大
  • ユーザー体験の向上 を目指す継続的な機能追加
  • コミュニティからの フィードバック重視

お問い合わせ・フィードバック

  • 開発中 のため、バグや要望は 随時受付
  • KathaaVerse 公式サイトまたはサポート窓口まで連絡

Hackerたちの意見

こういうツールは、どうやって多くのナラティブチャットボットに見られる現象を避けているのかな?ユーザーが物語を完全に操って、AIがただの従順な応答者になっちゃうやつ。試してみると、いつも予測可能で浅くて、特に時間が経つにつれて繰り返しになっちゃうんだよね。もしAIにクリエイティブになったり、違う行動をするように促さなきゃいけないなら…それって本当に違う行動なの?

残念ながら、これが根本的な欠陥なんだ。クリエイティブモードでマインクラフトをプレイするのに似てる。

私の経験だけど、Grok 4は初めてそう感じなかったモデルだった。もしかしたら、私の会話が短すぎて、媚びへつらう行動に戻らなかったのかも。

ここで解決すべき核心的な問題は時間の感覚だね。時間を理解するエージェントシステムを構築しないと、良い長期的な体験は作れない。LLMの周りにシンプルなラッパーのチャットボットを作ると、LLMは時間の感覚があまり良くないから、これがひどいことになるんだ。

僕もDMとしてバニラのChatGPTで似たような体験をしたことがあるけど、賢いプロンプトの工夫やコンテキストウィンドウの管理をすれば、解決できるか、少なくとも体験を劇的に改善できると思うよ。例えば、セッションの前にプロットのアウトラインやキャラクターリスト、ストーリーツリーなんかを生成する計画ステップを実行させることができれば、ゲームセッション中の参考にできる。だけど、モデルの同意性の問題は残るかもしれないね。つまり、準備をしても、モデルは頼んだことに対して何でも「はい」と言う傾向があるから、良いDMはいつ「いいえ」と言うべきかを知ってるってみんな知ってるよね。

ゲームのアクションをしっかりと地に足をつけるために結構努力したよ:https://ianbicking.org/blog/2025/07/intra-llm-text-adventure とはいえ、ここで役立つプロンプト技術がたくさんあると思う。(実際、ガイド付き思考のセクションはプロンプトだけの技術の一例だよ:https://ianbicking.org/blog/2025/07/intra-llm-text-adventure...)LLMがメインのユーザーインターフェースの一部ではないテキストを消費・生成するためには、少なくとも前処理と後処理が必要だよ。でも、インタラクションの小規模な驚きを増やすためのガイダンスを入れることができるからね。例えば、LLMに決定を考える前にその時の客観的な環境を描写させることで、意図したプロットの方向性のために設定を後付けすることがないようにしてる。大きなアークには、全体をまとめるための記憶のようなものが必要だね。それには時間をかけた繰り返しも含まれる。LLMに自分を繰り返さないように頼むこともできるけど、それができるのは、自分が何をしたかを理解している場合だけなんだ。そして、ある程度は自分が何を「している」のかを理解する必要がある。LLMはプレイヤーと同じように短いターンを生成しているから、複数のターンにわたって明らかになる驚きを作りたいなら、先を計画するための余裕が必要なんだ。

チャットGPTが公開される前は、AIダンジョンがあったんだ。あれは本当に「はい」としか言わないやつだった。王様と王女がいるシーンで「悪魔を食べる」と書くと、悪魔をそのシーンに登場させて、どうやって顎を外してそれをむしゃむしゃ食べるかを描写してくれたんだ。

これを試してみたんだけど、一つのアプローチはシンプルなチャットインターフェースを避けることだね。ゲームを「ユーザー」として扱って、プレイヤーのテキストを中継させる感じ。つまり、>> そうすると、LLMはプレイヤーじゃなくてゲームマスターやルールに従うように指示を出すことになる。

芸術がコミュニケーションだとしたら(私はそう思ってる)、なんでAIが生成したものを読んだり聞いたりしたいと思うんだろう?消費が終わったら、振り返ったり他の人と話したりする意味がないじゃん。ほとんどの人は他人の夢に興味すらないし。もしその機械が神のような知能を持っていない限り、全く意味がないよ。

他の人が自分の話していることを楽しめないっていうのは間違った前提だよ。もしストーリーテリングのスキルが高くて、相手を気遣う心があれば、ほとんど何でも面白くなるよ。夢だってね。活動は他の人と話さないと意味がないっていう結論には同意できないな。私の人生の中で最高の体験の多くは、自分だけのためにあったもので、他の誰かと共有しようなんて思わなかったものだし。私は結構社交的な方だよ。

消費が終わったら、振り返ったり他の人と話したりする意味がないじゃん。もし芸術がコミュニケーションだと信じているなら(私はそう思ってる)、なんで「消費」後に振り返ったり話したりしたくないの?

よくやった!私も家族が遊べるような同じようなものを作ったよ。最高の結果を得るためのアドバイス:1) LLMが提供する選択肢を構造化すること。「choice_type」を追加して、その選択肢が何をするべきかをLLMに指示する。例えば、アクション、対話、調査、ジャンルに合ったものを選ぶ—LLMは物語の開始時にこれを生成することもできる—それから「選択肢はナレーターにアクション重視の瞬間に焦点を当てさせるべき」とか、「選択肢はナレーターにシーン内の二人以上のキャラクター間の対話に焦点を当てさせるべき」とかね。2) 選択肢のためにツールを呼び出すときは、必ず理由を考えて、要約して、将来のナラティブリクエストの文脈として提供するナラティブ要約に含める。例えば、要約はこうなるかも:「ユーザーのために書いた最後のナラティブでは、ハリーとルナが森の端から聞こえる音に驚いた。重要なシーンの展開:1) ルナとハリーは過去3ターンにわたって禁じられた森の端に近づいていて、私が今書いたターンでついにその端に到達した。2) 前のナラティブターンでは、ハリーが二人の中でより勇敢に見えたが、最近のターンではユーザーの選択によってハリーがルナに対してより従順になった。3) 最近のナラティブターンでは、森から聞こえていた音に今はちらつく光が伴っていた。そこで、ハリーとルナの対話を通じてキャラクターの発展を促す道筋(ここで二つの選択肢を提示した)、ハリーがルナの手を取って森に駆け込むことで物語を進める道筋、音に伴うちらつく光をルナが調査することでペースを遅くする道筋を提案した。ユーザーの選択は「ルナがちらつく光を調査する」だった。3) 物語の長さに応じて重み付けされたRNGを追加して、選択肢が物語を結論に導くようにする。選択肢を生成するためのツール呼び出しにその方向性を含めて、フィナーレの選択肢までのカウントダウンも入れる。これは私にとって最も効果的だったものの大まかなメンタルスケッチだよ。実装や応用の詳細は意図的に省いたけど、次に何をしたいのかはわからないからね。頑張って、素晴らしいよ!

どうやってこれを思いついたの?一般的に、LLMに求めることを正確に言い表すのはかなり難しい気がするんだけど。これは練習したことなの?すごいね。それとも別のAIからの出力なのかな、わからないけど(笑)

いい提案だね、ありがとう!

これはかなりクールなコンセプトの証明だね。ハリー・ポッターの本を試したときにすぐに変なことに遭遇したよ。アプリがハリーの視点を2人称と3人称で行ったり来たりしてた。だけど、僕にとって一番の問題は、プレイ中に感じた空虚感だった。インフォコムのゲームで育ったから、テキストアドベンチャーが大好きなんだ。彼らの魅力は、作家やプログラマーの選択を感じられるところだよね。本の背後にいる人間の著者を感じるのと同じように。自動生成されたことを知っているからこそ、空虚に感じる部分もあると思う。でも、もしこれを見せられて、背後にLLMがいることを知らなかったとしても、人間がInformを使って書いたものと比べて、ゲームプレイはあまり満足感が得られないと思う。

僕もそう思う。正しいプロンプトを使えば、LLMを好きな方向に進ませられることに気づくと、すごく空虚に感じてくる。さらに、LLMが全く忠実な世界シミュレーションを維持できないことを考えると、そういう風に時間を費やすのが難しくなるよね。

自由はゲーム、特にテキストアドベンチャーゲームでは大事だよね。LLMはほぼ何にでも反応できるから、プレイヤーに自由を与える強力な手段だと思う。でも、ゲームが輝くためには、慎重に考えられた制約も必要なんだ。プレイヤーが制約にぶつかることで、ゲームの世界やシステムがどう機能するかを理解し始める。それによって、彼らはメンタルモデルを構築できるし、デザイナーたちが考えたように考えたり、パズルの解決策を見つけたり、特定の状況にどう反応するかを決めたりできるようになる。迷路が挑戦として魅力的なのは、道がいくつかの場所で閉ざされていて、他の場所では開いているからだ。理想的には、迷路には一つ以上の具体的な解決策があって、プレイヤーは出口を見つけることで迷路をマスターした報酬を得たり、迷路の重要な場所に隠された目的やクリーチャーを見つけたりすることができる。現代のLLMを使ってこういった世界を構築し、制約を設定することはできると思うけど、LLMがその世界の状態を維持し、制約を強制することができるようになるまで、どれくらいの距離があるのかな?

僕が見た限り、AIは論理的な物語を作るためにイベントを追跡するのがあまり得意じゃないみたい。『ホビットの冒険』を試したら、最初にガンダルフとお茶を飲んでるところから始まった。玄関のドアをノックされたから開けたら、外にはガンダルフがいた!

まあ、彼は魔法使いだからね。

AIにしては的を射てるね。

ビルボのことだから、ガンダルフがそんな風に俺をからかうのも驚かないな。彼が伝えたいことを証明するためにね。

もちろん、あれにはそのための十分なコンテキストがなかったよ。人間って、ゲーム内の状況を忘れがちだからね。

トールキン自身は、物語を語る方法として「映画」をあまり好まなかったから、これもきっと気に入らないだろうね。

クラシックなガンダルフだね。

どのモデルを基にしてるのか気になるな。いくつかのモデルを試したけど、今のところ連続性を保つのが上手いのはGemini 2.5 ProとSonnet 3.7の2つだけだね(どちらも推論あり)。この2つは、プロンプトにないプロットツイストを加えるのもめちゃくちゃ得意だよ。[0]: 「私のLLMの期待値」に基づく基準であって、ベストセラーのジャンルフィクションの基準ではないけどね。

じゃあ、アルツハイマーシミュレーターゲームを作るのに使えるかもね。

去年、自分でLLMを使ったインタラクティブなテキストアドベンチャーシステムを作ったんだけど、LLMだけじゃなくて、補助的なデータベースも使って、すべての情報の位置や状態を管理してたんだ。LLMは2つのことをやってて、まずプロンプトやユーザーの入力、チャットの最近の履歴、データベースの状態から関連する抜粋を使って新しい状態でデータベースを更新する。次に、その更新後に上記の情報を使って出力レスポンスを合成するって感じ。システムの大きな要素は、通常のブロックワールドの主題-属性-オブジェクトの表現に加えて、データベースを使って思考や計画、気分、プロットポイントなどをエンコードしたテキストの断片を保存することだった。データベースとその更新にプログラム的な制約を加えることで、上記のような論理的な不条理を防ぎ、出力の質が大きく向上したんだ。LLMが不条理なことをしようとする試みは単純に拒否されてた。最後に、物語の語りにはシミュレーションだけじゃなくて階層的な要素もあった。物語を語ることにはシミュレーション以上のものがあって、これを試すのがこのプロジェクトで一番面白かった。将来の研究の余地もたくさんあるしね。ただ、この複雑さのせいで、計算負荷がめちゃくちゃ高くて、結果的にすごく遅くなっちゃった。でも、ゲームプレイはめっちゃ面白かったよ。LLMがもっと速くなるにつれて、こういうのが増えてくるだろうね。オープンソースソフトウェアにとっては明らかな応用だし。

タイムトラベルは、イシュタリのあまり知られていない偉業の一つだよ。

発売おめでとう!LLMに経路を事前計算させて結果を保存させた方がいいかもね。物語の各分岐を進めるたびに計算させるのはちょっと問題があると思う。例えば、今みたいに忙しい時は、みんな次のテキストを待ってるだけになっちゃうし、同じ経路をたどってる人が複数いるとトークンも無駄に消費しちゃう。でも、今のやり方だと毎回大体ユニークな体験になるね。

他の人が言ってることとは違って、2025年とAIを知ってるけど、これにはかなり感心したし嬉しかったよ。ガンダルフとドワーフを避けようとするホビットを演じてみたけど、結局彼らはしつこくて笑っちゃった。

投稿[0]は本当に面白い読み物だった。ソリプシズムやシミュレーション仮説に影響されやすい私にとって、この段落は特に響いたね。> 「私の最大の難しさは、ChatGPTにゲームの制約を理解させることだった。LLMの制約がテキストアドベンチャーに近いから、あまり制約のないものを想像するのに慣れていて、実際に存在する媒体との区別がつかなかったのかもしれない。」

もっと良いバージョンは、本を取ってその内容をLLMに解析させて、本のストーリーに沿った選択肢クイズを作ることじゃないかな?LLMに運転を任せてストーリーを変えさせると、変な方向に行っちゃう気がする。以前に似たようなことを試したことがあって、新しい本を読むのや古典を学ぶのにいい方法だったよ。例えば、『戦争と平和』の数行を読んで、次に何が来るかの選択肢が3つ出てくる感じ。選択肢はいつもバラエティに富んでいて、キャラクターがその文脈で何を言いそうかを考えさせられた。非フィクションにも使えるし、勉強用に内容をクイズ化するのもいいね。ただ、各質問の後にテキストが続く必要はないけど。編集: まあ、いいや。カノンゲームモードを見たばかりだから。

ウィッチャーを試してみたけど、これがあってすごく良かったよ。最初は本の中でヴィジマに入ってストリガを追いかけるところから始めたんだけど、メインの道を進む代わりにバーに行くことにしたんだ。そこでバーテンダーにストリガについて聞いたけど、何も知らないって言うから殴っちゃった。彼も武器を抜いて、私も同じようにして、「ストリガについて聞く」って提案が出てきたからクリックしたんだ。みんなが何が起こったか無視して、バーテンダーがストリガについての情報をくれ始めた… いや、さっき殴ったばかりで、ほぼ剣で戦いそうになったのに…でもアイデアは素晴らしいね。どれだけ良くできるか見てみたいな。