NovelADV ✨ - VS Code用 対話型ノベルゲームエンジン
NovelADV は、Visual Studio Codeを舞台に、大規模言語モデル(LLM)をゲームマスター(GM)兼NPCとして活用し、あなただけの対話型ストーリーゲームをプレイ・制作するための拡張機能です。
チャットで対話するだけで、AIが物語を紡ぎ、キャラクターがあなたの行動に反応し、世界が動的に変化していく。そんな新しい物語体験を提供します。
[ここにデモGIFやスクリーンショットを挿入]
🚀 主な特徴
- 💬 AIとの対話による物語進行: Webviewベースの直感的なチャットUIでAIと対話するだけで、物語がリアルタイムに進みます。
- 🧠 動的な記憶システム: 会話が長くなっても文脈を維持するため、**自動要約(長期記憶)と直近の会話(短期記憶)**を組み合わせた高度な記憶システムを搭載。AIは物語の全体像を忘れません。
- 🤖 "生きている"キャラクター: 物語の進行に応じてキャラクター設定が自動で更新されます。NPCは過去の出来事を記憶し、あなたとの関係性を変化させ、一貫性と深みのある言動を見せます。
- 🔧 高いカスタマイズ性: シナリオ設定(世界観、キャラクター、AIへの指示など)はすべてMarkdownファイルで管理。あなたの手で自由に世界を創造し、編集できます。
- 🔑 安全なAPIキー管理: OS標準のキーチェーン機能を利用して、あなたの貴重なLLM APIキーを安全に保管します。
- 📚 簡単なプロジェクト管理: コマンド一つでゲームシナリオの雛形を生成したり、既存のシナリオからIFルートを簡単に作成(フォーク)したりできます。
📦 インストール
- Visual Studio Codeを開きます。
- 左側のアクティビティバーから拡張機能ビューを開きます(
Ctrl+Shift+X )。
- 検索バーに
NovelADV と入力して検索します。
- インストールボタンをクリックします。
(将来的にはここにMarketplaceへのリンクを設置)
⚙️ 初回設定:APIキーの登録
本拡張機能を使用するには、LLMプロバイダーのAPIキーが必要です。デフォルトでは OpenRouter を使用します。
- OpenRouterなどのサイトでAPIキーを取得します。
- VS Codeでコマンドパレット (
Ctrl+Shift+P ) を開き、NovelADV: Start (Open Chat) を実行してチャットパネルを開きます。
- 初回起動時、またはAPIキーが未設定の場合、チャットパネルにAPIキーの設定を促すメッセージが表示されます。
- メッセージ内のボタンをクリックし、表示される入力ボックスにあなたのAPIキーを貼り付けてEnterキーを押します。
- キーはOSのキーチェーンに安全に保管され、以降は自動で利用されます。
📖 クイックスタート:最初のゲームを始めよう
- 新しいプロジェクトを作成
- コマンドパレット (
Ctrl+Shift+P ) を開き、NovelADV: New Novel (Initialize New Scenario Project) を実行します。
- プロジェクトを保存する親フォルダを選択し、プロジェクト名を入力します。
- 必要なフォルダと設定ファイルの雛形が自動で生成されます。
- プロジェクトを開く
- 作成完了後に表示されるダイアログで「Open Folder」をクリックし、生成されたプロジェクトフォルダをVS Codeで開きます。
- チャットを開始
- コマンドパレットから
NovelADV: Start (Open Chat) を実行すると、画面右側にチャットパネルが開きます。
- オープニングメッセージが表示され、ゲームが開始されます。
- 物語を紡ぐ
- チャット入力欄にあなたのキャラクターの行動やセリフを入力し、「送信」ボタンを押してください。AIが応答し、物語が進行します。
- 世界をカスタマイズ
- エクスプローラーで
scenario フォルダ内のMarkdownファイルを編集してみましょう。世界観やキャラクター設定を書き換えるだけで、AIの応答が変化します。
機能一覧
機能分類 |
機能名・トリガー |
概要 |
プロジェクト管理 |
NovelADV: New Novel |
ゲームシナリオに必要なディレクトリ構造と設定テンプレートを自動生成します。 |
|
NovelADV: Fork Scenario |
既存のシナリオ設定をコピーして、新しい物語の分岐(IFルート)を簡単に作成します。 |
ゲームプレイ |
NovelADV: Start (Open Chat) |
AIと対話するためのチャットパネルを開き、ゲームを開始または再開します。 |
セッション管理 |
セーブ / ロード ボタン |
ゲームの進行状況を手動で保存・復元できます。セーブデータはlogs/archives に保存されます。 |
|
Undo ボタン / !undo |
直前のプレイヤーの発言とAIの応答をセットで取り消すことができます。 |
|
自動保存・再開 |
対話は自動でlogs/autosaves に保存され、次回起動時に最新の状態から再開します。 |
ユーティリティ |
NovelADV: Export Log |
保存されたセッションログを、人間が読みやすいMarkdown形式でexports フォルダに出力します。 |
|
!chara_add <名前> コマンド |
会話ログを分析し、新しいキャラクターの設定シートをscenario/characters に自動生成します。 |
内部システム |
コンテキスト構築 |
世界観、キャラクター、AIルール、要約、直近の会話を結合し、LLMへの指示を動的に生成します。 |
|
自動要約(長期記憶) |
会話が一定量に達すると、LLMが自動でこれまでの出来事を要約し、長期記憶として保持します。 |
|
キャラクター自動更新 |
物語の要約が更新されると、その内容を基に各キャラクターの設定ファイルを自動更新します。 |
📁 プロジェクトのディレクトリ構造
New Novel コマンドで生成されるプロジェクトは、以下の構造を持っています。これらのファイルを編集することで、あなたの物語を自由にカスタマイズできます。
MyStoryGame/
├── .storygamesetting.json # 短期記憶の量など、プロジェクト固有の設定
├── .gitignore # Git管理用の設定
├── scenario/ # ゲームのシナリオ設定
│ ├── 00_world_setting.md # 世界観・舞台設定
│ ├── 01_player_character.md # 主人公(プレイヤー)設定
│ ├── 02_ai_rules.md # AIへの行動指針(最重要!)
│ ├── 03_opening_scene.md # ゲーム開始時のメッセージ
│ ├── characters/ # 登場人物(NPC)の設定ファイル
│ └── prompts/ # AIへのシステムプロンプトのテンプレート
├── logs/ # ゲームのセッションログ
│ ├── archives/ # 手動セーブデータ (JSON)
│ ├── autosaves/ # 自動保存データ (JSON)
│ └── transcripts/ # 全会話の記録 (Markdown)
├── summaries/ # 自動生成された物語の要約
│ └── latest_summary.json # 最新の長期記憶データ
└── exports/ # Markdown形式でエクスポートされたログ
🔧 拡張機能の設定
VS Codeの settings.json で、より詳細なLLMの設定が可能です。
interactive-story.chat.* : 物語を生成するAIの設定です。創造性豊かなモデルがおすすめです。
interactive-story.summarization.* : 要約やキャラクター更新など、内部処理を行うAIの設定です。正確性の高いモデルがおすすめです。
それぞれの設定で、モデル名、temperature(創造性)、最大トークン数などを個別に調整できます。
📜 ライセンス
このプロジェクトは GNU Affero General Public License v3.0 (AGPL-3.0) の下で公開されています。詳細は LICENSE ファイルをご覧ください。
Happy story-making!
| |