RimDialogue + Gemini Flash 運用まとめ

RimWorld の会話 MOD 「RimDialogue」を、ローカルサーバー(RimDialogueLocalServer)経由で大規模言語モデル(LLM)と接続し、キャラクター同士の自然な会話を生成する方法をまとめました。最終的に Gemini 2.0 Flash 一本運用に落ち着いたので、その手順とノウハウを公開します。

なお、Rimworldバージョン1.6であればRimtalkでも同じことができます。


1. 導入手順

1-1. サーバーの準備

  1. RimDialogueLocalServer をダウンロードし、展開。
  2. 環境に合わせたバイナリを実行可能にする(Linuxなら chmod +x RimDialogueLocal)。
  3. 以下で起動確認: ./RimDialogueLocalNow listening on: http://localhost:7293 が出れば成功。

1-2. APIキーの準備

  1. Google AI Studio から Gemini API キーを取得。
  2. 無料枠を利用するなら課金設定は不要(超過時のみ課金発生)。
  3. Proアカウントで発行したキーでも Flash モデル利用・無料枠適用は可能。

1-3. 設定ファイルの配置

  1. appsettings.json をサーバー実行ファイルと同じディレクトリに配置。
  2. 内容は後述の例を参考に、モデルを Gemini 2.0 Flash に一本化。

1-4. RimWorld 側設定

  1. RimDialogueを導入し、 MOD 設定画面で「サーバーURL」を指定: http://localhost:7293/home/getdialogue
  2. セーブデータをロードし、会話が発生すれば接続成功。

2. サーバー設定(appsettings.json)

実際に使用している設定例です。

{
  "Urls": "http://localhost:7293",
  "Logging": {
    "LogLevel": {
      "Default": "Debug",
      "Microsoft.AspNetCore": "Information"
    }
  },
  "AllowedHosts": "*",
  "LoggingEnabled": true,

  "RemoveThinking": true,

  "RateLimit": 0.033333,   // 毎分2リクエスト程度に制限
  "RateLimitCacheMinutes": 1,
  "MinRateLimitRequestCount": 1,
  "MaxPromptLength": 20000,
  "MaxResponseLength": 1200,
  "MaxOutputWords": 180,

  "Models": [
    {
      "Name": "Gemini 2.0 Flash",
      "Provider": "GOOGLE",
      "GeminiApiKey": "<自分のAPIキー>",
      "GeminiModel": "gemini-2.0-flash"
    }
  ]
}

設定のポイント

  • RateLimit は「1秒あたりのリクエスト数」。0.033333 ≒ 毎分2回。429エラー回避に有効。
  • RemoveThinking: true で「思考中…」の不要な出力を削除。
  • MaxPromptLength を大きめに取り、キャラ設定を一括投入可能に。
  • モデルは Flash のみにして一本化。課金や制限を最小化。

3. キャラクタープロンプト設計

初期メンバー7人分の性格・役割・口調・呼び方を定義し、system プロンプトにまとめて渡します。ユーザー入力には「状況」を簡潔に与えるだけで自然な会話が生成されます。

プロンプト設計のコツ

  1. 性格・口調・呼び方を短く箇条書きで明示。
  2. 名言や特徴は補助情報程度にとどめる。
  3. 出力形式を指定(例:名前: 発言)すると会話が安定。

4. モデル選定

  • Gemini Pro … 高品質だがレート制限が厳しく、429が頻発。
  • Gemini Flash … 無料枠があり、応答も高速。品質も十分。
  • Ollama … 無料。ただ、会話の品質はGeminiの方が良いと感じ、今回は外しました。

👉 結果として Gemini 2.0 Flash 一本運用が最も安定しました。


5. 運用のポイント

  • 429対策RateLimit を調整し、サーバーで抑制。
  • 長文応答:必要に応じて MaxOutputWords を 250〜300 に増やす。
  • フォールバック:Ollamaなどのローカルモデルを併用すると安心。

6. まとめ

  • RimDialogueLocalServer + Gemini 2.0 Flash で RimWorld の自然なキャラ会話を安定生成。
  • RateLimit の単位は「秒あたり」なので要注意。
  • キャラプロンプトは 性格・口調・呼び方を中心に簡潔にまとめるのが安定のコツ。

これで RimWorld 1.5でもコロニーに 自然で個性的な掛け合い会話を導入できます。

コメント

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