50 ポイント 投稿者 GN⁺ 2025-09-11 | まだコメントはありません。 | WhatsAppで共有
  • クラシックゲーム どうぶつの森(GameCube, 2001) の反復的なセリフを、リアルタイムのクラウドベースLLM対話に置き換えるプロジェクト
  • ゲームコードを改変せず、メモリハッキングと共有メモリ(mailbox)方式によって外部のPythonスクリプトとAIを接続
  • ゲーム内テキストは単なる文字列ではなく特殊な制御コード言語で処理されるため、独自のエンコーダー・デコーダーを実装して解決
  • セリフ生成は**Writer(創造的なセリフ作成)Director(制御コード・演出追加)**に分離し、品質を確保
  • その結果、村の住民たちがニュース、うわさ、風刺まで反映した予測不能なAI対話を繰り広げ、クラシックゲームに新たな生命力を与える
  • プロジェクトのコードは GitHub で公開

問題定義

  • どうぶつの森は魅力的である一方、反復的なセリフでも有名だが、23年経ってもセリフは変わらず、これを革新的に変える方法が考案された
  • 問題は、GameCubeが485MHz CPU、24MB RAM、ネットワーク非対応という閉じた環境であること
  • オリジナルのゲームはコードを変更せず、そのまま維持する必要があった
  • 反復的なセリフを現代のLLMに置き換えるブリッジ構築が目標

第一段階: 会話システムのハッキング

  • コミュニティによるAnimal CrossingデコンパイルのおかげでCコードにアクセス可能
  • m_message.c ファイルの関数呼び出しをフックし、セリフテキストの置き換えに成功
  • しかし、外部AIデータをリアルタイムでやり取りする方法が課題として残った

メモリメールボックス方式

  • GameCube RAMの特定領域をIPCメールボックスとして活用
  • Pythonスクリプトがメモリアドレスへ直接書き込み/読み取り → ゲームとAIの間で通信
  • メモリスキャナーを作成し、話者名(0x8129A3EA)、セリフバッファ(0x81298360) のアドレスを特定

制御コード言語

  • 単純な文字列を送信するとゲームがフリーズした
  • 理由: どうぶつの森は <End Conversation>, <Pause>, <Color Line> などの制御コードベース言語を使用
  • Pythonでエンコーダー/デコーダーを作成 → 人間に読みやすいテキスト ↔ ゲームが理解するバイト列へ変換

ネットワーク代替案の検討

  • GameCube Broadband Adapter は存在するが、Animal Crossingにはネットワークスタックがない
  • BBAを使うにはネットワークスタックと非同期I/Oを追加する必要があり、非効率的
  • その代わりにエミュレータのメモリハッキングの方がシンプルで安定していると判断

AIパイプライン

  • 当初は単一のLLMに創作と制御コードの両方を担当させたが、品質上の問題が大きく、Writer-Director分離戦略を選択
    • Writer: キャラクターの性格に基づいて創造的なセリフを生成(ファンWikiのデータを活用)
    • Director: セリフを読み、適切な制御コード、表情、色、サウンドを挿入
  • この2段階LLMパイプラインは、AIの創造性と技術的要件を分離し、それぞれの強みを活かす構成
  • 役割分担により安定した品質を確保

結果と広がり

意義

  • レトロコンソールハッキング、AI統合、ゲーム保存が結びついた実験的プロジェクト
  • 2001年のゲームに2025年のAIをつなぎ、世代を超えたインタラクションを実現
  • ゲームはもはや反復的な会話ではなく、生きた仮想世界へと進化
  • 開発プロセス全体/デモ動画: Modern AI in a 24-Year-Old Game

まだコメントはありません。

まだコメントはありません。