SillyTavern 角色卡创作指南:从零开始用 JSON 与 W++ 构建专属角色
你是否曾幻想过与一位完全由你设计的角色进行深度对话?在 SillyTavern 生态中,角色卡(Character Card)正是实现这一梦想的钥匙。无论你是希望复刻小说中的经典人物,还是创造全新的星灵、巫师或赛博朋克黑客,掌握 JSON 与 W++ 格式的构建技巧都能让你的角色活起来。今天,我们将以 Lun…
- sillytavern
- character-card
- creator
- json
- w++
- tutorial
为什么选择 JSON 与 W++ 构建角色卡?
在 SillyTavern 的世界里,角色卡本质上是结构化数据文件。JSON(JavaScript Object Notation)提供了清晰的层级结构,而 W++(一种轻量级标记语言)则擅长描述角色的性格、背景与行为模式。两者结合,能让 AI 精准理解角色的核心设定,避免对话中出现“人设崩塌”的尴尬。
相比图形化编辑器,手动编写 JSON 与 W++ 赋予你完全的控制权——你可以精确调整每个参数,甚至嵌入复杂的触发词与对话风格。对于追求极致角色扮演体验的玩家来说,这是不可替代的技能。
准备工作:角色卡的核心要素
在动笔之前,先明确你的角色需要哪些信息。一个完整的 SillyTavern 角色卡通常包含:
- 角色名称与描述:简短但富有感染力的一句话介绍。
- 个性与背景:用 W++ 格式书写的详细设定。
- 对话风格:语气、用词习惯、常用口头禅。
- 触发词与示例对话:帮助 AI 理解角色在特定情境下的反应。
- 元数据:版本号、作者信息、角色标签等。
以 Luna the Starweaver 为例,她是一位在星界编织命运的年轻织星者,性格温柔但带着一丝忧郁,喜欢用星辰比喻日常事物。她的对话中常出现“星尘”“光痕”等诗意词汇。
第一步:构建 JSON 骨架
打开你喜欢的文本编辑器(VSCode、Notepad++ 甚至手机备忘录都可以),创建一个新文件并命名为 Luna_the_Starweaver.json。JSON 文件以花括号 {} 包裹,内部包含多个键值对。以下是基础结构:
{
"name": "Luna the Starweaver",
"description": "一位在星界中编织命运的年轻织星者,眼中映着银河的光辉。",
"personality": "",
"scenario": "你在星界边缘的浮岛上遇到了正在修补星网的Luna。",
"first_mes": "(指尖缠绕着银色的星丝,抬头看向你)啊,你看到了我织的网?抱歉,它最近总被虚空风暴撕开……你是来帮忙的吗?",
"mes_example": "",
"metadata": {
"version": 1,
"author": "MiniTavern Community",
"tags": ["星际", "奇幻", "织星者", "温柔"]
}
}
name和description是角色的“身份证”,AI 会据此生成初始印象。scenario定义了初次见面的情境,让对话快速进入状态。first_mes是角色对玩家的第一句话,直接体现语气与性格。metadata方便你日后在角色卡市场中检索与管理。
第二步:用 W++ 填充 personality 字段
W++ 的语法非常直观:用 [属性: 值] 的格式描述角色特征。对于 Luna,我们可以这样写:
[性格: 温柔, 忧郁, 富有诗意]
[爱好: 编织星网, 观察星座, 收集陨石碎片]
[说话风格: 轻柔, 善用比喻, 偶尔陷入沉思]
[背景: 出生在星界边缘的织星者家族, 从小与星辰共鸣]
[能力: 操控星丝, 修复空间裂缝, 预知微弱的天象]
[弱点: 对虚空能量过敏, 容易因星网破损而自责]
[习惯: 编织时哼唱古老的星谣, 紧张时会捻动发梢]
将这段文字直接粘贴到 personality 字段中。W++ 的妙处在于,AI 会将每个方括号视为一个独立维度,从而更立体地理解角色。你可以根据需要扩展或精简属性——比如为 Luna 添加“禁忌话题:虚空生物”来避免对话跑偏。
第三步:编写示例对话(mes_example)
mes_example 是角色卡的“演技指南”。通过提供 3-5 组对话范例,你能教会 AI 在特定情境下如何回应。格式为 <START> 分隔的多轮对话:
<START>
{{user}}: 这片星网真美,你花了多久编织它?
Luna: (指尖轻抚过闪烁的节点)大约……三百年?在星界,时间像尘埃一样飘忽不定。不过你看这边——(指向一处暗淡的网格)昨晚被陨石撞破了,我又得重新修补。
<START>
{{user}}: 你看起来有些疲惫。
Luna: (苦笑)星网是世界的脉络,每破一处,就有无数梦境流失到虚空中。我怎能不忧心?但谢谢你的关心……这让我想起故乡的暖风。
<START>
{{user}}: 教我织星吧!
Luna: (惊讶地睁大眼睛)凡人触碰星丝会灼伤灵魂的!不过……(展开手掌,凝出一团微光)你可以先感受它的温度,就像触摸月光一样。
注意:{{user}} 是 SillyTavern 中代表玩家的占位符。示例对话越丰富,AI 的即兴发挥就越稳定。建议覆盖“闲聊”“求助”“冲突”等不同场景。
第四步:整合与测试
将以上内容合并到 JSON 文件中,保存后导入 SillyTavern 或兼容平台(如 MiniTavern 的 Web Tavern)。首次对话时,观察 AI 是否准确捕捉了 Luna 的性格——如果她突然变得暴躁或机械,请检查 W++ 属性是否矛盾,或示例对话是否足够清晰。
进阶技巧:让角色卡更“鲜活”
- 动态触发词:在
personality中加入[触发词: 虚空: Luna会立即警惕, 眼神变得锐利],当玩家提到敏感词时,AI 自动切换回应模式。 - 情感状态机:用 W++ 定义
[情绪: 平静],并在对话中根据上下文更新。例如,Luna 在星网受损时自动切换为[情绪: 焦虑]。 - 跨平台兼容:如果你在 MiniTavern 的 iOS/Android 应用或 Chrome 扩展中使用角色卡,确保 JSON 格式符合通用标准。MiniTavern 的 Character Card Market 支持一键导入 PNG 格式的卡片,但 JSON 文件同样被完美支持。
发布与分享你的角色卡
完成创作后,别让 Luna 孤独地留在你的硬盘里。将角色卡上传到 MiniTavern 的 Character Card Market,为它添加标签(如“奇幻”“星灵”“教程示例”),并附上一段吸引人的简介。其他玩家可以通过 Web Tavern 或移动端直接体验你的作品——你甚至能收到他们的反馈,进一步优化角色设定。
如果你更喜欢在浏览器中快速测试,MiniTavern 的 Web Tavern 支持直接加载 JSON 文件,无需安装任何软件。而 Chrome 扩展则让你在浏览任意网页时,都能一键唤起角色对话。
结语
从 JSON 骨架到 W++ 血肉,再到示例对话的灵魂注入,你已经掌握了构建 SillyTavern 角色卡的核心方法。Luna the Starweaver 只是起点——你可以用同样的流程创造魔法学院的叛逆学徒、星际走私船的机械师,或是任何你想象得到的角色。
记住,优秀的角色卡是 AI 与人类共创的桥梁。现在,打开编辑器,让下一个角色在你的指尖诞生吧。如果你需要灵感或工具,随时探索 MiniTavern 的移动应用、Web 端或浏览器扩展——那里有整个社区在等你。
继续阅读
你可能还会喜欢这些文章
市场现状:从免费分享到付费流通
2026 年,角色卡交易已从零散的 Discord 私下交换,演变为半公开的市场行为。围绕 SillyTavern 的角色卡生态中,既有免费分享,也有付费出售、订阅制与委托创作。本文聚焦一个核心问题:如何在不踩坑的前提下完成购买、出售与定价。 角色卡本质上是一个 PNG 或 JSON 文件,内嵌角色设定…
- character-card-market
- sillytavern
- ai-roleplay
- monetization
为什么你需要一个角色卡生成器
SillyTavern 用户的核心工作流,往往卡在角色卡制作这一步:写人设、调参数、配图、打包 JSON。2026 年,AI 工具已经能把这一流程压缩到分钟级。本文直接盘点当前值得用的角色卡生成器,重点拆解 QuickCard AI 的实际表现,并给出可落地的选型建议。 手动创建 Character C…
- character-card-generator
- ai-tools
- sillytavern
SillyTavern 角色卡故障排除:修复常见错误并优化 AI 回复
在 AI 角色扮演的世界里,一张精心设计的角色卡是沉浸式体验的基石。然而,即使是最有经验的用户,也难免遇到角色卡加载失败、AI 回复偏离设定、甚至对话完全崩坏的状况。如果你正在 SillyTavern 中使用角色卡,却遭遇了“角色突然失忆”、“回复过于机械”或“卡片无法识别”等问题,别担心——这篇文章将为你系…
- sillytavern
- character-cards
- troubleshooting
- ai-roleplay