创建人物
此技能用于在已创建的新书项目中,按模板创建一个人物角色,并将所有人物统一存储在一个 Markdown 存档文件中,按人物类别分区管理。
核心定位
- 三类三分文件管理:所有出场人物按类别拆分为三个独立文件——
主要角色.md/次要角色.md/龙套角色.md;每个文件仅存对应类别的人物,不再混合存储 - 分卷多目录:分卷多文件项目(
volumes.enabled=true且volumes.multi_file=true),角色文件按大纲/人物/卷{N}/子目录存放(如大纲/人物/卷1/主要角色.md);不分卷或单文件模式统一存放于大纲/人物/ - 类别分流:主要/次要角色走完整交互式模板(五轮问询),龙套角色走快速通道(一句话描述 → 润色 → 一行写入)
- 双向关系同步:新人物写入后,自动扫描其人物基本关系,在老角色的关系区块中追加反向关系——跨文件的关系同步覆盖所有三类文件
- 跨卷人物引用:多文件模式下创建新卷人物时,若该角色已在旧卷中存在条目,自动引用旧数据并询问用户需变更的内容——避免重复录入
- NSFW 分级:NSFW 字段(XP/三维/性特征/人物X能力)默认不纳入例行问询。但当
项目信息.json中content_rating为NSFW时,NSFW 字段自动升为必填,纳入正常交互流程,不再等待用户主动提及
关联文件
| 文件 | 位置 | 用途 | 读写 |
|---|---|---|---|
主要角色.md |
大纲/人物/(不分卷)或 大纲/人物/卷{N}/(分卷多文件) |
主要角色数据存储 | 读写 |
次要角色.md |
同上 | 次要角色数据存储 | 读写 |
龙套角色.md |
同上 | 龙套角色数据存储(简化格式) | 读写 |
项目信息.json |
大纲/ 或 outline/ |
内容分级(content_rating)、NSFW 输出词偏好、分卷信息(volumes.*) |
只读 |
写作配置.json |
大纲/ 或 outline/ |
润色模式(读 大纲.polish_mode + 分卷 覆盖项,分卷时按角色出场卷取对应卷写作配置) |
只读 |
character-interaction.json |
data/ |
交互引导数据(各轮询问模板 + 正反例,按需读取) | 只读 |
执行模式:计划模式
调用此技能后,必须首先进入计划模式(EnterPlanMode)。
- 使用
EnterPlanMode工具进入计划模式 - 在计划中列出:
- 目标项目确认(定位
项目信息.json、写作配置.json和角色文件) - 读取
写作配置.json确定加工强度(使用大纲.polish_mode) - 将询问的字段列表(基础信息 → 外貌 → 性格 → 简介 → 可选;龙套走快速通道)
- NSFW 字段是否启用:读取
项目信息.json的content_rating→ 若为NSFW则 NSFW 字段自动启用并纳入必填;否则仅在用户主动提及时启用
- NSFW 字段是否启用:读取
- 输出文件路径和写入方式(新建或追加)
- 目标项目确认(定位
- 等待用户批准计划后,再按计划逐步询问并执行
- 不要在进入计划模式前直接开始询问用户信息或写入文件
触发条件
当用户表达以下意图时,立即调用此技能:
- "我们开始创建一个新人物"、"创建新人物"、"创建人物"
- "新建角色"、"添加角色"、"写个人物"
- "加一个角色"、"设定一个角色"
- 任何表达"创建/新增一个小说/故事人物角色"的类似表述
前提条件
此技能依赖 创建新书 技能已执行完成:
- 当前工作目录下应已存在
大纲/人物/(或outline/characters/)目录 - 如未检测到该目录 → 提示用户先使用"创建新书"建立项目
- 如检测到多个项目目录 → 询问用户选择目标项目
语言规则
继承 创建新书 技能中设定的路径语言:
- 中文默认:文件名为
主要角色.md/次要角色.md/龙套角色.md,内容以中文输出 - English:文件名为
main-characters.md/supporting-characters.md/extras.md,内容以英文输出 - 如无法确定,默认使用中文
存档文件结构
角色数据按类别拆分三文件,每个文件独立管理。文件顶部结构(首次创建时写入):
主要角色.md:
# {书名} — 主要角色
> 创建日期:{日期}
> 最后更新:{日期}
{分卷多文件时:> 所属:{书名} / 第{N}卷 / 共{N}卷}
---
(主要角色条目追加于此)
次要角色.md:
# {书名} — 次要角色
> 创建日期:{日期}
> 最后更新:{日期}
{分卷多文件时:> 所属:{书名} / 第{N}卷 / 共{N}卷}
---
(次要角色条目追加于此)
龙套角色.md:
# {书名} — 龙套角色
> 创建日期:{日期}
> 最后更新:{日期}
{分卷多文件时:> 所属:{书名} / 第{N}卷 / 共{N}卷}
---
(龙套角色条目追加于此)
分卷多目录存储规则
分卷多文件模式(volumes.enabled=true + volumes.multi_file=true):
- 角色文件按卷存放:
大纲/人物/卷1/主要角色.md、大纲/人物/卷1/次要角色.md、大纲/人物/卷1/龙套角色.md - 每卷角色文件独立,仅收录该卷出场的角色
- 跨卷出场角色:在各卷中均有条目(通过跨卷引用机制同步基础数据)
不分卷或单文件模式(volumes.enabled=false 或 volumes.multi_file=false):
- 角色文件统一存放:
大纲/人物/主要角色.md、大纲/人物/次要角色.md、大纲/人物/龙套角色.md - 所有卷的角色共存在同一套文件中(通过
出场卷字段区分)
用户指定"只要一个":如用户在分卷时明确说"角色只要一个文件",则无论 volumes.multi_file 如何,角色均使用不分卷路径(大纲/人物/ 下的三文件)。
卷目录自动创建
首次写入某卷角色时,若 大纲/人物/卷{N}/ 目录不存在 → 自动创建。创建后验证目录存在再写入文件。
单个人物条目模板(主要/次要角色)
字段定义唯一来源:模板库
templates/character.schema.json(注册 id:character,见templates/index.json)。下方模板为渲染示例——字段/必填/条件启用/渲染格式均以 schema 为准,本技能不自行维护字段定义。新增字段(如本版的「隐藏设定」)只需改 schema 一处。
### {人物名称}
- **性别**:{男/女/无}
- **年龄/出生日期**:{XXXX年XX月XX日 / XX岁}
- **身高**:{___cm} **体重**:{___kg} **身形特点**:{描述}
- **出场卷**:(可选,分卷项目自动出现){第{N}卷 / "第1—3卷" / "全卷"}
- **XP**:({NSFW作品:必填 / 非NSFW:可选},NSFW){_}
- **三维**:({NSFW作品:必填 / 非NSFW:可选},NSFW){XX_XX_XX}
- **性特征**:({NSFW作品:必填 / 非NSFW:可选},NSFW){_}
- **人物性格**:
{性格描述}
- **人物语气**:{自动生成,基于人物性格}
- 说话风格:{简洁有力/啰嗦随性/文雅含蓄/直白奔放……}
- 用词偏好:{口语化/书面化/粗犷/文绉绉……}
- 情绪表达:{外放/内敛/冷静/激烈……}
- 句式特征:{短句/长句/碎片化/工整……}
- 口头禅:{可选,角色的口头禅或高频句尾}
{仅NSFW作品:}
- nsfw_tone:{保守/中性/放荡}
- **人物简介**:
{简介描述}
- **人物基本关系**:(可选)
- {A与B:关系...}
- **人物能力**:(可选,1~10)
- 战斗:{格斗、射击}
- 建造:{制作、建造、艺术加工}
- 烹饪:{烹饪}
- 农艺:{驯兽、种植植物}
- 医疗:{医疗}
- 社交:{社交}
- 智识:{领导、计策}
- 魔力:{元素操控、召唤术、结界术、炼金/炼丹、法术知识、魔力储量}
- 魅力:{1~10} {外貌描述,如:倾国倾城/中上之姿/相貌平平/其貌不扬}
- **人物X能力**:({NSFW作品:可选 / 非NSFW:可选},NSFW,1~10)
- 耐力:{X事件下的耐力,是否容易高潮}
- 耐受:{在高潮后的生理状态}
- 攻击力:{攻方选项,是否容易把人弄高潮}
- 性欲望:{性欲强度,是否容易发情}
- **隐藏设定**:(可选){仅角色本人或知情圈知晓的信息——身世/秘密/动机。非空时自动预登记为伏笔(见「伏笔预登记」)}
---
龙套角色简化模板
**{人物名称}**:{简介,大致年龄,社会身份/地位,身形特点,性格,简单关系等}
龙套书写规则:
- 每条龙套一行,条目之间以空行分隔
- 不使用
---分隔线(与主要/次要角色区分) - 无子标题(不设
### {人物名称}),直接以粗体名称开头 - 单行描述控制在 60 字以内——保持龙套区的轻量感
龙套示例:
张三:李四的发小,约25岁,镇上铁匠铺学徒,膀大腰圆,憨厚老实,与李四是酒友。
王婆:村口卖菜的老妇人,六十出头,驼背但眼神精亮,爱嚼舌根但心肠不坏,常给主角塞菜。
模板字段说明
| 字段 | 说明 | 必填 | 适用类别 |
|---|---|---|---|
| 人物类别 | 主要角色 / 次要角色 / 龙套角色 | 是 | 全部 |
| 人物名称 | 角色的姓名或代号 | 是 | 全部 |
| 出场卷 | 角色出场的卷号/范围(分卷项目自动询问) | 否(分卷项目自动出现) | 全部 |
| 性别 | 男 / 女 / 无(非人类角色) | 是 | 主要/次要 |
| 年龄/出生日期 | 具体日期或大致年龄 | 是 | 主要/次要 |
| 身高/体重/身形特点 | 体型描述 | 是 | 主要/次要 |
| XP | 角色性癖/XP标签 | 是(NSFW作品)/ 否(非NSFW) | 主要/次要 |
| 三维 | 胸围_腰围_臀围 | 是(NSFW作品)/ 否(非NSFW) | 主要/次要 |
| 性特征 | 性相关特征描述 | 是(NSFW作品)/ 否(非NSFW) | 主要/次要 |
| 人物性格 | 性格特征、行为习惯、动机 | 是 | 主要/次要 |
| 人物语气 | 说话风格、用词偏好、情绪表达方式、句式、口头禅、nsfw_tone(NSFW) | 是 | 主要/次要 |
| 人物简介 | 角色背景、经历概述 | 是 | 主要/次要 |
| 人物基本关系 | 与其他角色的关系 | 否 | 主要/次要 |
| 人物能力 | 各项能力数值(1~10) | 否 | 主要/次要 |
| 人物X能力 | X相关能力(1~10) | 是(NSFW作品)/ 否(非NSFW) | 主要/次要 |
| 隐藏设定 | 身世/秘密/动机——仅角色本人或知情圈知晓 | 否 | 主要/次要 |
| 龙套简化格式 | 单行描述 | 是 | 龙套 |
执行步骤
步骤 1:确认输出目录与存档文件
1.1 定位目标目录
大纲/人物/ → outline/characters/ → 用户手动指定
- 如存在多个项目目录 → 列出供用户选择
- 如不存在 → 提示先运行"创建新书"
1.2 读取上下文与分卷判断
Read读取大纲/写作配置.json→ 获取大纲.polish_mode+分卷覆盖项Read读取大纲/项目信息.json→ 获取content_rating、nsfw_output_level、volumes;nsfw_character_tone仅在nsfw_output_level为限制级时读取- 润色模式影响后续所有交互中对用户输入的加工程度
- NSFW 数据用于人物涉及 NSFW 字段时的词汇选择
- 分卷感知:根据
volumes.enabled+volumes.multi_file判断文件存储路径
1.3 确定目标文件路径
根据分卷状态和人物类别确定写入目标:
| 分卷状态 | 人物类别 | 目标文件 |
|---|---|---|
| 不分卷 / 单文件 | 主要角色 | 大纲/人物/主要角色.md |
| 不分卷 / 单文件 | 次要角色 | 大纲/人物/次要角色.md |
| 不分卷 / 单文件 | 龙套角色 | 大纲/人物/龙套角色.md |
| 分卷多文件 | 主要角色(第N卷) | 大纲/人物/卷{N}/主要角色.md |
| 分卷多文件 | 次要角色(第N卷) | 大纲/人物/卷{N}/次要角色.md |
| 分卷多文件 | 龙套角色(第N卷) | 大纲/人物/卷{N}/龙套角色.md |
1.4 检查目标文件
| 文件状态 | 处理 |
|---|---|
| 已存在 | Read 读取现有文件 → 准备追加 |
| 不存在 | 按存档文件结构写入顶部框架(书名标题 + 日期 + 卷信息如适用) |
| 卷目录不存在 | 自动创建 大纲/人物/卷{N}/ 后再创建文件 |
步骤 1.5:跨卷人物引用(分卷多文件模式专属)
仅当 volumes.enabled=true 且 volumes.multi_file=true 且当前卷号 > 1 时执行。
在用户输入人物名称后,自动搜索旧卷中是否存在同名角色:
- 扫描
大纲/人物/卷1/、大纲/人物/卷2/...大纲/人物/卷{N-1}/下所有三类角色文件 - 查找同名
### {人物名称}或**{人物名称}**条目
找到同名角色时:
🔗 在卷{M}「{卷名}」中发现已存在的「{人物名称}」({主要/次要/龙套}角色)。
旧卷数据摘要:
• 性别:{性别} • 年龄:{年龄}
• 性格:{一句话概括}
• 简介:{一句话概括}
• 关系:{关键关系简述}
{如有能力} • 能力:{关键能力数值}
是否需要基于旧数据进行变更?
• 直接引用 — 完整复制旧卷数据(仅更新出场卷标记)
• 部分变更 — 告诉我哪些字段需要修改(如"性格变了,现在更成熟了"、"能力提升了")
• 重新创建 — 当作全新角色从头填写(不引用旧数据)
处理规则:
| 用户选择 | 处理 |
|---|---|
| 直接引用 | 复制旧条目全部字段 → 更新 出场卷 为当前卷号 → 写入当前卷对应文件;不询问任何字段 |
| 部分变更 | 复制旧条目为底稿 → 按用户指示修改指定字段 → 其余字段保持不变 → 更新 出场卷 → 写入 |
| 重新创建 | 忽略旧数据 → 进入正常的步骤 2 交互式填充流程 |
未找到同名角色:无提示,直接进入正常创建流程。
跨卷关系继承:
- 直接引用/部分变更时,旧条目中的
人物基本关系自动带入 - 关系涉及的对方角色如果也在当前卷出场 → 在当前卷的关系同步中处理
- 关系涉及的对方角色如果不在当前卷 → 保留关系记录但标注
(参见卷{M})
步骤 2:交互式填充模板
逐项向用户询问模板中的必填字段。按以下顺序进行,每次只问 1~2 个相关字段。
润色模式影响(从 写作配置.json 读取 大纲.polish_mode):
| 模式 | 对人物字段的加工策略 |
|---|---|
轻度 |
直接记录用户原话,转为书面格式——保留用户的用词习惯 |
中度 |
在用户原话基础上小幅优化表达(≤60% 改动)——如将口语化描述转为书面化 |
重度 |
仅保留原意,对内容进行改写润色和适当扩写——如将一句话描述扩展为一段文字 |
第一轮 — 基础信息:(询问模板见 data/character-interaction.json → rounds.r1_basic.prompt)
此轮后的分支判断:
| 用户选择 | 后续流程 |
|---|---|
| 主要角色 | 先进入分卷赋值(如项目已分卷)→ 继续第二轮~第五轮完整流程 |
| 次要角色 | 先进入分卷赋值(如项目已分卷)→ 继续第二轮~第五轮完整流程 |
| 龙套角色 | 先进入分卷赋值(如项目已分卷)→ 再跳至龙套快速通道 |
分卷赋值(条件触发):
仅当 项目信息.json 中 volumes.enabled = true 时执行。
第一轮完成后,询问出场卷(模板见 rounds.volume_assignment.prompt):
根据用户选择写入 出场卷 字段:
- 单选 →
第{N}卷 - 多选 →
"第1—3卷"或"第1、3卷" - 全卷 →
全卷 - 跳过 → 留空
润色模式取用:
- 如角色仅出现在单一卷,且该卷在
写作配置.json→分卷中有独立配置 → 使用该卷润色模式 - 如角色跨多卷或全卷 → 使用全局
大纲.polish_mode - 如无分卷信息 → 使用全局
大纲.polish_mode
第二轮 — 外貌信息:
(询问模板见 rounds.r2_appearance.prompt;身形特点正反例 3 组见 examples.body_shape)
年龄写入规则:
- 用户提供确切日期 → 写入
XXXX年XX月XX日 - 用户提供大致年龄 → 写入
约XX岁 - 两者都提供 → 写入
XXXX年XX月XX日(XX岁)
第三轮 — 内在设定:
(询问模板见 rounds.r3_personality.prompt;性格正反例 2 组见 examples.personality)
n第三轮附 — 人物语气(基于性格自动生成):
人物语气由 AI 根据用户填写的性格描述自动生成,用户确认或修改后生效。不作为独立轮次询问用户——用户填写完性格后,AI 直接给出语气建议。
(语气建议模板见 rounds.r3_voice.prompt)
- 语气数据同时写入两个位置:① 角色 MD 条目中的「人物语气」字段 ②
写作配置.json的角色语气.{角色名}段 - 修改时直接调整对应维度即可,其他维度保持不变
- 跳过时两个位置均不写入,写作时按无语气配置处理
第四轮 — 背景故事:
(询问模板见 rounds.r4_background.prompt;简介正反例见 examples.background)
第六轮 — NSFW 身体设定(仅 NSFW 作品):
仅当 content_rating 为 NSFW 时执行此轮。非 NSFW 作品跳过,直接进入第五轮。
(询问模板见 rounds.r6_nsfw_body.prompt)
- NSFW 作品下此轮为必填——不跳过,至少填写一项
- 如用户确实不想填写某项 → 说"跳过XP/跳过三维"可留空对应字段
- 填写后按 NSFW 词汇选择协调规则择词(见 NSFW 内容规则),不经过 Write-Router/Core
- NSFW 字段直接写入人物条目中
身形特点之后、人物性格之前
第五轮 — 可选内容:
(询问模板见 rounds.r5_optional.prompt)
- 如用户跳过全部可选内容 → 直接进入步骤 3
- 如填写了人物基本关系 → 在步骤 3.5 中触发双向关系同步
- NSFW 作品时人物X能力为可选——用户跳过则留空
龙套快速通道
当用户在第一轮选择「龙套角色」后,跳过第二轮~第五轮,使用此简化流程。
L1 — 确认名称(如第一轮已获取则跳过;模板见 rounds.quick_l1.prompt):
L2 — 一句话描述(模板见 rounds.quick_l2.prompt):
L3 — Write-Router 轻量模式加工:
用户输入后,将描述传入 Write-Router(轻量模式 mode: "creation_phase"),由 Write-Router 调度 Core 按大纲文本规范加工(规范 1.5/1.6/5)。润色模式取用优先级:出场卷独立配置 → 全局 大纲.polish_mode。详见步骤 2.8。
L4 — 拼接简化格式: 将润色后的描述拼接为龙套简化格式:
**{人物名称}**(出场:{第N卷/全卷}):{润色后描述}
如项目未分卷,省略 (出场:...) 部分。
L5 — 龙套关系提取: 从简化描述中智能提取关系(如"李四的发小"→ 关联李四;"常给主角塞菜"→ 关联主角),在步骤 3.5 中触发双向关系同步。
步骤 2.8:Write-Router 调度 Core 写作规范加工(写入前必经步骤)
一切供人阅读的人物描述文本,写入文件前必须经过 Write-Router(轻量模式)→ Core(基础写作辅助)加工。
在步骤 2 收集完用户输入并完成初步润色后、步骤 3 写入文件前,将以下文本字段逐一传入 Write-Router(轻量模式):
加工范围(主要/次要角色):
| 字段 | content_type | field_name |
|---|---|---|
| 身形特点 | 大纲文本 | 身形特点 |
| 人物性格 | 大纲文本 | 人物性格 |
| 人物简介 | 大纲文本 | 人物简介 |
| 人物语气 | 大纲文本 | 人物语气 |
加工范围(龙套角色):
| 字段 | content_type | field_name |
|---|---|---|
| 简化描述 | 大纲文本 | 龙套角色描述 |
执行方式:
- 读取
写作配置.json→ 取大纲.polish_mode(或分卷覆盖项) - 逐字段组装数据包传入 Write-Router(轻量模式):
{ "mode": "creation_phase", "text": "{字段文本内容}", "context": { "source_skill": "创建人物", "content_type": "大纲文本", "field_name": "{字段名}" }, "polish_mode": "{有效润色模式}", "polish_config": { "{写作配置 JSON}" } } - Write-Router 通过轻量模式调度 Core 加工后返回
{ "processed_text": "{加工后文本}", "changes_summary": "{调整摘要}" } - 使用返回的
processed_text替代原文本,继续步骤 3 写入流程
NSFW 字段(XP/三维/性特征):如用户填写了 NSFW 字段,额外调度 NSFW 专项做词汇选择(见 NSFW 内容规则),不经过 Write-Router/Core。
硬约束:不经 Write-Router → Core 加工直接将人物描述文本写入文件 = 流程违规。
根据用户填写的信息,按人物类别将条目追加到对应类别文件。
3.1 首次创建(目标文件不存在)
- 写入文件顶部框架(书名标题 + 日期 + 卷信息如适用)
- 写入第一条人物条目
3.2 追加写入(目标文件已存在)
Read读取对应类别文件(如大纲/人物/主要角色.md)- 在文件末尾追加新人物条目
- 更新文件顶部的
> 最后更新:{日期}
3.3 追加规则:
| 人物类别 | 目标文件 | 追加方式 | 分隔规则 |
|---|---|---|---|
| 主要角色 | 主要角色.md |
完整模板(### {名称} ... ---) |
条目间以 --- 分隔 |
| 次要角色 | 次要角色.md |
完整模板(同上) | 条目间以 --- 分隔 |
| 龙套角色 | 龙套角色.md |
简化格式(**{名称}**:{描述}) |
条目间以空行分隔,不用 --- |
3.4 同名人物冲突:
同一人物名称如已存在于当前卷的对应类别文件中:
⚠️「{人物名称}」已存在于当前卷的「{人物类别}」文件中。
• 更新 — 覆盖已有条目(旧数据将丢失)
• 新建 — 换一个名称重新创建
• 跳过 — 不做修改
跨卷同名人物已在步骤 1.5 中处理(跨卷人物引用),此处的冲突检测仅限当前卷文件。
步骤 3.5:双向更新人物关系(跨文件搜索)
新人物写入后,如果填写了人物基本关系(或龙套的简化描述中隐含关系),必须对所有关联的老角色执行双向更新。
解析关系来源:
| 来源 | 解析方式 |
|---|---|
| 主要/次要角色的「人物基本关系」 | 从 {角色A}与{角色B}:{关系描述} 格式解析 |
| 龙套角色的简化描述 | 智能提取——"李四的发小"→ 关联李四;"张三的妻子"→ 关联张三;"常给主角塞菜"→ 关联主角 |
搜索范围(分卷多文件模式):
- 优先搜索当前卷的三类角色文件(
大纲/人物/卷{N}/主要角色.md、次要角色.md、龙套角色.md) - 若当前卷未找到 → 搜索旧卷的对应文件(
大纲/人物/卷1/、卷2/...) - 不分卷/单文件模式 → 仅搜索
大纲/人物/下的三个文件
更新老角色:
- 在搜索范围内找到被关联的角色条目
- 在该角色的「人物基本关系」区块追加反向关系
- 如老角色原本没有「人物基本关系」字段 → 在人物能力之后新增该字段
- 如老角色已有关系 → 将新关系追加到列表末尾(不覆盖已有关系)
- 如老角色位于旧卷文件 → 同步更新该旧卷文件中的条目
示例:
创建「张三」(新角色,卷2),关系:张三与李四:师徒关系
→ 写入张三条目后,查找李四
→ 李四在卷1的「次要角色.md」中找到
→ 在卷1「次要角色.md」李四条目的「人物基本关系」中追加:
- 李四与张三:师徒关系(卷2)
双向更新输出:
🔄 已同步更新以下角色的关系:
• 李四(次要角色,卷1)→ 新增关系:与张三:师徒关系
边界情况:
- 关联的角色不在任何存档中 → 仅在新角色中保留关系记录,不做反向写入(等该角色创建后再补)
- 关系描述中角色名包含别名 → 尝试模糊匹配,匹配不到时提示用户确认
- 旧卷角色更新时 → 更新
最后更新日期
步骤 4:输出结果并推荐下一步
隐藏设定伏笔预登记:若本次创建的角色填写了「隐藏设定」字段(非空),在写入角色文件后、输出结果前,调度「长篇专项」执行人物伏笔预登记:以当前章节(无则 第1章)为放置章,将隐藏设定摘要按 {第N章}_{≤50字摘要}_{待回收} 格式写入 项目信息.json 的 foreshadowing 数组,来源标记为人物文件。该联动由 templates/character.schema.json 的 fields[].integration 定义,调度细节见长篇专项「人物伏笔预登记」。
主要/次要角色输出模板:
✅ 人物「{人物名称}」已写入角色文件!
📄 存档文件:{项目路径}/大纲/人物/{卷子目录如适用}{主要角色/次要角色/龙套角色}.md
📂 所属类别:{人物类别} {分卷时:📚 出场:第{N}卷}
📋 角色概要:
• 类别:{人物类别} • 性别:{性别}
• 出场:{第N卷 / 全卷 / 未设定}
• 性格:{一句话概括}
• 简介:{一句话概括}
🔄 已同步更新 {M} 个关联角色的关系
👥 当前存档共 {N} 个角色
{如有隐藏设定:🔖 已登记隐藏设定为伏笔 — {第N章}_{≤50字摘要}_{待回收}}
📝 接下来你可以:
• 继续创建更多人物 — 说"创建人物"
• 查看角色文件 — 说"查看人物"
• 创建剧情大纲 — 说"创建剧情"
• 建立世界观设定 — 说"编辑设定"
龙套角色输出模板:
✅ 龙套角色「{人物名称}」已写入角色文件!
📄 存档文件:{项目路径}/大纲/人物/{卷子目录如适用}龙套角色.md
📂 所属类别:龙套角色 {分卷时:📚 出场:第{N}卷}
📋 条目:**{人物名称}**:{简化描述}
🔄 已同步更新 {M} 个关联角色的关系
👥 当前存档共 {N} 个角色
NSFW 内容规则
NSFW 字段(XP、三维、性特征、人物X能力)写入对应类别角色文件,不独立存储。
触发方式 — 作品分类决定
- NSFW 作品(
content_rating=NSFW):NSFW 字段(XP/三维/性特征/人物X能力)自动启用,纳入正常交互流程;第六轮(NSFW 身体设定)为必填轮次,人物X能力在第五轮中为可选 - 非 NSFW 作品(
content_rating≠NSFW或未设置):NSFW 字段不询问——模板中仅标记为可选项存在 - 用户在创建人物时主动提及 NSFW 内容(如"加个XP"、"补充X能力"),无论作品分类,均在对应字段写入
- 用户也可创建人物后追加 NSFW 资料——直接在该角色的类别文件中补充
NSFW 词汇选择协调
当用户填写 NSFW 字段时:
Read读取大纲/项目信息.json中的nsfw_output_level和nsfw_character_tone(限制级和解限级均有效;大众级不使用)- 若已配置 → 读取
data/nsfw-vocabulary.json(技能根目录数据目录,注册见data/data-registry.json)的词汇表权威数据源,根据nsfw_output_level+nsfw_character_tone选择对应档位和语气列的用词(限制级和解限级均为三列语气分档)
| nsfw_output_level | 用词风格 | 示例 |
|---|---|---|
限制级 |
优雅代称,三列语气分档 | 保守:酥胸/玉茎/花径 · 中性:胸部/肉棒/小穴 · 放荡:奶子/大肉棒/骚穴 |
解限级 |
刺激升级,三列语气分档,含直白词汇 | 保守:双峰/阳具/蜜穴 · 中性:奶子/肉棒/小穴 · 放荡:大奶/鸡巴/骚逼 |
| 空(未配置) | 中性/自然用词 | 胸部、阴茎、阴道 |
- 若未配置 → 以中性用词写入,同时提示:
💡 提示:项目尚未配置 NSFW 输出词偏好。配置后所有 NSFW 字段的用词风格将保持一致。
是否需要配置?(可说 /nsfw-config 随时配置)
写入位置
- NSFW 字段直接写入人物条目中,NSFW 作品标注「(必填,NSFW)」,非 NSFW 作品标注「(可选,NSFW)」
- XP、三维、性特征 → 写在身形特点之后、人物性格之前
- 人物X能力 → 写在人物能力之后
注意事项
- 已提供的信息不重复问:用户在消息中已附带部分信息(如"创建一个叫张三的主角"),直接提取使用,跳过对应询问
- 可选字段允许跳过:标记为"(可选)"的字段(人物基本关系、人物能力),用户明确说"跳过"时直接进入下一步
- Write-Router → Core 加工为写入前必经步骤:人物性格/简介/身形特点/龙套描述等供人阅读的文本,写入前必须经过 Write-Router(轻量模式)调度 Core 按大纲文本规范加工——不经此链路直接写入 = 流程违规
- NSFW 分级显示:非 NSFW 作品(
content_rating≠NSFW)不询问 NSFW 字段——避免不适。NSFW 作品(content_rating=NSFW)则 NSFW 字段自动升为必填,纳入正常流程 - 人物能力数值范围 1~10:如用户不确定可留空
- 追加写入不破坏已有内容:仅在对应分区末尾追加,不修改已有人物条目
- 写入必经成品校验:角色文件组装完成后,调度
成品输出校验(type: "structured_md",md_category: "角色",file_path)→ 由校验技能执行字段完整性/双向关系校验后统一落盘。禁止自行 Write - 同名人物更新需用户确认:同一名称已存在时,明确告知覆盖风险后等待用户选择
- 龙套角色特殊规则:
- 使用简化模板(单行格式),不询问外貌/性格/能力等详细字段
- 龙套描述按大纲档位润色后写入
- 龙套条目之间以空行分隔,不使用
---分隔线 - 龙套不询问 NSFW 字段
- 人物关系延迟同步:新角色引用了尚未创建的角色时,关系仅在新角色侧写入——待该角色创建后再补反向关系
- 分卷感知:项目启用分卷后,创建人物时自动询问出场卷;人物条目中写入
出场卷字段;润色模式按出场卷取对应配置 - 分卷多文件角色目录:分卷多文件模式下,角色按
大纲/人物/卷{N}/子目录存放三类文件,每卷角色独立管理 - 出场卷可留空:用户选择"暂不确定"时出场卷字段写入空值,后续可通过编辑人物补充
- 跨卷人物引用:分卷多文件模式下新建人物时自动搜索旧卷同名角色,支持直接引用/部分变更/重新创建
- 三类文件独立存储:
主要角色.md/次要角色.md/龙套角色.md各自独立,不混合存储 - 始终以 Markdown 格式保存:中文文件名
主要角色.md/次要角色.md/龙套角色.md;Englishmain-characters.md/supporting-characters.md/extras.md