【本当に動く!】全自動小説作り機
コードはこちら
https://colab.research.google.com/drive/1jxWalnpeMoJ0-6wvH2II8pl6Fa74gjfh?usp=sharing
# AI物語作成ツール (Novel Creation Automation) ユーザーガイド
このJupyter Notebookは、Google Geminiモデル(`gemini-2.0-flash-exp` および `gemini-3-pro-preview`)を使用して、シナリオに基づいたキャラクターのロールプレイを行い、その結果を小説形式のテキストとして出力するツールです。
## 1. 事前準備
### 必要なもの
* **Googleアカウント**: Google Colabを実行するために必要です。
* **Google AI Studio API Key**: Gemini APIを利用するために必要です。[Google AI Studio](https://aistudio.google.com/) から取得してください。
### 環境設定
このノートブックは **Google Colab** での実行を推奨しています。
Google Driveをマウントするため、生成された小説は自動的にGoogle Drive内の指定フォルダに保存されます。
---
## 2. 入力ファイルの準備
このツールは実行時に3つのテキストファイル(`.txt`)のアップロードを求めます。事前にローカルPC等で作成しておくとスムーズです。
※ アップロードをキャンセルした場合、ノートブック内に記述されたデフォルトの設定が使用されます。
### ① シナリオファイル (`scenario.txt`)
物語のあらすじや構成を記述します。
AIはここから「場所」「登場人物」「イベントリスト(スケジュール)」を抽出します。
**記述例:**
```text
シーン1
【場所】
深夜のコンビニエンスストア。
【登場人物】
・佐藤健太(24歳):深夜バイト。無気力。
・謎の女:黒いコートを着ている。
【展開】
1. 佐藤がレジでスマホをいじっている。
2. 謎の女が入店し、レジへ直行する。
3. 女が「懐中時計」をカウンターに置く。
4. 女は何も言わずに立ち去る。
```
### ② 文体指示ファイル (`style.txt`)
小説の書き方をAIに指示します。視点(POV)やトーンを指定します。
**記述例:**
```text
- 視点は佐藤健太の三人称一元視点。
- 現代的で少し冷めた、若者らしい口調の地の文。
- 心理描写は「(なんだこいつ……)」のように括弧書きで挿入する。
- シリアスな雰囲気を保つこと。
```
### ③ 世界観設定ファイル (`world_settings.txt`)
物語の背景設定やルールを記述します。
AIはこの情報を**「Context(周知の事実)」「Reveal(今回明かす情報)」「Hidden(読者に隠すべき秘密)」**に自動分類し、ネタバレを防ぎながら執筆します。
**記述例:**
```text
現代日本だが、裏社会では魔法が存在する。
魔法を使うには「代償」が必要である。
謎の女の正体は、実は主人公の未来の娘である(※これはまだ明かさないこと)。
```
---
## 3. 実行手順
1. **ノートブックを開く**: Google Colabでファイルを開きます。
2. **セルの実行**: 上から順にセルを実行するか、「すべてのセルを実行」を選択します。
3. **APIキーの入力**:
* 実行中に `Please enter your Google API Key:` と表示されたら、取得したAPIキーを入力してEnterキーを押します。
* (`python-dotenv` や Colabの `userdata` 機能を使っている場合は自動で読み込まれます)
4. **ファイルのアップロード**:
* 画面に「[1/3] シナリオファイルをアップロードしてください」などの指示が出たら、用意した `.txt` ファイルを選択してアップロードします。
* キャンセルボタンを押すと、デモ用のデータで実行されます。
5. **シーン範囲の指定**:
* `開始シーン番号` と `終了シーン番号` を入力します(例: `1` と `1`)。
## 4. 処理の流れ(自動実行)
入力が完了すると、AIが以下の順序で処理を行います。
1. **Scenario Analysis**: シナリオテキストを解析し、構造化データ(場所、キャラ、行動予定)に変換します。
2. **Simulation (Roleplay)**:
* **GM (Game Master)**: 次に誰がどう動くべきかを指示します。
* **Character**: キャラクターになりきって行動や発言、思考を出力します。
* これを繰り返して「行動ログ」を作成します。
3. **Novelist (Writing)**:
* 行動ログを元に、指定された文体と世界観設定を守って小説を執筆します。
* ※この際、AIは「まだ読者に知られてはいけない秘密」が含まれていないか自己検閲を行います。
4. **Saving**:
* 完成したテキストは Google Drive の `/MyDrive/小説自動つくるくん/NovelOutput/YYYY_MM_DD/` フォルダに保存されます。
---
## 5. 注意点とカスタマイズ
* **実行時間**: 高性能な推論モデル(`gemini-3-pro-preview`)を使用しているため、処理には時間がかかります。
* **レート制限 (Rate Limit)**:
* コード内には `wait_for_rate_limit` 関数が組み込まれており、APIの制限回数を超えないように自動で待機(Sleep)します。
* 頻繁に止まっているように見えても、これは正常な動作です。
* **モデルの変更**:
* コード内の `MODEL_ACTOR`, `MODEL_NOVELIST` などの変数を書き換えることで、使用するGeminiのモデルバージョンを変更可能です。




