ドラクエXの「おしゃべりスラミィ」が教えてくれた、ゲームAIバディの正解 ― 個人開発者が持ち帰れる設計パターン5つ

ゲーム制作技術
結論:ドラクエXの「おしゃべりスラミィ」は、ゲームAIバディの設計教科書だ。マルチエージェント分岐、行動ログ記憶、口調フィルタ、ハルシネーション対策——大手がクラウドAIで実装した設計パターンを分析し、個人開発者がローカルLLM(Gemma 4等)で再現できる部分を徹底考察する。

スクウェア・エニックスとGoogle Cloudが、ドラゴンクエストXオンラインに対話型AIバディ「おしゃべりスラミィ」を導入する。Gemini 2.5 Flash搭載で、プレイヤーと音声で自由に会話できるAIキャラクターだ。

筆者は前回の記事でGemma 4でRPGストーリー自動生成アプリを作り、品質の課題と5つの改善策を提案した。今回スラミィの技術仕様を調べたら、提案した改善策がほぼそのまま実装されていた。大手の答え合わせができた形だ。

おしゃべりスラミィとは

項目内容
ゲームドラゴンクエストX オンライン
開発スクウェア・エニックス × Google Cloud
AIモデルGemini 2.5 Flash + Gemini Live API
キャラ設定「死神見習い」。プレイヤーの誕生からずっと見守っていた相棒
対話形式テキスト+音声の双方向。スラミィ側からも話しかける
正式導入2026年6月25日予定(CBTは4月20日〜)

スラミィは性格診断で性格が決まり、プレイヤーごとに異なるスラミィになる。口調は「デスら」などの独自語尾。他のプレイヤーからスラミィとの会話は見えない。

堀井雄二の哲学:「NPCにAIは違う」

ドラクエの生みの親・堀井雄二氏はこう語っている。

「村人などのNPCにAIを使うのは違う。いっしょに遊んでくれる友だちや仲間として入ってくれるといい」

その理由が実装者視点で鋭い。ドラクエを「1冊の本」と捉える堀井氏は、「NPCにAIを入れると"この人といつまで喋ればいいんだろう"と際限がなくなり、遊ぶ側の負担が大きすぎる」と指摘した。

だからスラミィは村人NPCではなく、プレイヤーの行動をトリガーにして自分から話しかけてくる「相棒」として設計されている。全NPCにAIを入れるのではなく、1体に集中投資する設計判断だ。

スラミィの技術設計:4段階フロー

スラミィの処理は4段階で構成されている。

Stage 1: プレイヤーの発話を受け取る
→ テキスト or 音声入力

Stage 2: 領域判定 → 専門エージェントに振り分け
→ バトル専門 / クエスト専門 / 雑談 / etc.
→ 各エージェントがゲーム内DBから情報取得

Stage 3: 口調制御
→ 「デスら」語尾の付加、文字数制限
→ ハルシネーション検知 & ガードレール

Stage 4: 音声生成 → プレイヤーに返す
→ Gemini Live APIでリアルタイム音声出力

ポイントは「回答生成」と「口調制御」が別レイヤーになっていること。AIに「こういう口調で喋れ」とプロンプトで指示するだけでなく、生成後にプログラムが口調を強制する。これでキャラのブレを防いでいる。

スラミィの記憶システム:「死神手帳」

スラミィ最大の特徴は記憶だ。

  • 死神手帳:プレイヤーのゲーム内行動ログを参照。「あのときボスを倒したよね」と言える
  • 1日分の会話履歴を保存。プレイヤーの好みや話題の傾向を学習
  • 会話するごとに関係性が深まり、内容が親密に変化する
  • 他プレイヤーの会話データは参照しない(プライバシー保護)

AIが「記憶を持つ」ことで、スラミィは「毎回リセットされるチャットボット」ではなく「一緒に冒険してきた相棒」になる。

ハルシネーション対策:二重防衛

ゲームAIで最も怖いのがハルシネーション(AIの嘘)。ドラクエの世界でAIが急に「iPhoneって知ってる?」と言い出したら世界観が崩壊する。

スラミィの対策は二重構造だ。

防衛線仕組み
第1防衛線(プロンプト)知識をゲーム世界「アストルティア」内に限定する指示
第2防衛線(プログラム)「言ってはいけないリスト」で出力をフィルタリング。ゲーム外の話題を検知したら「何のこと?」と返す

プロンプトだけに頼らない。AIが指示を無視しても、プログラムが最終防衛線として機能する。

