feat: initial commit

This commit is contained in:
2026-06-23 20:29:02 +08:00
commit ea8f6066c4
217 changed files with 60754 additions and 0 deletions
+113
View File
@@ -0,0 +1,113 @@
# 爽点设计指南 (Cool Points Guide)
> **适用范围**: 所有题材类型
> **核心目标**: 系统化爽点设计,提供可复用的爽感模板
## 爽点分类
### 1. 升级爽点 (Level-Up)
| 类型 | 触发条件 | 情绪效果 |
|------|---------|---------|
| 境界突破 | 长时间积累后突破 | 成就感、宣泄感 |
| 战力飙升 | 获得金手指/机缘 | 优越感、期待感 |
| 技能觉醒 | 特殊条件下解锁 | 惊喜感、命运感 |
### 2. 打脸爽点 (Payback)
| 类型 | 触发条件 | 情绪效果 |
|------|---------|---------|
| 正打脸 | 主角碾压敌人 | 宣泄感、优越感 |
| 反打脸 | 被打脸对象反转 | 意外感、爆笑感 |
| 连续打脸 | 多重打脸叠加 | 累积快感、满足感 |
### 3. 收获爽点 (Gain)
| 类型 | 触发条件 | 情绪效果 |
|------|---------|---------|
| 获得宝物 | 意外获得/努力获得 | 惊喜感、期待感 |
| 获得美人 | 感情线突破 | 心动感、甜蜜感 |
| 获得势力 | 建立/加入组织 | 归属感、成就感 |
### 4. 认知爽点 (Insight)
| 类型 | 触发条件 | 情绪效果 |
|------|---------|---------|
| 伏笔回收 | 前文线索揭晓 | 原来如此感 |
| 阴谋揭露 | 隐藏真相浮出 | 震惊感、愤怒感 |
| 真相逆转 | 认知被颠覆 | 烧脑感、跪感 |
## 爽点密度公式
```
章节爽点密度 = (升级次数 × 0.4 + 打脸次数 × 0.3 + 收获次数 × 0.2 + 认知次数 × 0.1) / 字数(万)
```
参考值:
- 高潮章: 爽点密度 ≥ 3.0
- 推进章: 爽点密度 1.5-3.0
- 铺垫章: 爽点密度 0.5-1.5
## 爽点节奏模板
### 模板A: 积累-爆发型
```
第1章: 危机出现(Hook
第2-3章: 积累努力(压强上升)
第4章: 突破契机(转折点)
第5章: 爽点爆发(降维打击/收获)
第6章: 余波展示(巩固快感)
```
### 模板B: 连续碾压型
```
连续3章打脸,每章2-3个打脸点
→ 累积快感 > 单次大爽点
```
### 模板C: 认知反转型
```
前期: 多线伏笔埋设
中期: 线索逐渐清晰
高潮: 多线同时收束
→ 认知闭合的"原来如此"爽感
```
## 爽点与张力曲线
```
张力曲线: ▁▂▃▄▅▆▇峰值
爽点分布: ▁▁▂▂▃▄▆(同步)
```
- 张力积累期: 爽点小而密(维持兴趣)
- 张力峰值: 大爽点(释放)
- 缓冲期: 间歇性小爽点(防止空虚)
## 题材适配
| 题材 | 主爽点类型 | 爽点频率 |
|------|----------|---------|
| 玄幻/修仙 | 升级、打脸 | 高频 |
| 都市 | 装逼、打脸、收获 | 极高频 |
| 科幻 | 认知、升级 | 中频 |
| 悬疑 | 认知、伏笔回收 | 低频高质 |
| 甜宠 | 收获、感情 | 中频 |
## 禁忌事项
- 爽点密度过高 → 审美疲劳
- 爽点类型单一 → 单调乏味
- 爽点无铺垫 → 获得感不足
- 爽点不回收 → 期望落空
## 爽点设计检查清单
- [ ] 本章是否有至少1个核心爽点
- [ ] 爽点是否有足够铺垫(3章内)
- [ ] 爽点类型是否多样化
- [ ] 爽点密度是否符合章节类型
- [ ] 爽点是否与核心欲望关联
+186
View File
@@ -0,0 +1,186 @@
# 核心约束集 (Core Constraints)
> **适用范围**: 所有题材和章节类型
> **核心目标**: 维护故事内部逻辑一致性,提供物理/社会规则约束
## 世界规则 (World Rules)
### 物理规则
```json
{
"physics": {
"gravity": "normal|low|high|zero",
"time_flow": "1:1|accelerated|reversed",
"energy_conservation": true,
"matter_creation": false
}
}
```
### 社会规则
```json
{
"society": {
"power_structure": "hierarchical|meritocratic|matriarchal|patriarchal",
"mobility": "low|medium|high",
"conflict_resolution": "force|negotiation|law"
}
}
```
### 修炼规则 (适用于玄幻/修仙)
```json
{
"cultivation": {
"realm_levels": ["凡人", "炼气", "筑基", "金丹", "元婴", "化神", "大乘", "渡劫"],
"breakthrough_method": "accumulation|epiphany|resource",
"power_source": "spiritual|elemental|mixed",
"combat_rules": {
"realm_difference_significant": true,
" techniques_over_raw_power": false,
"enviroment_affects_battle": true
}
}
}
```
## 实体层级 (Entity Tiers)
| 层级 | 描述 | 典型境界 | 出场密度 |
|------|------|---------|---------|
| S | 主角/G级存在 | 渡劫/大乘 | 每章 |
| A | 核心配角 | 元婴/化神 | 3章/次 |
| B | 重要配角 | 金丹 | 5章/次 |
| C | 次要角色 | 筑基/炼气 | 每章 |
| D | 装饰/路人 | 凡人 | 按需 |
## 战力系统
### 战力值计算公式
```
战力值 = 境界基准值 × 技能加成 × 装备加成 × 状态系数
```
| 境界 | 基准值 |
|------|-------|
| 炼气 | 100 |
| 筑基 | 1,000 |
| 金丹 | 10,000 |
| 元婴 | 100,000 |
| 化神 | 1,000,000 |
| 大乘 | 10,000,000 |
| 渡劫 | 100,000,000 |
### 越级战斗规则
- 小境界差异: 战力比 1:3,可越级但艰难
- 大境界差异: 战力比 1:10,极难越级
- 越大境界: 除非金手指,否则不可能
## 时间规则
### 时间线约束
```json
{
"time": {
"chapter_time_span": "1-7天",
"arc_time_span": "数月-数年",
"overall_story_span": "数年-数千年",
"timejump_handling": "必须交代"
}
}
```
### 角色时间感知
- 主角: 感知完整时间线
- 核心配角: 感知重要事件
- 次要角色: 仅感知与其相关事件
## 空间规则
### 地点层级
```
世界 → 区域 → 地点 → 场景
```
### 移动规则
- 同一地点: 无需描述
- 同区域不同地点: 简略交代
- 跨区域: 必须描述过程
- 跨界/位面: 重点描述
## 信息规则
### 信息可见性
| 信息类型 | 主角 | 核心配角 | 读者 |
|---------|------|---------|------|
| 当前场景 | ✓ | ✓ | ✓ |
| 自己内心 | ✓ | ✓ | ✓ |
| 他人内心 | ✗ | ✗ | ✗ |
| 全知视角 | ✓ | ✗ | ✓ |
### 伏笔规则
- 伏笔必须可见(读者能察觉)
- 伏笔回收需有足够间隔(≥3章)
- 长伏笔需多次提及(保持记忆)
- 伏笔回收方式: 揭示/反转/融合
## 叙事约束
### 视角规则
- 严格单视角(主角第一人称/第三人称限知)
- 视角切换需章节/场景分隔
- 不得使用"全能视角"解释读者未知信息
### 节奏约束
- 每3章必须有一个明确进展
- 每章必须有至少一个Hook
- 高潮章后需1-2章缓冲
- 章节结尾不能平淡
## Genesis Contract 约束
来自 `genesis_contract.json` 的特殊约束:
```json
{
"ethical_inversion": {
"inverted_norms": ["规范列表"],
"alternative_values": {"替代规则"}
},
"core_spectacle": {
"ordinary_state": "日常状态",
"spectacle_trigger": "触发条件",
"frequency": "出现频率"
}
}
```
## 约束检查清单
### 物理一致性
- [ ] 战力对比是否合理
- [ ] 地点/时间是否连续
- [ ] 移动是否有交代
### 社会一致性
- [ ] 势力关系是否合理
- [ ] 层级是否被尊重
- [ ] 冲突解决是否合逻辑
### 信息一致性
- [ ] 伏笔是否可见
- [ ] 信息是否按层级可见
- [ ] 读者与角色信息是否分离
@@ -0,0 +1,198 @@
# Strands Weave Pattern (绳结编织模式)
> **来源**: 基于 Webnovel-Writer 的 strand-tracker
> **核心**: 三轨编织节奏系统,量化章节叙事节奏
## 三轨系统 (Three Strands)
### Quest Strand (探索轨) 🔵
**特征**: 主角追求目标、完成任务、推进主线
**关键词**: 目标、挑战、成长、发现
**节奏模式**:
```
积累期 → 探索期 → 突破期 → 收获期
▁▂▃ ▃▄▅ ▅▆▇ ▇██
```
**适用场景**:
- 开篇世界观建立
- 主线任务推进
- 宝藏/机缘获取
- 境界提升
### Fire Strand (火焰轨) 🔴
**特征**: 冲突、战斗、情绪爆发
**关键词**: 对抗、压力、激情、释放
**节奏模式**:
```
压抑期 → 冲突期 → 高潮期 → 释放期
▁▂▃ ▄▅▆ ▆▇█ ███▁▁▂▃
```
**适用场景**:
- 战斗场面
- 打脸时刻
- 情感冲突
- 危机时刻
### Constellation Strand (星座轨) 🟣
**特征**: 伏笔、暗示、多线交织
**关键词**: 线索、悬念、网状、编织
**节奏模式**:
```
埋设期 → 编织期 → 激活期 → 收束期
▁▂▂▃ ▃▄▄▅ ▅▆▇ ▇███
```
**适用场景**:
- 伏笔埋设
- 多线叙事
- 阴谋揭露
- 人物关系网
## 编织公式
### 基础编织 (单章)
```
章节 strand 分布 = Quest(50-70%) + Fire(20-30%) + Constellation(10-20%)
```
**示例** (3000字章节):
- Quest: 1800字
- Fire: 600字
- Constellation: 600字
### 进阶编织 (情节弧)
```
情节弧 strand 分布 = 铺垫(Q占比高) → 发展(Q+F均衡) → 高潮(F占比高) → 收束(C占比高)
```
## 三轨切换信号
### Quest → Fire 切换
**信号**: 遭遇敌人/对手/障碍
**过渡句示例**:
- "就在他准备离开时..."
- "忽然,一道凌厉的气息锁定了他..."
- "然而,变故突生..."
### Fire → Constellation 切换
**信号**: 战斗结束,进入思考/回忆/分析
**过渡句示例**:
- "战斗虽然结束,但他的心中却升起一个疑问..."
- "看着倒下的敌人,他忽然想起了..."
- "这一战,让他隐约看到了什么..."
### Constellation → Quest 切换
**信号**: 线索汇聚,指向新目标
**过渡句示例**:
- "根据这条线索,他决定前往..."
- "真相逐渐浮出水面,而他要做的第一步是..."
- "所有的谜团都指向同一个地方..."
## 节奏矩阵
### 章节类型 × Strand 分布
| 章节类型 | Quest | Fire | Constellation |
|---------|-------|------|---------------|
| 开篇章 | 70% | 10% | 20% |
| 推进章 | 50% | 30% | 20% |
| 高潮章 | 20% | 60% | 20% |
| 缓冲章 | 40% | 20% | 40% |
| 收束章 | 30% | 20% | 50% |
| 过渡章 | 60% | 10% | 30% |
### 压强 × Strand 选择
| 压强状态 | 推荐主导 Strand | 原因 |
|---------|---------------|------|
| <30 | Quest | 探索无压强,适合积累 |
| 30-50 | Quest + Constellation | 边探索边编织 |
| 50-70 | Fire + Quest | 压力需要释放出口 |
| 70-85 | Fire | 高压需要冲突释放 |
| >85 | Fire + Constellation | 冲突中编织新线 |
## 编织检查点
### 章节级检查
```python
def check_chapter_weave(chapter_text: str) -> dict:
quest_ratio = count_strand(chapter_text, "quest") / total_words
fire_ratio = count_strand(chapter_text, "fire") / total_words
constellation_ratio = count_strand(chapter_text, "constellation") / total_words
return {
"quest": quest_ratio,
"fire": fire_ratio,
"constellation": constellation_ratio,
"balanced": is_balanced(quest_ratio, fire_ratio, constellation_ratio),
"dominant_strand": get_dominant(quest_ratio, fire_ratio, constellation_ratio)
}
```
### 弧线级检查
```python
def check_arc_weave(chapters: list) -> dict:
arc_quest = sum(c.quest_ratio for c in chapters) / len(chapters)
arc_fire = sum(c.fire_ratio for c in chapters) / len(chapters)
arc_constellation = sum(c.constellation_ratio for c in chapters) / len(chapters)
# 检查是否有过渡
transitions = count_transitions(chapters)
return {
"arc_balance": arc_quest, arc_fire, arc_constellation,
"transitions": transitions,
"healthy": transitions >= len(chapters) * 0.5
}
```
## 编织不当的症状
| 症状 | 原因 | 解决方案 |
|------|------|---------|
| 节奏单调 | 单一strand主导 | 强制插入其他strand |
| 跳跃感 | strand切换无过渡 | 增加过渡句 |
| 拖沓 | 所有strand都是低烈度 | 提升Fire占比 |
| 断裂 | 章节间strand无关 | 建立strand连续性 |
| 疲劳 | Fire占比过高 | 增加Quest探索 |
## Strands Weave 操作指南
### 增加 Quest
- 引入新地点/新任务
- 展示主角的追求和努力
- 加入新人物作为目标指引
### 增加 Fire
- 引入冲突/对抗
- 制造紧迫时间压力
- 展示敌人的强大
### 增加 Constellation
- 埋设新伏笔/线索
- 展示人物关系变化
- 暗示未来可能性
### 切换 Strand
- 使用明确的过渡信号句
- 保持至少200字的 strand 连续性
- 单章内不超过3次切换