スクエニが研究している次世代アドベンチャーゲーム「NLPアドベンチャー」とは何か 人工知能を使った原点かつ最先端の新感覚ADV

アドベンチャーゲームがもともと持っていたポテンシャルを引き出す次世代ADV

※購入先へのリンクにはアフィリエイトタグが含まれており、そちらの購入先での販売や会員の成約などからの収益化を行う場合はあります。 詳しくはプライバシーポリシーを確認してください">詳しくはプライバシーポリシーを確認してください

ゲーム開発者向け技術イベント「CEDEC+KYUSHU 2022」では、スクウェア・エニックスの森友亮(もり ゆうすけ)氏より「自然言語処理技術による新世代コマンド入力式アドベンチャーゲームの制作手法」という講演が行われた。

森友亮氏はスクウェア・エニックスのAI部に所属する人工知能を研究する「AIリサーチャー」として活動している人物だ。「自然言語処理」の技術をエンターテイメントにおいて応用するための研究開発に従事している。

「自然言語」とは人間が日常的に使っている言葉のことで、さらに「自然言語処理」とはこうした人間の普段の言葉をコンピューターで解析して抽出する技術のことだ。人工知能の一分野でもあり、たとえばGoogle翻訳など現代ではなじみ深いサービスに応用されている。

 

さて、今回の講演ではこの自然言語処理(Natural Language Processing、略してNLP)を使った、次世代アドベンチャーゲーム「NLPアドベンチャー」と銘打たれたものが森氏より提示された。しかも1970年代後半から1980年代にかけて隆盛を極めた古典的な「コマンド入力式アドベンチャーゲーム」がベースになっているという。

「コマンド入力式ADV」とは何か

「コマンド入力式ADV」(あるいはコマンド入力型ADV)とは何なのか——講演の冒頭でもこの解説からはじまった。1980年代のPCゲームを同時代に体験した人やゲームの歴史に関心がある人は説明が不要だろうが、すでに馴染みがなくなって30年以上が経過しているので、筆者の補足を含めて改めて説明したい。

「コマンド入力式ADV」とは、キーボードで「北に行く」、「カギを取る」などの言葉を入力して進む形式で、最古のアドベンチャーゲームのスタイルだ。ゲーム中に「はなす」などの主人公の行動がもとから提示されているのではなく、「はなす」という言葉をキーボードで一文字ずつ打たなくてはならない。言い換えれば、ゲーム中の主人公の行動をプレイヤー自らが生成して進めていくのが特徴といえる。

『道化師殺人事件』(1985年)は、日本におけるコマンド入力式のミステリーアドベンチャーゲームの代表作だ。マップが広く、テキスト・物語展開・グラフィックとも凝っておりこの時代では大作の部類となる。シンキングラビットの今林宏行氏が開発した。<br />
『道化師殺人事件』(1985年)は、日本におけるコマンド入力式のミステリーアドベンチャーゲームの代表作だ。マップが広く、テキスト・物語展開・グラフィックとも凝っておりこの時代では大作の部類となる。シンキングラビットの今林宏行氏が開発した。

こうしたコマンド入力式ADVの魅力のひとつに、入力の自由度が挙げられる。主人公の行動をプレイヤーが自由に言語化して入力するということは、思考や閃きが重要であり、答えを自ら導き出さなくてはいけない。こうした特徴はミステリーやパズルと相性がよい。プレイヤーの考えや推理が見事に当てはまって反応が返ってきたときは大きな嬉しさがあった。

とはいえ、プレイヤーの自由な入力をゲーム側が受け付けてくれるかどうかは別問題である。入力した言葉がゲーム側で対応しておらず「それはわかりません」と素っ気なく返され、ゲーム進行を停滞させてしまうという欠点があった。

基本的には仕組みとしては「パターンマッチング」と呼ばれる手法を使っており、開発者がプレイヤーが入力するコマンドをあらかじめ想定して、反応を組みこんでいる。プレイヤーがどのような行動を取るのか予測し、それを膨大に織り込む必要があったため開発者の負担が大きかった。

こうした負担を軽減するため、ゲームによっては入力文の最初の数文字や頭文字だけ解析しており、語尾などの末端の言葉を無視していることもある。これにはプレイヤーの入力の自由度を増す利点もあった。

