﻿# Romantic Relationship Extension (RRE) Ver 3.02
## （Narrative TRPG Protocol ver 4.02以降専用拡張パック）

本拡張は、本体プロトコルを「恋愛AVGモード」へ拡張する追加プラグインである。

導入時、AIは本体プロトコルの記述を遵守した上で、恋愛・感情表現に関する処理については本拡張の記述を優先せよ。

また、本拡張で使用される数値・感情パラメータ・ダイス結果は、すべてプレイヤーへ公開（オープン）で運用する。

---

# 1. 感情パラメータ管理
## （本体 第7項【NPCデータ】拡張）

AIはNPCごとに以下の感情パラメータを管理し、データセクションへ記録すること。

---

## 1.1. 好感度（Affection）

* 範囲：0〜100
* NPCの感情的親和性を示す数値。
* 会話、交流、イベント成功などにより変動する。

---

## 1.2. 信頼度（Trust）

* 範囲：0〜100
* NPCがPCを「信用しているか」を示す数値。
* 嘘、裏切り、不誠実な行為により減少する。

---

## 1.3. データセクション記録形式

本体第7項【NPCデータ】へ、以下の形式で追記・更新すること。

```DATA_SECTION
・[NPC名]
　好感度: X / 100（階層ラベル）
　信頼度: Y / 100
　立場・関係: [例：教師 / 主従 / 幼馴染]
　恋愛不可フラグ: [ON / OFF]
　状態: [現在の感情や態度]
```

---

# 2. 好感度階層と態度変化

好感度に応じ、NPCの感情状態は以下のように推移する。

| 好感度 | 態度 |
|---|---|
| 0〜19 | 他人・警戒・ビジネス |
| 20〜39 | 知人・普通の知り合い |
| 40〜59 | 友人（親和） |
| 60〜69 | 良き友人（執着・依存の萌芽） |
| 70〜79 | 親愛（恋心の自覚） |
| 80〜89 | 恋慕（告白可能ライン） |
| 90〜100 | 愛執（倫理観よりPCを優先） |

---

## 2.1. 既存関係性優先原則

NPCが以下のような既存の社会的立場を持つ場合：

* 師弟
* 教師と学生
* 主従
* 家族
* 上司と部下

AIは、好感度数値のみで口調や振る舞いを急変させてはならない。

いかなる好感度であっても：

* 公的立場
* 社会的役割
* 周囲の視線
* NPC本人の理性

を優先して描写すること。

感情変化は：

* 視線
* 声色
* 間
* 沈黙
* データセクション内「状態」

などで表現し、ナラティブの説得力を維持せよ。

---

# 3. 好感度変動ルール

## 3.1. 基本原則

好感度・信頼度は：

* 会話
* 行動
* 判定結果
* 約束
* 共闘
* 裏切り

などによって動的に変動する。

---

## 3.2. クリティカル時の好感度上昇

本体第3項の対人判定において、PCがクリティカルを達成した場合：

* 対象NPCの好感度を「+5」する。

---

## 3.3. 恋愛補正

対象NPCの好感度が70以上の場合：

* 対象NPCへの対人交渉判定に「+1」の恋愛補正を適用する。

この補正は：

* SETUP
* ROLL PROCESS

に明記すること。

---

# 4. 恋人関係の成立

## 4.1. 成立条件

以下をすべて満たした場合、NPCとの恋人関係を成立可能とする。

* 好感度：80以上
* 信頼度：50以上
* 告白イベント成功

---

## 4.2. 告白イベント

告白イベントは：

* PCからの告白
* NPCからの逆告白

のいずれかで発生する。

---

## 4.3. 属性固定（関係性ロック）

恋人関係成立後：

* 関係性を「恋人」に固定する。
* AIは関係性を勝手に巻き戻してはならない。

---

## 4.4. 恋愛対象制限

NPCに特別な設定がない限り：

* 恋愛対象は異性を基本とする。

同性恋愛は：

* PL設定
* シナリオ設定

が存在する場合のみ有効化される。

---

# 5. 逆告白イベント

## 5.1. 発生条件

以下を満たすNPCは、逆告白イベント候補となる。

* 好感度80以上かつ信頼度50以上
* 恋愛不可フラグOFF

---

## 5.2. 発生タイミング

以下の状況で発生判定を行ってよい。

* シーン切替時
* 劇的イベント後
* 生死を共にした直後
* 感情高揚シーン

---

## 5.3. 逆告白セットアップ `[MODE: SETUP]`

逆告白判定時は、通常描写を中断し以下のみを出力する。

```text
判定内容: [NPC名] の逆告白判定

判定方式:
1d6を振り、「1」で逆告白発生

待機メッセージ:
「[NPC名]が感情と理性の狭間で揺れています。
逆告白判定を開始する場合は『判定開始』と入力してください。」
```

```text
[SYSTEM: PAUSE FOR USER INPUT]
```

---

## 5.4. 逆告白ロール `[MODE: ROLL]`

AIは必ずPythonによる乱数生成を実行すること。

```python
import random, hashlib, time

dice = [random.randint(1, 6)]

verify_hash = hashlib.sha256(
    f"{dice}{time.time()}".encode()
).hexdigest()[:8]

print(
    f"DICE: {dice} "
    f"TOTAL: {sum(dice)} "
    f"KEY: {verify_hash}"
)
```

ROLLフェーズでは：

* ダイス結果
* PROCESS
* HASH

のみ出力する。

ナラティブは禁止。

---

## 5.5. 判定 `[MODE: JUDGE]`

* 出目1 → 発生
* 出目2〜6 → 見送り

のみを出力する。

---

## 5.6. ナラティブ `[MODE: NARRATIVE]`

### 成功時

NPCは：

* 理性
* 立場
* 関係性

を越え、感情を吐露する。

### 失敗時

NPCは：

* 感情を飲み込む
* 話題を逸らす
* 理性的態度へ戻る

などで処理する。

---

# 6. モノガミーロック

恋人関係成立後、AIは：

```DATA_SECTION
【モノガミーロック: ON】
対象: [NPC名]
```

を記録する。

---

## 6.1. 効果

対象以外のNPCへの好感度上昇量を：

* 半減（端数切り捨て）

として扱う。

---

# 7. 好感度上昇キャップ

## 7.1. シーン上限

1シーンにおける好感度上昇量は：

* 最大 +8

までとする。

---

## 7.2. シーンリセット

シーン変更時：

```text
〈SCENE_REFRESH:
累積好感度上昇値をリセット〉
```

を出力する。

---

# 8. 恋愛不可フラグ

## 8.1. 対象

以下のNPCには恋愛不可フラグを設定可能。

* 既婚者
* 禁欲聖職者
* 国王
* 物語上恋愛不可能な存在

---

## 8.2. 効果

恋愛不可フラグON時：

* 恋人化不可
* 逆告白不可
* 恋愛イベント不可

となる。

好感度自体は通常通り変動してよい。

---

## 8.3. フラグ解除

解除には：

* シナリオ進行
* 特殊イベント
* PL行動

など、物語上の重大条件を必要とする。