CEDEC 2024の3日目となる8月23日に行なわれたセッション「ほぼ、フルAIゲーム。『Red Ram』がプレイヤー好みのミステリーゲームを無限に生成できるからくり」を紹介する。
「Red Ram」はゲームAIを専門に扱うデベロッパ・モリカトロンが開発した技術デモであり,プレイヤーが入力したキーワードを元に,マーダーミステリー風の犯人当てゲームを自動生成してしまおうという試みとなっている。
今回のセッションでは,同作の自然言語処理を担当したモリカトロンのリードエンジニア・宮本茂則氏と,システム設計とクライアント実装を担当したAIエンジニアの高橋力斗氏によって,その生成の仕組みが解き明かされた。
リードエンジニア・宮本茂則氏(右)と,AIエンジニアの高橋力斗氏(左)
|
ゲーム内に生成AIを使うことで生まれる楽しさ
初めに,このセッションにこめたメッセージを高橋氏が語るところからスタートした。それは「生成AIをゲーム内で使っているゲームが増えてほしい」ということ。AI技術に長けたモリカトロンならではのメッセージだが,同社では生成AIをゲームに生かすことで,二つの楽しさが生まれると考えているという。
一つはバリエーションが豊富で飽きないこと。そしてもう一つは,プレイヤー各人の好みに合せたゲーム体験をつくれることだ。そんな生成AIならではのゲーム体験の研究するために作られたのが,このセッションで取り上げる「Red Ram」なのだという。
ではRed Ramによるゲーム生成は,どんな流れで行われているのだろうか。
まずプレイヤーが好みの設定をおおまかに入力すると,それに合わせてAIが事件の大筋となるプロットを生成する。続いてそこに肉付けを行ったストーリーデータが作られ,それに基づく登場人物や舞台の設定が決まっていく。そして最後に会話における台詞や人物の画像,背景画像などが生成されて,これらを組み合わせてゲームが完成するそうだ。
これら生成の詳細を宮本氏が解説した。まずプロットは,プレイヤーが入力したキーワードを元に,
LLM(大規模言語モデル/「Red Ram」ではOpenAIのGPT 3.5と4を使用している)を用いた生成が段階的に行われる。生成に複雑な条件が必要な場合は,高性能なGPT 4を使用する仕組みだそうだ。
例えばプレイヤーが凶器としてふさわしくないものを入力したとしても,LLMがそれに合わせて筋書を作ってくれる。
なおプロット生成では事件の設定だけでなく,ミステリ執筆ガイドと進行フローの作り方をプロンプトとして入力している。進行フローは事前に手作業でLLMに生成させたものを複数用意しておき,ランダムに使用する。なおプロットはあえて形式の制約を与えずに生成させるほうが,質の高い生成物が期待できるそうだ。
こうしてできたプロットから,プログラムで扱える形式にしたストーリーデータを生成する。下のスライドのとおり,プロット段階では普通の文章だが,そこから場所や被害者といった必要なデータが抽出され,同時に内容にも肉付けが行われるとのこと。
次はストーリーデータからゲームに登場する人物,場所,証拠品のそれぞれの詳細データが生成される。人物では年齢,性格,職業といったプロフィールのほか,特徴的な口調なども決定される。またこのとき,画像を生成するためのプロンプトの作成も行われる。
最後に生成されるのが会話シナリオ――プレイヤーである刑事が容疑者に対して行う尋問(会話台詞)の文章だ。ここまでに生成したデータを,事件の状況や場所に応じた6種類のテンプレートに差し込むことでプロンプトを作成し,会話を生成させる。また台詞の文面からからキャラクターの感情をLLMに類推させ,6種類の感情に分類。これを画像生成における容疑者の表情変化に流用しているという。
続いて画像生成に移る。LLMで生成したテキストを元に,
「Stable Diffusion」(画像生成AIのモデル名)を使って画像を用意していくのだ。背景と証拠品の画像には,それぞれの詳細データを生成したときに作られたプロンプトを使用する。このとき背景画像の画角調整や,表現が難しい証拠品は置き換えて描画する調整が加えられる。
登場人物の立ち絵も,同様に詳細データを生成したときに作られたプロンプトを使用する。決まった位置に決まった大きさで描画されるよう制約をかけ,背景の透過処理(切り抜き)もこの時点で行っている。
なお切り抜きにはSemantic Segmentation(ピクセルごとにラベル付けするセグメント分けの方法)と,画像の奥行きを推定する技術を使い,奥行きが深い部分のみを抜き出すことで,確実な切り抜きを実現している。
表情は立ち絵生成時のプロンプトに最小限の追加のみ行うことで,別人に見えないよう調整しているという
|
|
生成AIゲームの課題と今後の展望
その結果として,実際に生成された事件が次のスライドだ。
まず凶器を
「豆腐」としたので,死因が窒息死というまあ妥当と言っていいだろう。舞台には
「革新的ゲーム開発会社」を設定したので,オフィスか会議室のような場所が生成された。
犯行動機は
「金銭トラブル」なので,お金の貸し借りを軸にした人間関係が生み出された。ちなみに人物のタッチは実写風とアニメ風のどちらかを選択できるそうだ。
セッションの最後に,現状の課題とこれからの展望が,高橋氏の口から語られた。
まずはクオリティの問題だ。「Red Ram」ではキャラクターの会話の辻褄が合わないことがある。例えば会話の始まりが「証拠品が見つかった」なのに,結局は見つからないという,謎めいた終わり方になることがある。さらには冒頭の事件説明で,主人公の刑事が真相を話してしまうことまであるそうだ。
これでは殺人事件の解決や推理を楽しむことはできない。つまり現状は,生成AIの奇妙な振る舞いを楽しむゲームになってしまっている。それはそれである種の味わいがあって面白いが,モリカトロンが目指しているのはそういうものではない。
一貫性あるシナリオを実現するには,システムの設計やLLMに与えるプロンプトをさらに工夫する必要がある。そのほかにもコストや待ち時間の問題も挙げられたが,ここはLLMモデルの進化によって次第に解決されると予測されている。
高橋氏によれば,今後はプレイヤーが入力した情報がリアルタイムでゲーム世界に反映されていく体験を作っていきたいそうで,2024年7月には
「言霊の迷宮」という技術デモを公開している。
このデモはダンジョンを攻略を目指すテキストアドベンチャーだが,プレイヤーが入力した言葉でアイテムが生成される仕組みになっている。入力された言葉に応じ,その場でアイテムの画像やパラメータ,フレーバーテキストなどが生成されて,さらにそのアイテムを主人公が活用している様子が描写される。
なお「Red Ram」に関する論文や生成例はオンラインで公開されている。以下のスライドのQRコードから閲覧できるので,興味を持った人はチェックしてみてはいかがだろうか。