なお『Zork』で知られるアメリカのインフォコム社の場合は、独自のプログラミング言語による言語解析に特化したエンジンを使っており、文章でも入力を受け付けられる高度な仕組みを要していた。とはいえインフォコム社は海外でもかなり例外的な事例である。

『北海道連鎖殺人 オホーツクに消ゆ』(1984年)において堀井雄二氏は、入力するコマンドをあらかじめゲーム内で整理・用意し、「しらべろ⇒したい」という風に階層的に使える「コマンド選択式ADV」を提案した。<br />
『北海道連鎖殺人 オホーツクに消ゆ』(1984年)において堀井雄二氏は、入力するコマンドをあらかじめゲーム内で整理・用意し、「しらべろ⇒したい」という風に階層的に使える「コマンド選択式ADV」を提案した。

こうしたコマンド入力式ADVは、1980年代中ごろまで数多く作られたものの、80年代後半には勢いが失速している。日本では「コマンド選択式ADV」、海外では「ポイント&クリックADV」こそがアドベンチャーゲームの主流なスタイルとなったからだ。

よく知られていることだが、このコマンド選択式ADVを発明したのは『ドラゴンクエスト』シリーズで知られる堀井雄二氏である。PC版『オホーツクに消ゆ』(1984年)と、ファミコン版『ポートピア連続殺人事件』(1985年)がヒットしたことにより、このスタイルが普及、定着した。日本ではこの「選択式」の登場によって「入力式」は急速に人気が衰えていった。

海外と比較しても日本において「入力式」が早く廃れていった理由として「選択式」の存在以外にも複合的な要因が考えられる。

講演で森氏は、たとえば「それはわかりません」などと素っ気なく返される、開発者が想定していない入力を受け付けれなかったことを廃れた要因として挙げており、「取りたい行動があっても 、キーワードが正確にわからないと、その行動を取れない」、「ゲーム進行に正確な入力を要求するシステムだったため、入力は自由でも、ゲーム体験は自由ではなかった」と評している。

「コマンド入力式ADV」が持つポテンシャル

ところでこの段落は完全に筆者の補足となるが、「コマンド入力式ADV」はよくよく考えると、コンピューターと人間との間で自然言語のやり取りを行っているゲームである。もちろん内部的な処理は(基本的には)パターンマッチングであり、人工知能が言語を解読して反応しているわけではない。

だが、もしも開発者が力技で、あらゆる入力に対してリアクションの言葉を用意したとしたらどうだろう。そのようなゲームが仮に存在したら、それは体験的にはまるで人工知能とやりとりしてゲームをプレイしていることとほとんど同じである(まるでチェス人形「ターク」の逸話のようだが)。ちなみに人工知能かのように振る舞うプログラムを、日本では独自に「人工無脳」と呼ぶ。

左は雑誌(「SoftSide」第5号)に掲載された『Pirate Adventure』(1979年)の広告。右は『Pirate Adventure』のリメイク&日本語版の『海賊物語』のパッケージ。<br />
左は雑誌(「SoftSide」第5号)に掲載された『Pirate Adventure』(1979年)の広告。右は『Pirate Adventure』のリメイク&日本語版の『海賊物語』のパッケージ。

実のところ、コマンド入力式ADVは、登場の初期から「人工知能」や「仮想現実」(入力の自由度が高いため)のゲームだと評されていたことがある。たとえば初期のアドベンチャーゲーム『Pirate Adventure』の雑誌広告では、映画『2001年宇宙の旅』に登場するAIコンピューター「HAL」を引き合いに「HALをコントロールするゲーム」として、アドベンチャーゲームが“AIのゲーム”としての強調されて宣伝されていた。

このようにコマンド入力式ADVは、世間的には「廃れてしまったジャンル」だが、実は「人工知能」や「仮想現実」といった最先端テクノロジーに繋がるポテンシャルを秘めた“古くも新しいゲーム”なのである。

「NLPアドベンチャー」とはどのようなゲームなのか

さて、森氏が提示した「NLPアドベンチャー」に戻ろう。講演中では、明言はされていなかったが、見るからに堀井雄二氏の『ポートピア連続殺人事件』(オリジナルのPC版はコマンド入力式だった)がベースとなったアドベンチャーゲームの技術デモ動画が流された。プレイヤーがキーボードで入力した言葉に対して、相棒の刑事ヤスが反応している様子だ。あのヤスが乙女ゲームに登場するかのような好青年な見た目になっているのが面白い。

