1
This commit is contained in:
@@ -74,7 +74,7 @@
|
||||
新系统必须满足:
|
||||
|
||||
1. 可解释:玩家能理解“为什么这个角色擅长这个”“为什么这个 NPC 会喜欢这种行为”“为什么这个怪物在这个世界里是这种威胁”。
|
||||
2. 可生成:自定义世界可以稳定生成新属性名称与定义。
|
||||
2. 可生成:自定义世界可以稳定生成新属性名称。
|
||||
3. 可校验:AI 输出不能直接裸写进运行时,必须经过本地验证。
|
||||
4. 可复用:同一套属性 schema 能进入角色、怪物、技能、Build、物品、对话 prompt。
|
||||
5. 可迁移:能从当前四维属性 / 标签 / 怪物 preset 平滑过渡。
|
||||
@@ -165,12 +165,6 @@ type WorldAttributeSchema = {
|
||||
slots: Array<{
|
||||
slotId: string;
|
||||
name: string;
|
||||
definition: string;
|
||||
positiveSignals: string[];
|
||||
negativeSignals: string[];
|
||||
combatUseText: string;
|
||||
socialUseText: string;
|
||||
explorationUseText: string;
|
||||
}>;
|
||||
};
|
||||
```
|
||||
@@ -178,12 +172,9 @@ type WorldAttributeSchema = {
|
||||
### 关键原则
|
||||
|
||||
1. `slotId` 是稳定技术标识,例如 `axis_a` ~ `axis_f`。
|
||||
2. `name` 是世界内真实显示名称,例如武侠里可能不是“力量”,而是“骨势”“身法”。
|
||||
3. `definition` 必须描述角色本质倾向,而不是派生战斗数值。
|
||||
4. 每个属性都必须能解释:
|
||||
- 战斗中的体现
|
||||
- 对话中的体现
|
||||
- 探索中的体现
|
||||
2. 本世界六维名称在创作、提示词输出、解析后保存的数据中只保留 `name`;其他定义、信号和用途说明字段不再进入 schema。
|
||||
3. `name` 是世界内真实显示名称,例如武侠里可能不是“力量”,而是“骨势”“身法”。
|
||||
4. 六个名称需要能支撑战斗、对话、探索的叙事理解,但这些说明由下游运行时按场景生成,不写入 schema。
|
||||
|
||||
### 禁止项
|
||||
|
||||
@@ -247,16 +238,9 @@ type AttributeSchemaGenerationInput = {
|
||||
|
||||
```ts
|
||||
type AttributeSchemaGenerationOutput = {
|
||||
schemaName: string;
|
||||
slots: Array<{
|
||||
slotId: string;
|
||||
name: string;
|
||||
definition: string;
|
||||
positiveSignals: string[];
|
||||
negativeSignals: string[];
|
||||
combatUseText: string;
|
||||
socialUseText: string;
|
||||
explorationUseText: string;
|
||||
}>;
|
||||
};
|
||||
```
|
||||
@@ -267,13 +251,9 @@ AI 输出后必须通过本地校验:
|
||||
|
||||
1. 属性数量必须等于 6。
|
||||
2. `name` 需唯一,长度建议 `2~4` 个中文字符。
|
||||
3. `definition` 不得出现“提升攻击力 / 提升防御力 / 提升生命值”这类派生描述。
|
||||
4. 每个属性都必须同时具备:
|
||||
- 一个战斗说明
|
||||
- 一个社交说明
|
||||
- 一个探索说明
|
||||
5. 任意两条属性定义关键词重叠度不能过高。
|
||||
6. 若校验失败:
|
||||
3. `name` 不得出现“生命 / 法力 / 护甲 / 攻击 / 防御 / 力量 / 敏捷 / 智力 / 精神”这类旧四维或派生资源词。
|
||||
4. 任意两个属性名称不能重复,也不能只做同义换皮。
|
||||
5. 若校验失败:
|
||||
- 预设世界回退到固化 schema
|
||||
- 自定义世界回退到模板世界 schema,并记录失败日志
|
||||
|
||||
@@ -283,25 +263,25 @@ AI 输出后必须通过本地校验:
|
||||
|
||||
### 武侠世界示例
|
||||
|
||||
| 属性名 | 定义 |
|
||||
| 槽位 | 属性名 |
|
||||
| --- | --- |
|
||||
| 骨势 | 扛压、顶冲、硬吃风险也不退的势头 |
|
||||
| 身法 | 腾挪、抢位、换线、把握出手节奏的能力 |
|
||||
| 眼脉 | 看破破绽、拆招、识局、看穿人心的能力 |
|
||||
| 心焰 | 决断、压迫、胆气、在局面中立住自身意志的能力 |
|
||||
| 尘缘 | 与人事、情面、承诺、牵引关系打交道的能力 |
|
||||
| 玄息 | 调息、稳态、久战、把自身维持在可用状态的能力 |
|
||||
| axis_a | 骨势 |
|
||||
| axis_b | 身法 |
|
||||
| axis_c | 眼脉 |
|
||||
| axis_d | 心焰 |
|
||||
| axis_e | 尘缘 |
|
||||
| axis_f | 玄息 |
|
||||
|
||||
### 仙侠世界示例
|
||||
|
||||
| 属性名 | 定义 |
|
||||
| 槽位 | 属性名 |
|
||||
| --- | --- |
|
||||
| 道骨 | 承载道压与高强度冲击的底子 |
|
||||
| 灵行 | 位移、御空、转场、抢占天时地利的能力 |
|
||||
| 识海 | 解析禁制、洞察因果、识破虚实的能力 |
|
||||
| 心契 | 与他者、器物、灵兽、誓约建立共鸣的能力 |
|
||||
| 劫纹 | 在高危变化中强行推进、改写局势的能力 |
|
||||
| 玄息 | 循环灵息、稳住心神、让自身持续在线的能力 |
|
||||
| axis_a | 道骨 |
|
||||
| axis_b | 灵行 |
|
||||
| axis_c | 识海 |
|
||||
| axis_d | 心契 |
|
||||
| axis_e | 劫纹 |
|
||||
| axis_f | 玄息 |
|
||||
|
||||
关键点:
|
||||
|
||||
@@ -692,10 +672,8 @@ AI 不可以直接生成:
|
||||
|
||||
```ts
|
||||
type PromptAttributeSummary = {
|
||||
schemaName: string;
|
||||
slots: Array<{
|
||||
name: string;
|
||||
definition: string;
|
||||
}>;
|
||||
actorTopAttributes: string[];
|
||||
targetTopAttributes?: string[];
|
||||
@@ -726,12 +704,6 @@ export type AttributeVector = Record<string, number>;
|
||||
export interface WorldAttributeSlot {
|
||||
slotId: string;
|
||||
name: string;
|
||||
definition: string;
|
||||
positiveSignals: string[];
|
||||
negativeSignals: string[];
|
||||
combatUseText: string;
|
||||
socialUseText: string;
|
||||
explorationUseText: string;
|
||||
}
|
||||
|
||||
export interface WorldAttributeSchema {
|
||||
@@ -1017,8 +989,8 @@ behaviorVectors: Array<{
|
||||
|
||||
对策:
|
||||
|
||||
1. 增加本地定义重叠校验
|
||||
2. 强制每个属性都写战斗 / 社交 / 探索三种说明
|
||||
1. 增加本地名称重复、旧词和同义换皮校验
|
||||
2. 提示词要求六个名称覆盖不同叙事气质,避免全部落在同一种行动倾向上
|
||||
3. 首版预设世界采用固化 schema,不在运行时漂移
|
||||
|
||||
### 风险 2:过度抽象,策划难以配置
|
||||
@@ -1029,8 +1001,8 @@ behaviorVectors: Array<{
|
||||
|
||||
对策:
|
||||
|
||||
1. 每个属性附带定义、正反信号、示例行为
|
||||
2. 编辑器永远显示 `name + definition`
|
||||
1. 编辑器只显示并编辑六个属性名称
|
||||
2. 解释文本由技能 / 标签 / 物品等下游按具体场景生成
|
||||
3. 所有技能 / 标签 / 物品的属性向量都显示人类可读解释
|
||||
|
||||
### 风险 3:旧系统迁移期间双轨并存混乱
|
||||
|
||||
Reference in New Issue
Block a user