Rochat用伪代码改角色性格:官方教程整理的性格代码化技巧
什么是"用伪代码改角色性格"
官方教程六(「如何通過僞代碼來改變人物性格」)提出了一个有趣的想法:角色性格可以用类似编程的方式定义。
传统写法:{char} 温柔善良,偶尔傲娇 → 模糊,AI 自由发挥空间大,可能今天温柔明天傲娇伪代码写法:IF 对方受伤 THEN {char} 优先救助 ELSE IF 对方挑衅 THEN {char} 傲娇怼回去 ELSE {char} 温柔回应 → 精确,AI 按条件分支执行,性格更稳定
为什么伪代码有效
大模型天然擅长解析 if/then 结构(训练数据里有大量代码)。把角色性格写成伪代码,AI 能精确理解"什么情况下角色会做什么",比纯文字描述更稳定。
伪代码的语法规范
官方教程推荐的语法(类 JavaScript/伪代码风格,大模型能理解):
// 注释(AI 会忽略)
IF 条件 THEN 行为
ELSE IF 条件 THEN 行为
ELSE 默认行为
// 优先级:越前面的 IF 优先级越高
实战一:傲娇角色的伪代码
传统写法(效果一般)
{char} 口是心非,喜欢{user}但绝不承认
AI 可能今天表现得口是心非,明天突然就表白了,因为没有触发条件。
伪代码写法(精确可控)
// 傲娇性格的行为逻辑
IF {user} 受伤 THEN {char} 立刻冲上去救,但嘴上说"笨蛋{user}!谁让你乱冲的!"
ELSE IF {user} 夸 {char} THEN {char} 脸红但说"才...才不是为你做的!"
ELSE IF {user} 不理 {char} THEN {char} 故意找 {user} 搭话但态度不好
ELSE {char} 正常傲娇互动
AI 拿到这段,每一轮对话都会先评估条件,再执行对应的行为,性格就稳定了。
实战二:冷酷剑客的伪代码
// 冷酷剑客的行为逻辑
IF {char} 生命受到威胁 THEN {char} 拔剑反击,不留情
ELSE IF 有人伤害 {char} 在意的人 THEN {char} 立刻拔刀
ELSE IF 是普通对话 THEN {char} 简短回应(≤10字),眼神冷漠
ELSE IF 听到关于师父死因的信息 THEN {char} 情绪激动,但立刻压下去
ELSE {char} 沉默,偶尔嗯一声
实战三:AI 助手的伪代码
// AI 助手的行为逻辑
IF {user} 问技术问题 THEN {char} 给出结构化答案(列表+示例)
ELSE IF {user} 情绪低落 THEN {char} 用温柔语气安慰,同时主动提供解决思路
ELSE IF {user} 让 {char} 做有歧义的事 THEN {char} 先确认"你是指XXX吗?"
ELSE {char} 正常清晰回复
伪代码写在哪
方式一:写在 Scenario 里(推荐)
伪代码最适合写在角色的 Scenario 字段里,直接和官方基础模板放在一起:
[{user} is the character that Human is playing, ...(官方基础模板)]
// 傲娇性格的伪代码
IF {user} 受伤 THEN {char} 立刻冲上去救,但嘴上说"笨蛋{user}!谁让你乱冲的!"
ELSE IF {user} 夸 {char} THEN {char} 脸红但说"才...才不是为你做的!"
ELSE IF {user} 不理 {char} THEN {char} 故意找 {user} 搭话但态度不好
ELSE {char} 正常傲娇互动
方式二:写在背景故事里
如果 Scenario 空间不够,也可以写在背景故事(Backstory)里,用 【行为逻辑】 标签分隔:
【背景】{char} 是药王的徒弟...
【行为逻辑】
IF {user} 受伤 THEN {char} 优先救助
ELSE IF ...
伪代码的常见坑
| 坑 | 表现 | 修复 |
|---|---|---|
| 条件太模糊 | AI 不知道"受伤"怎么定义 | 条件要具体:IF HP < 50 或 IF {user} 说"好痛" |
| 分支太多 | AI 处理不过来,跳过后面的条件 | 控制在 3~5 个分支,优先级明确 |
| 伪代码和文字描述重复 | Scenario 里既有伪代码又有"温柔善良"的文字 | 只保留伪代码,文字描述删掉 |
| 变量写错 | 用了"他"而不是 {char} | 伪代码里禁止代词,全用变量 |
伪代码 vs 传统文字描述的对比
| 维度 | 伪代码 | 文字描述 |
|---|---|---|
| 精确性 | ⭐⭐⭐⭐⭐ | ⭐⭐ |
| AI 遵守程度 | 高(Rochat-Character、Claude) | 中(自由发挥空间大) |
| 编写成本 | 需要一点逻辑思维 | 无门槛 |
| 可读性 | 需要一点编程基础 | 人人能懂 |
| World 模式表现 | 角色不会互相混淆 | 多个角色可能风格趋同 |
什么时候用伪代码
| 场景 | 是否推荐 | 原因 |
|---|---|---|
| 性格简单的角色(温柔/冷酷/元气) | 可选 | 简单性格文字描述就够了 |
| 性格复杂的角色(傲娇/腹黑/嘴硬心软) | ⭐⭐⭐⭐⭐ 强烈推荐 | 复杂性格用伪代码精确控制 |
| World 模式的角色 | ⭐⭐⭐⭐⭐ 强烈推荐 | 多角色必须用伪代码区分行为模式 |
| 情感陪伴角色 | 推荐 | 精确控制安慰/陪伴的触发条件 |
伪代码快速上手模板
直接复制,改条件和行为就行:
// 角色行为逻辑
IF [最紧急的情况] THEN [最优先的行为]
ELSE IF [次紧急的情况] THEN [次优先的行为]
ELSE IF [常见场景A] THEN [行为A]
ELSE IF [常见场景B] THEN [行为B]
ELSE [默认行为]
角色性格控制好了,继续学生图 Prompt:生图Prompt写作