プレイヤー「耕造はどんな人物だった?」/ヤス「ローン山金の社長。妻や子供はいませんが、俊之という甥がいます。」<br />
プレイヤー「耕造はどんな人物だった?」/ヤス「ローン山金の社長。妻や子供はいませんが、俊之という甥がいます。」
プレイヤー「よし、港のほうに向かおう」/ヤス「では港に向かいます。」<br />
プレイヤー「よし、港のほうに向かおう」/ヤス「では港に向かいます。」
プレイヤー「潮風が気持ちいいな」/ヤス「天気が良いのは気持ちがいいですね」/プレイヤー「今日は良いことがありそうだ」/ヤス「どんな1日でしたか?」<br />
プレイヤー「潮風が気持ちいいな」/ヤス「天気が良いのは気持ちがいいですね」/プレイヤー「今日は良いことがありそうだ」/ヤス「どんな1日でしたか?」

森氏いわく、この技術デモ動画の注目ポイントとしては以下のとおりだ。

  • テキストの入力の仕方が変わっても、ユーザーの意図をくみ取ってゲームが進行している
  • プレイヤーがゲームの進行とは関係のない会話をはじめても、その内容を踏まえて応答する

従来の「入力式」では、攻略とは関係がない「潮風が気持ちいいな」という入力は想定されていなかったが、このNLPアドベンチャーゲームでは「雑談」に対応しているという。また入力するコマンドの意味が合ってさえいれば、ゲーム側が柔軟な対応をしてくれるので、プレイしやすくなっている。

こうしたことを実現する背景には、自然言語処理が使われている。なお本講演の自然言語処理とは、ディープラーニングによる深層学習を用いた自然言語処理を指している。自然言語処理は「大規模なテキストデータ」、「大規模データを効果的に扱うディープラーニング手法」、「コンピューターの性能向上」という条件が揃ったことで、性能が急速に向上している。こういった現在の技術を使えば、新世代コマンド入力式ADVは実現が可能だという。

「NLPアドベンチャー」はどのように実装されているか

こうした新世代コマンド入力式ADV「NLPアドベンチャー」は、どのように実現されているのだろうか。大きく分けてふたつの取り組みが実施されているという。

ひとつは目は、「より入力に柔軟な対応ができるようにできないか?」という課題に対して、テキストの類似度を計算していること。もうひとつは「“モウ一度入力シテクダサイ”などの表示をしたくない」という課題に対して、雑談対話の生成モデルを応用することだ。

技術デモにはゲームエンジンとは別に、内部には自然言語処理を行うアプリが組み込まれており、このNLPアプリには「自然言語理解」(Natural Language Understanding、略してNLU)、「自然言語生成」(Natural Language Generation、略してNLG)というふたつのモジュールが含まれている。ゲームの処理はゲームで行い、自然言語処理の「理解」と「生成」はこのアプリ側で行っている。

 

たとえば「海に行こうか」とユーザーが入力したときに、自然言語処理を行うようにリクエストをアプリケーション側に送る。このときにユーザーの「入力文」と「参照文」を自然言語理解モジュールに送る。なお「参照文」とはコマンド入力式ADVにおける「正解文」と同義だ。

往年のコマンド入力式ADVでは「入力文」と「正解文」が一致しなければゲームは進まなかったが、このNLPアドベンチャーでは類似しているかどうかを判定する。この類似している結果をゲームエンジンに返す。

次にゲームエンジン側で処理を行って、十分に類似しているものがあるかどうか、シナリオが進行できるかどうかを判定する。シナリオの進行が満たしていれば既定の応答となり、定められたシナリオに進んでいく。たとえば港に行ける状態であれば「海へ行こうか」などの入力で港に行くことができる。

一方で条件を満たしていなければ、「海へ行こうか」であってもシナリオは進行しない。その場合は、雑談の応答が自動生成される。この場合は自動言語生成モジュールにリクエストを送り、「海へ行こうか」という入力を踏まえて応答を生成して、それをゲーム側で出力する形となる。

 

具体的なシステムの処理の流れとしては、以下のような流れになる。

  1. ユーザーの入力文を数値で表された「意味ベクトル」に変換する
  2. そのうえで入力文とシナリオデータ中の参照文との類似度を計算 
  3. 入力と類似した参照文が
    • ある場合 → シナリオが進行する
    • ない場合 → 雑談対話を生成する

