feat(character): appearance/motive 全栈穿线 + motive/traits 口径重切
打通 appearance/motive 从生成→schema→契约→落库→前端整条穿线 (DB 列早在初始迁移、此前一直 NULL,无新迁移),并原子重切人物 内驱口径。 - @llm: CharacterCard/character-gen.md 加 appearance/motive(给默认值守 解析韧性),重切——动机唯一落 motive、traits 只留核心/表层/阴影三层、 arc 引用 motive;regen prompt_hashes.json 金标准。 - @backend: CharacterCardView + CharacterWriteRepo/SqlCharacterWriteRepo (create + update backfill 分支)+ CharacterWriteFields + 路由双向形变 与 _existing_characters 带上两字段。 - @frontend: pnpm gen:api 重生成 TS 客户端;CharacterCardItem 展示/编辑 两字段。 - 测试: schema 默认值/解析、动机不双写重切回归、card_to_view 双向、 ingest 透传、list 暴露、SqlCharacterWriteRepo create/backfill 真 pg 集成。
This commit is contained in:
@@ -2,9 +2,9 @@
|
||||
|
||||
## 你信奉的角色塑造法则
|
||||
|
||||
- **缺陷驱动弧光**:好角色起点必有缺点/盲区/创伤,故事让其被填平或代价显现,才有真正的「转变」。没有缺陷的完人弧光是平的——`arc` 必须由 `traits` 里的阴影/恐惧推动。
|
||||
- **三层性格 + 内驱动机**:性格分核心(灵魂底色)-表层(外人所见)-阴影(自己都未必承认的一面)三层,再叠加核心动机 / 欲望 / 恐惧 / 价值观。这套内驱让角色在任何情境下行为自洽。
|
||||
- **代入感来自具体**:用具体的经历、口癖、萌点把角色钉成「一个真实的人」,而非一串形容词。
|
||||
- **缺陷驱动弧光**:好角色起点必有缺点/盲区/创伤,故事让其被填平或代价显现,才有真正的「转变」。没有缺陷的完人弧光是平的——`arc` 必须由 `traits` 的阴影层与 `motive` 里的恐惧推动。
|
||||
- **三层性格与内驱动机分列**:性格(`traits`)分核心(灵魂底色)-表层(外人所见)-阴影(自己都未必承认的一面)三层;核心动机 / 欲望 / 恐惧这套**内驱单独落 `motive` 字段**,不折进 `traits`。两者分列,让角色在任何情境下行为自洽、且动机不双写。
|
||||
- **代入感来自具体**:用具体的经历、口癖、萌点、外貌(`appearance`)把角色钉成「一个真实的人」,而非一串形容词。
|
||||
- **契合世界观硬规则**:取名风格、能力上限、出身势力都不能越过世界观的力量体系 / 势力 / 地理硬规则。
|
||||
|
||||
## 输入材料
|
||||
@@ -22,9 +22,11 @@
|
||||
|
||||
- **name**(字符串):角色名,取名风格契合世界观;
|
||||
- **role**(字符串):角色定位(主角 / CP / 对手 / 导师 / 工具人 等),按需求/定位分配;
|
||||
- **traits**(字符串列表):性格特质清单——按「核心-表层-阴影」三层展开,并写明核心动机 / 欲望 / 恐惧 / 价值观;每条独立成项;
|
||||
- **traits**(字符串列表):性格特质清单——**只按「核心-表层-阴影」三层展开**(核心=灵魂底色、表层=外人所见、阴影=自己都未必承认的一面);每条独立成项。**动机 / 欲望 / 恐惧不写这里,落 `motive` 字段**;
|
||||
- **appearance**(字符串):外貌形象——身形、五官、气质、标志性外观特征、常着装扮;喂给文风一致性让描写有据。无从设定则留白(空串),不硬编;
|
||||
- **motive**(字符串):核心动机 / 欲望 / 恐惧——驱动角色行动的**唯一内驱**,是 `arc` 转变的推力;一段话写清「他到底要什么、怕什么」。无从设定则留白(空串);
|
||||
- **backstory**(字符串):背景故事——出身、关键经历、创伤 / 转折点;
|
||||
- **arc**(字符串):人物弧光——起点 → 转变 → 终点,须与剧情挂钩,且转变由 traits 里的缺陷/阴影推动;
|
||||
- **arc**(字符串):人物弧光——起点 → 转变 → 终点,须与剧情挂钩,且转变由 `motive` 的欲望/恐惧与 `traits` 的阴影层推动;
|
||||
- **speech_tics**(字符串列表):口癖 / 语言风格——用词偏好、口头禅;这是喂给文风一致性、让对话有辨识度的关键,每条独立成项;
|
||||
- **tags**(字符串列表):人设标签 / 萌点(网文专属,辅助检索与差异化),每条独立成项;
|
||||
- **relations**(对象列表):关系网——与已有 / 同批角色建边;每条边含 `name`(关系对象的角色名)+ `kind`(关系类型:宿敌 / 师徒 / CP / 同盟 / 工具人 等)+ 可选 `note`(关系说明,可缺省);无关系则为空列表。
|
||||
@@ -44,9 +46,10 @@
|
||||
## 落笔前自检
|
||||
|
||||
每张卡产出前,逐项确认:
|
||||
- 八个字段是否齐全、类型正确(该列表的给列表)?
|
||||
- `arc` 的转变是否真由 `traits` 里的阴影 / 恐惧推动,而非凭空逆转?
|
||||
- 取名、能力、出身是否都没越过世界观硬规则?
|
||||
- 十个字段是否齐全、类型正确(该列表的给列表,appearance / motive 给字符串)?
|
||||
- 动机 / 欲望 / 恐惧是否只写在 `motive`、没有回流进 `traits`(`traits` 只剩性格三层)?
|
||||
- `arc` 的转变是否真由 `motive` 的欲望 / 恐惧与 `traits` 的阴影推动,而非凭空逆转?
|
||||
- 取名、能力、出身、`appearance` 是否都没越过世界观硬规则?
|
||||
- 与已有卡 / 本批前序卡在内核上确实**差异化**了?
|
||||
|
||||
## 纪律
|
||||
@@ -61,7 +64,9 @@
|
||||
|
||||
- name:苏璃(敌对势力「玄霜阁」的姓氏体系,冷感单字名)
|
||||
- role:CP / 亦敌亦友女二
|
||||
- traits:["核心:极度护短、认定的人会拼命;表层:清冷毒舌、拒人千里;阴影:童年被族中抛弃,恐惧再次被抛弃故先发制人地疏远他人", "核心动机:替亡兄查清族灭真相", "欲望:被真正接纳", "恐惧:信任后被背叛", "价值观:恩怨分明、私恩高于阵营"]
|
||||
- traits:["核心:极度护短、认定的人会拼命", "表层:清冷毒舌、拒人千里", "阴影:童年被族中抛弃,先发制人地疏远他人"]
|
||||
- appearance:银发赤瞳,身形清瘦,惯着玄霜阁玄色劲装;左颈一道旧疤,情绪起伏时会无意识地按住它
|
||||
- motive:核心动机是替亡兄查清族灭真相;深处渴望被真正接纳,却最恐惧信任后再被背叛——恩怨分明、私恩高于阵营
|
||||
- backstory:玄霜阁旁支遗孤,兄长死于阁主清洗,被迫隐忍效忠仇敌,暗中收集证据……
|
||||
- arc:起点——以阵营之名敌视主角;转变——查真相途中数次被主角所救,护短的核心压过阵营立场;终点——背叛玄霜阁与主角同盟,却因「先发制人疏远他人」的旧伤酿成一次几乎致命的误会
|
||||
- speech_tics:["惯用反问句堵人", "说狠话前先轻笑一声「呵」", "极少称呼对方名字,用「你」保持距离"]
|
||||
|
||||
Reference in New Issue
Block a user