個人開発者が持ち帰れる設計パターン5つ

スラミィはクラウドGemini+大手の開発力で作られている。だが設計パターンの多くはローカルLLM(Gemma 4等)でも再現可能だ。前回のRPGストーリー記事で筆者が提案した改善策と照らし合わせて、具体的な実装方法を考察する。

パターン1:分類→専門プロンプト切替

スラミィの設計:マルチエージェント構成。バトル/クエスト/雑談を自動判定して専門エージェントに振り分ける。

ローカルLLMでの再現:

// スラミィ方式(クラウド)
発話 → Gemini(分類) → 専門Gemini(回答生成)
// 2回のAPI呼び出し。クラウドだから速い

// ローカル再現(Gemma 4)
発話 → キーワードマッチで分類(LLM不使用) → 専門プロンプトでGemma 4呼び出し
// 分類をルールベースにして、LLM呼び出しは1回だけ。速度を保つ

2GBモデルを2回呼び出すと遅い。分類はキーワードマッチ(「攻撃」「武器」→バトル、「クエスト」「依頼」→クエスト)で十分。LLM呼び出しは1回に抑える。それでも専門プロンプトに切り替わるだけで回答品質は大幅に上がる。

パターン2:行動ログをプロンプトに含める

スラミィの設計:「死神手帳」=プレイヤーの行動ログをAIに渡す。

ローカルLLMでの再現:

// ゲームエンジン側で行動ログを記録
action_log = [
  {"turn": 45, "action": "ボス撃破: 炎の竜"},
  {"turn": 42, "action": "アイテム獲得: 伝説の剣"},
  {"turn": 38, "action": "NPC会話: 鍛冶屋ガルド"}
]

// プロンプトに直近10件を含める
"プレイヤーの最近の行動:
 - 炎の竜を撃破した
 - 伝説の剣を手に入れた
 - 鍛冶屋ガルドと会話した
 これらを踏まえて相棒として話しかけてください。"

これが5つの中で最も効果が高い。行動ログを渡すだけで「おお、炎の竜を倒したんだな!」「伝説の剣、大事に使えよ」みたいなセリフが自然に出る。実装コストはほぼゼロ(JSONに追記するだけ)。2GBモデルでも十分に機能する。

パターン3:口調フィルタを別レイヤーに

スラミィの設計:回答生成後に口調制御レイヤーで「デスら」語尾を付加。

ローカルLLMでの再現:

// LLMの出力をそのまま表示せず、フィルタを通す

// 長老キャラの場合
output = output.replace(/です。/g, "じゃ。")
output = output.replace(/ます。/g, "であろう。")
if (output.includes("!")) reject & regenerate
if (output.length > 100) output = output.slice(0, 100) + "…"

// 少年キャラの場合
if (!output.includes("!")) output += "!"
if (output.length > 60) output = output.slice(0, 60) + "!"

プロンプトで「〜じゃと言え」と指示しても、2GBモデルは頻繁に無視する。正規表現で強制置換する方が確実。スラミィも同じ結論に至っている。プロンプトは「お願い」、フィルタは「強制」。両方入れるのが正解。

パターン4:ハルシネーション二重防衛

スラミィの設計:プロンプトで知識制限+プログラムでNGワードフィルタ。

ローカルLLMでの再現:

// 第1防衛線:プロンプト
"あなたはファンタジー世界の住人です。
 現実世界のことは一切知りません。
 現実の話題を振られたら「何のことだ?」と返してください。"

// 第2防衛線:NGワードフィルタ
ng_words = ["iPhone", "Google", "東京", "日本", "アメリカ", ...]
if any(word in output for word in ng_words):
  output = "うーん、何の話だ?よくわからんな。"

2GBモデルはプロンプト指示を無視しやすい。第2防衛線のプログラムフィルタが特に重要。NGワードリストは世界観に合わせて用意する。コストはif文1つ。

パターン5:全NPCにAI入れるな、相棒1体に集中しろ

スラミィの設計:堀井雄二の「NPCにAIは違う」哲学。村人全員ではなく、1体の相棒に全リソースを投入。

ローカルLLMでの示唆:

前回のRPGストーリーデモでは、ガルド(長老)、ローザ(女将)、リオ(少年)、ハンナ(野菜売り)——複数のNPCにAIを入れた。結果、全員のセリフが薄まった。