特に(1)と(2)は、柔軟なコマンドを受け付ける「新世代コマンド入力式ADV」の実現の鍵だ。大まかな意味を判定するには、言葉の意味をベクトルで表現するという自然言語処理を用いている。「同じような意味の言葉を同じような数字で表現できるように変換する」という研究が2010年代前半から注目されており、どんどん発展をみせている。

この手法によって意味が数値化されているので演算が可能になったので、意味の足し算や引き算が可能になった。単語レベルの演算のほかにも、センテンスレベルで意味ベクトルを得る手法が技術デモに応用されている。

 

「NLPアドベンチャー」では、ユーザーの入力文とシナリオデータ中の参照文をベクトルに変換して、類似度を計算、ベクトル間の距離を取り、十分に近いものがあればユーザーが取りたい行動なのだと推定している。

「自然言語生成」に伴うリスクもある

以上は「自然言語理解のモデル」の話だったが、類似する参照文がなくシナリオが進展しない場合だと、「自然言語生成モデル」のほうを用いて「雑談」を出力する形となる。

大量のデータによって学習された汎用的なモデルを、用途に合わせてチューニングして用いるという。これは用途別にモデルを作るよりも、少ないデータ量で済む。今回は日本語学習済みのモデルを対話生成用にチューニングしている。

一方で生成に伴うリスクもある。ゲームの進行に関係ない話題を振っても反応が得られるため、プレイヤーは圧倒的な自由度を体験できるが、一方で制作側がすべてのテキストをコントロールできるわけではなくなる。またテキストに倫理的・権利的な問題がないことを、ユーザーのプレイ中に動的にチェックする必要が生じてくる。

森氏は、「今後は機械学習をベースにした動的生成技術がゲームに組み込まれていく未来が見込まれる」と述べ、圧倒的な自由度の半面、完全なセーフティが望めない技術となっている。「我々は、このような技術とどのように付き合っていくべきか?」を議論すべきかもしれないとしている。

スクウェア・エニックスの原点回帰であり最先端

最後に「新世代コマンド入力式ADV」の要点は以下になる。

  • ADV黎明期のコマンド入力式を、自然言語処理技術を使って、当時の一部のコマンドしか受け付けない当時の問題点を解決して蘇らせた
  • 入力の正解と大まかな意味さえあっていれば、ゲームが進行できる
  • ゲームの進行と関係ない行動・会話には、自動生成で対応する

前述したようにコマンド入力式ADVは、「人工知能」や「仮想現実」といった最先端テクノロジーに繋がるポテンシャルを持っていたが、十分に発揮しないままほかのスタイルに取って変わった。今回の森氏の発表は、そうしたコマンド入力式ADVが本来持っていた「夢」を実現する可能性を示すものだ。

筆者の考えだとコマンド入力式ADVは、ほかのゲームにはない独自の美点がある。前述した「ミステリとの相性の良さ」以外にも、たとえば「キーボードで言葉を入力することでの、強いコミュニケーション感覚」や、「自由度の高さが、そのまま世界の広さの想像を喚起させる」といった要素である。

また強調しておきたいのは、コマンド入力式ADVは近年のインディーゲーム『Event[0]』、『Stories Untold』や『ナツノカナタ』などにも部分的に取り入れられており、「入力式」は静かなリバイバルの兆しを見せていることだ。

もともとスクウェア・エニックスは、そのルーツである「エニックス」、「スクウェア」ともに80年代に数多くのコマンド入力式ADVを発売していた。その意味では、今回の「自然言語処理を用いた新世代コマンド入力式ADV」は、アドベンチャーゲームの原点回帰であり、最先端、そして同社の伝統を大切にする美学と最先端テクノロジーを貪欲に取り入れる美学が融合したといえそうだ。

森氏は「我々は今後も、みなさまが安心して遊べるNLPアドベンチャーを実現するための研究を進めていきます!」として講演をしめくくっている。新世代コマンド入力式ADVのこれからもこの動向に注目していきたい。

※購入先へのリンクにはアフィリエイトタグが含まれており、そちらの購入先での販売や会員の成約などからの収益化を行う場合はあります。 詳しくはプライバシーポリシーを確認してください">詳しくはプライバシーポリシーを確認してください
More Like This
コメント