RimWorld の会話 MOD 「RimDialogue」を、ローカルサーバー(RimDialogueLocalServer)経由で大規模言語モデル(LLM)と接続し、キャラクター同士の自然な会話を生成する方法をまとめました。最終的に Gemini 2.0 Flash 一本運用に落ち着いたので、その手順とノウハウを公開します。
なお、Rimworldバージョン1.6であればRimtalkでも同じことができます。
1. 導入手順
1-1. サーバーの準備
- RimDialogueLocalServer をダウンロードし、展開。
- 環境に合わせたバイナリを実行可能にする(Linuxなら
chmod +x RimDialogueLocal)。 - 以下で起動確認:
./RimDialogueLocal→Now listening on: http://localhost:7293が出れば成功。
1-2. APIキーの準備
- Google AI Studio から Gemini API キーを取得。
- 無料枠を利用するなら課金設定は不要(超過時のみ課金発生)。
- Proアカウントで発行したキーでも Flash モデル利用・無料枠適用は可能。
1-3. 設定ファイルの配置
appsettings.jsonをサーバー実行ファイルと同じディレクトリに配置。- 内容は後述の例を参考に、モデルを Gemini 2.0 Flash に一本化。
1-4. RimWorld 側設定
- RimDialogueを導入し、 MOD 設定画面で「サーバーURL」を指定:
http://localhost:7293/home/getdialogue - セーブデータをロードし、会話が発生すれば接続成功。
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 プロンプトにまとめて渡します。ユーザー入力には「状況」を簡潔に与えるだけで自然な会話が生成されます。
プロンプト設計のコツ
- 性格・口調・呼び方を短く箇条書きで明示。
- 名言や特徴は補助情報程度にとどめる。
- 出力形式を指定(例:
名前: 発言)すると会話が安定。
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でもコロニーに 自然で個性的な掛け合い会話を導入できます。


コメント