スラミィの設計を参考にするなら、「相棒1体」にAIを集中させる方が正解だ。

  • 相棒キャラだけがAI会話対応。他のNPCは従来の台本
  • 相棒はプレイヤーの行動を記憶し、自分から話しかけてくる
  • RAM・推論速度のリソースを1体に集中できるので品質が上がる
  • プレイヤーも「この1体が特別」と感じやすい

特にローカル2GBモデルでは、リソースが限られている。薄く広くより、深く1体。

スラミィとucの自作アプリの対比

ucの自作アプリドラクエX スラミィ
AIモデルGemma 4 E4B(2GB、ローカル)Gemini 2.5 Flash(クラウド)
インフラスマホ1台で完結Google Cloudサーバー
コスト無料サーバー費用(スクエニ負担)
記憶なし死神手帳+1日会話履歴
ハルシネーション対策なし二重防衛(プロンプト+フィルタ)
口調制御プロンプトのみプロンプト+フィルタレイヤー
エージェント構成単一マルチ(バトル/クエスト等)
AI対象複数NPC相棒1体に集中
音声テキストのみGemini Live APIで音声対話

差は大きい。だが設計パターン自体はモデルサイズに依存しない。行動ログ参照も、口調フィルタも、ハルシネーション防衛も、2GBモデルで同じ仕組みを組める。差が出るのは「品質の上限」であって「設計思想」ではない。

スラミィから学べないこと

正直に書く。スラミィの全てがローカルLLMで再現できるわけではない。

スラミィの設計ローカルで再現可能か理由
リアルタイム音声対話難しいローカルTTSは品質が低い
1日分の会話履歴学習限定的コンテキストウィンドウを圧迫する
14年分のゲームDB参照不可能新作ゲームにはデータがない
複数エージェント同時起動不可能2GBモデルを複数同時は無理
クラウドGeminiの応答速度負けるローカル2GBは遅い

ただし、クラウドAIには「ユーザーが増えるほどサーバー費用がかかる」という致命的な問題がある。ドラクエXはスクエニが負担できるが、個人開発のインディーゲームでは現実的ではない。ローカルLLMならユーザーが1億人になってもサーバー費用はゼロだ。

筆者の本音:NPCは「村人」だけじゃない

筆者(uc)がスラミィを見て一番刺さったのは、堀井雄二氏の「NPCにAIは違う」という言葉の裏側だった。

堀井氏は村人NPCにAIを入れることを否定した。でもそれは「ゲームにAIを入れるな」ではない。「入れ方を変えろ」だ。村人ではなく相棒。受動的な情報提供者ではなく、能動的に話しかけてくる存在。AIの使いどころを「NPC=村人」の枠から解放したのがスラミィの本質だと思う。

そしてもう1つ。スラミィはクラウドGeminiだ。API代をスクエニが負担している。正直、あのレベルのAI体験をクラウドで提供できるのは資金力のある大手だけだ。音声対話、1日分の会話記憶、マルチエージェント——全部クラウドの計算リソースで実現している。

個人開発者がローカル2GBモデルで同じことをやろうとすれば、品質で負ける。それは事実だ。でももしAPI代を払えるなら、個人開発のインディーゲームでもスラミィレベルのAIバディは作れる。Gemini APIは従量課金だ。ユーザー数が少ないうちはコストも小さい。

ローカルLLMで無料で動かすか。クラウドAPIに課金してスラミィレベルを目指すか。個人開発者にもその選択肢が開かれているのが2026年だ。

前回の記事で提案した改善策5つは、スラミィで全て実装されていた。方向は合っていた。あとは実装するだけだ。スラミィが6月25日に正式導入されれば、「ゲームAIバディ」は概念ではなく国民的ゲームの標準機能になる。

まとめ

  • ドラクエXの「おしゃべりスラミィ」はGemini 2.5 Flash搭載のAIバディ。6月25日正式導入
  • 堀井雄二の哲学:「NPCにAIは違う。相棒1体に集中しろ」
  • 技術はマルチエージェント分岐、行動ログ記憶(死神手帳)、口調フィルタ、ハルシネーション二重防衛
  • これらの設計パターンはローカルLLM(Gemma 4等)でも再現可能
  • 特に効果が高いのは「行動ログをプロンプトに含める」。実装コストほぼゼロ
  • クラウドAIとの差は品質の上限であって設計思想ではない。ローカルならサーバー費用ゼロ
  • 前回記事で提案した改善策5つ+プログラム側整合性管理がスラミィでほぼ全て実装されていた

参考ソース

コメント

タイトルとURLをコピーしました