我最初用 AI Coding 工具写奇幻世界设定,其实是个歪打正着的尝试。当时手头有个中长篇奇幻故事卡在了世界观搭建上,同一个版本翻来覆去改到第四遍,总觉得种族、历史、魔法规则之间互相“打架”。那天正好开着工具写代码,顺手在项目里丢了个“世界观设计”的文件夹让它帮忙理思路,结果这一试就收不住了。最后我用这套流程完整产出了一份超过一万五千字的设定文档,后面又改了半个月,所有迭代都在同一个项目里完成,整体一致性和复用性比我以前用普通对话式 AI 零散生成的内容强了不止一个档次。
这份文档不是简单堆出来的“名词解释合集”,而是按工程化方式拆成了一套体系:地理、种族、魔法、历史、政治,五个大模块互相咬合,每一条设定都可以索引到另一条。如果你也是写小说的、做游戏策划的、带跑团的主持人,或者单纯喜欢做设定集的考据党,这篇实践记录应该对你有用。我会从“为什么用 AI Coding 工具做这件事”讲起,把目录规划、模板设计、分模块产出、一致性控制、坑点排查这五段完整拆开。每个环节都会给你能直接照抄的操作细节和思考逻辑,不讲虚的。
1. 为什么偏偏用 AI Coding 工具来写设定
1.1 普通 AI 对话和工程化生成的本质区别
先说一个很多人没意识到的点。大部分人用 AI 写设定,是在聊天窗口里丢一句“帮我设计一个奇幻世界的种族”,然后得到一大段漂亮文本,复制粘贴,完事。我的经验是:这条路子短期看着爽,长期很难维护。因为世界观设定这种东西,本质上不是“一段文笔好坏的文本”,而是一个强一致性的结构体。你设定“精灵寿命五百年”,后面写到“这个精灵目睹了三百年前的圣战”——读者不会逐字核对,但你自己心里会打鼓:三百年前这个精灵多大了?圣战发生时它在哪?它怎么活下来的?普通聊天窗口生成的文本是“一次性产物”,没有上下文索引,没有版本管理,你很难回去验证一条设定到底被多少处后续内容引用过。
而 AI Coding 工具的工作逻辑完全不同。它本身的定位是写代码,代码世界最强调东西就是:模块化、可索引、可测试、可版本回滚。把写作任务塞进这个壳子里,等于被迫把“生成文本”这件事改造成了“工程化生产文本”。我用得多以后发现,同样的模型,在 Coding 工具的界面里组织出来的设定,比在聊天窗口里问出来的设定更稳。原因很简单:工具链逼着你把内容拆成文件、写清依赖、反复查阅,这些动作本身就是质量保障。
1.2 为什么是“万字”这样一个体量
可能有人会问,一个世界观设定有必要写一万字吗?用一句话概括不行吗?说实话,如果你的目标只是“写个故事自己看”,确实用不着。但到了中长篇小说的开发阶段,一万字的设定是一个“够用的下限”。
我举个实际例子。一个种族的档案,如果写完整,大概需要覆盖:外貌、生理特质、精神倾向、社会结构、寿命、信仰、历史大事件、与周边势力的关系、内部矛盾、典型生活方式,这已经是一千字打底的内容。像地理模块,一张大陆版图拆成四个区域,每个区域的风土、政权、资源、冲突源,又是一千到两千字。再加上魔法体系、编年史、各大势力,一万字其实很快就填满了。
我自己的体会是:设定写到一万字左右,世界才开始有“自己长出来”的感觉。前面的模糊设定像毛坯房,只有把细节填充到一个密度之后,各模块之间的缝隙才会自然出现故事灵感。比如你写某个沙漠种族缺水,再写相邻的河谷政权控制水源,这两个原本平平无奇的设定一旦放在一万字的体系里互相参照,马上有了冲突张力,故事主线都能从这条缝里长出来。
1.3 适合谁来参考这套流程
我把这套流程跑通以后,觉得有三类人最值得参考。
第一类是小说作者,尤其是奇幻科幻类型。他们需要“设定库”而不是“一段设定”。第二类是游戏策划和跑团主持人。游戏世界比小说世界更依赖规则的确定性,玩家会问“这个法术为什么在这里不能生效”“这个国家为什么和那个国家敌对”,你必须有一套能让所有人查证的资料库。第三类是纯粹喜欢做设定的人,他们享受构建世界的乐趣,但对项目管理没有概念,看完这套流程可以少走很多弯路。
如果你的需求只是“写一段五百字的种族描述放进文章里”,那别用这套流程,太重了。但如果你想构建一个持续生长、能支撑长篇连载的体系,这套工程化方法值得认真看。
2. 准备阶段:把世界观当成代码工程来规划
2.1 目录结构:先给世界观建一座档案楼
我在正式动手前做的第一件事,不是让 AI 写内容,而是让它帮我设计文件夹结构。没错,就是文件夹结构。代码工程讲究代码仓库怎么组织,设定集也一样。
我让 AI 设计了一套这样的目录,后来用的很顺手:
project/ ├── 00_总纲/ │ ├── 世界观概述.md │ ├── 核心主题.md │ └── 风格锚点.md ├── 01_地理/ │ ├── 大陆总览.md │ ├── 区域详情.md │ └── 气候与生态.md ├── 02_种族/ │ ├── 种族总表.md │ ├── 种族详细档案.md │ └── 种族关系图谱.md ├── 03_超自然/ │ ├── 能量源流.md │ ├── 施法规则.md │ ├── 禁忌与代价.md │ └── 神祇与信仰.md ├── 04_历史/ │ ├── 年代纪表.md │ ├── 大事件详述.md │ └── 文明的兴衰.md ├── 05_势力/ │ ├── 国家与城邦.md │ ├── 组织与教团.md │ └── 关键人物.md └── 99_索引/ ├── 设定速查表.md ├── 地名对照表.md └── 术语词根表.md这套结构的好处是,每个文件都是一个独立的“单元”,我可以随意让 AI 去刷新其中一个文件,而不用把整个世界观都塞进上下文。用代码的思维解释,就是每个文件相当于一个函数模块,函数之间互相调用但实现分离。比如我后来要修改“精灵寿命”这条设定,只需要打开种族详细档案,确定它引用了哪个历史事件,再去历史文件里做一致性修正,而不是重新生成全部世界。
这里补充一个很实用的心得:文件名前面加数字序号,可以让 AI Coding 工具在检索时更容易保持顺序感。它的上下文处理会按文件名排序来组织信息,比你丢一个“新建文档”要稳得多。
2.2 给每个模块写一份生成模板
目录只是骨架,模板才是肌肉。
我把代码工程里的“接口定义”概念搬过来用。在写每一个模块前,先让 AI 定义好这个模块的输出格式,然后要求所有内容都严格按格式填充。这个动作花不了五分钟,但效果立竿见影。
举个种族卡的例子,我实际用过的模板长这样:
【种族名称】 【别称与古称】 【外貌特征素描】 【寿命与生理特质】 【精神力特质】 【主要聚居地】 【社会结构】 【与外界的关系(敌/友/中立)】 【典型内部矛盾】 【代表性历史事件】 【未解决的伏笔】你看到这个模板里有两个我在别处很少见到别人用的字段:一个是“与外界的关系(敌/友/中立)”,一个是“未解决的伏笔”。前一个是为了让种族之间有天然的动态关系网,后一个是为了给小说留故事钩子。我让 AI 每个种族都填至少一条未解决伏笔,后面写主线的时候素材库直接就是满的。
模板还有一个隐藏优势:它能有效抑制 AI 的“自由发挥”。没有模板的时候,AI 容易把一段种族设定写出激昂的宣传稿风格;有了模板以后,它只能往框子里填信息,结果就是内容极其实用,几乎没有空话。
2.3 架构文档:和工具建立共同语言
第三步,是让 AI 理解“这个项目到底是什么”。相当于代码工程里的 readme。
我在 00_总纲 里写了一份“世界观概述”,内容包括:这个世界的核心想象(一句话)、地理尺度(星球还是大陆)、文明阶段(中世纪欧洲类比还是别的)、超自然力量是否存在以及公开程度、叙事基调(黑暗还是浪漫还是冒险)。
然后我让 AI 通读这份文件名,并把“风格锚点”单独提出一份文件。其实这一步本质是传达“它是什么、它不是什么”。比如我写的是“星烬大陆”,一个魔法能量来自星空的崩碎碎片、施法需要支付记忆作为代价的世界。基调偏向冷峻加一点浪漫。我在描述里明确写了“禁止出现科技感很强的机械造物”“魔法不是万能许愿机,而是有严苛代价的技术”。
为什么要专门做这一步?因为如果你的世界设定可以在 AI 生成的第一条内容里就偏离方向,后面每一条都会顺着错误方向滚雪球。先把地基打准,生成的内容才有共同的“语言基础”。这一份架构文档我建议写长一点,至少五百到一千字。它就像是给 AI 装了一副滤镜,之后所有的生成都会自动穿过这副滤镜。
3. 分模块产出的实操记录
3.1 先搭地理骨架:版图决定冲突
地理永远是奇幻世界的第一层地基。河流、山脉、海洋、沙漠——每一样都直接影响种族分布和政权形态。这个模块我的操作思路是“先画一张文字地图,再派生成块”。
我让 AI 把星烬大陆拆成五个区域:北方的凛冬群岛、中部的烬城平原、西边的暮光沼泽、南方的灰烬荒漠,以及大陆东部碎片化的千屿海。每个区域都要回答六个问题:地形类型、主要聚落、资源禀赋、气候特征、原住民、外来势力兴趣点。
地理模块是后续所有内容的“硬约束”。灰烬荒漠资源匮乏,那南方的势力就会对北方的矿产资源有野心;暮光沼泽易守难攻,自然可以藏着古老种族和未被尘世发现的力量。所以地理模块我写得很细,几乎达到了“读完一个区域就能脑内建模”的程度。
一个特别值得安利给所有创作者的操作:让 AI 为每个区域生成一句“谋略价值”总结。例如:
凛冬群岛:即便贫穷荒凉,所有北方航海者依然向往这里,因为群岛周围的水域蕴藏着锻造顶级武器的矿石。
这句话并不是设定里多余的修饰,它直接决定了整个北境势力做决策的逻辑指针。
3.2 批量产出种族设定:模板化不是流水账
进入种族模块以后,我实际感受最深的是:人多的优势是人少的时候完全无法想象的。
我用模板一次生成了七个可玩种族的档案,从常见的精灵、矮人,到少见的翼人、影族。这里有一个容易出现的误解:模板化生成不等于流水账。你要给 AI 足够的差异化指令,而不是让它七个种族填同一个填空题。
我的做法是,每个种族的大类相同,但在“精神力特质”和“典型内部矛盾”这两个字段里设置个性化倾向。例如精灵的精神力特质是“与星烬共鸣度极高,但记忆力伴随施法而剥离”,矮人的特质是“对大地感知力强,但对星烬几乎免疫”,影族的特质是“能同化他人的概念为自己所用,代价是自我边界逐渐模糊”。
每个种族之间再互相埋雷。精灵崇敬自然,它和矮人的矛盾来自矮人采矿破坏遗迹;翼人信奉天空的自由,它和王国势力的冲突来自王国想征收领空通行税;影族与任何人都保持着不舒服的暧昧,因为它总能看穿别人的想法。
这一阶段生成的单个种族档案在八百到一千二百字之间,全部填完大概七千字。这个字数下,种族的“人性感”出来了,可以被用于故事了。
3.3 魔法体系:最考验“规则感”的部分
奇幻世界观里最容易失控的就是魔法体系。很多人写魔法喜欢写得宏大而含糊,结果是齐默尔曼式的“只要够酷就可以”。但我用 AI 写设定时反而特别注重规则感,因为工具天然适合梳理规则。
我的星烬魔法体系,核心设定是这样建立的:
- 源质:星烬,是星辰崩碎后坠入大地的尘埃,分布在特定矿脉和深海。
- 施法方式:编织,施法者用精神力把星烬编织成特定结构,结构越复杂,法术越强。
- 代价:记忆碎片,每次编织都会消耗一段个人记忆,代价越大的法术消耗的越是“重要记忆”。
- 等级:学徒(能编织单一线束)、织者(可以编织复合结构)、执炬者(能借用外部星烬短暂增幅)、炬尽者(已经献祭了太多记忆,濒临失去自我的边缘)。
这套体系最有意思的地方在于,它把“施法能力”和“人格完整性”绑定在一起。施法能力越强的人,记忆漏洞越严重,这直接创造了一个悲剧性的角色发展路径。我让 AI 基于这个规则生成了“法术等级表”“施法禁忌”“已知的炬尽者案例”,每个条目都不超过六百字,但相互呼应得特别好。
写这个模块的过程中我体会到,AI Coding 工具处理这类“有明确规则的文本”远强于处理散文式脑洞。你把规则写清楚,它能给你推演出几十条符合逻辑的延伸细节,而且很少崩盘。
3.4 编年史推演:从根事件长出一棵时间树
历史模块是最容易写成一坨流水账的部分,也是用 AI 工具最省力的一环。普通作者写编年史容易按“年份+事件”平铺,那样读者看完一个都记不住。我改用“时代划分+事件树”的方式。
先定时代的骨架:
- 星烬纪(远古):群星坠落,世界变容,旧日文明一夜消失。 - 余烬纪(蛮荒):幸存者重建文明,各方势力在灰烬中互相争夺。 - 裂隙纪(衰退):星烬矿脉枯竭,魔法衰落,旧秩序破解。 - 织者时代(当前):一个新的施法方法被发现,世界重新洗牌。然后在每个时代下设置“根事件”。比如星烬纪的核心事件是“坠星之夜”,余烬纪的核心事件是“第一次圣战”、裂隙纪的核心事件是“大枯竭”、当代的核心事件是“织者觉醒”。
事件之间要有因果链。AI 在这件事上比我厉害的地方在于,它可以高速推演“如果这个事件发生了,那么五十年的社会结构会受到什么影响”。我只需要提供几个关键分歧点,它就能生成一整条合理并有戏剧张力的时间线。
这个方法建议所有做世界观的人都试一次:别让 AI 按年份从头写到尾,而是让它“先定根事件,再生成枝叶”。生成完毕后再按时间顺序整理成年代纪表,这一步会让“创建历史”从苦役变成游戏。
3.5 政治势力:动态关系胜过静态介绍
最后一个大模块是势力设计。这个模块我要特别提醒:新手上路最常见的错误,是把每个势力写成孤立的“简介卡片”,然后放在那里就没用了。真正有价值的势力档案必须包含动态关系。
我让 AI 为每个国家或组织生成了三组东西:基础情报(领土、人口、信仰、领袖)、核心目标(它们真正想要什么)、当前困境(什么东西在阻碍它们)。
在此基础上,我让它为每个势力生成带有“立场光谱”的对外关系表格。例如“烬城对灰烬荒漠的态度:觊觎,但表面维持贸易协议”“暮光沼泽教团对烬城的态度:警惕,怀疑其正秘密挖掘古代遗迹”“千屿海联邦对凛冬群岛的态度:依赖其矿石,同时提防其扩张野心”。
这样一张势力关系网生成以后,整个世界的“活气”就出来了。你不再是一堆地名的观察者,而是可以在任何两个势力之间找到天然戏剧冲突。之后写小说时,所有角色都在这张网里行动,政治剧情靠这张图就能源源不断供给。
政治模块我不想把它做得过于复杂,真实感的关键不是势力数量多,而是每一个势力都有清晰而矛盾的欲望。一个只有正面目标的国家角色注定是扁平的;有欲望、有顾忌、有被迫妥协的势力,才有资格支撑长篇小说或跑团战役的骨架。
4. 保持一万字不跑偏的经验总结
4.1 风格锚点:锁住“味道”的关键
写设定最怕的是文风漂移。前半部分冷峻克制,后半部分突然冒出搞怪网感,整份文档立刻失去可信度。我用 AI 工具生成的初期就踩过这个坑,后来用一个笨办法解决了——在“风格锚点”这个文件里塞了几段“黄金样例”。
我让 AI 选取我世界观里最核心的几个场景,写了三段样例文本,每段二百字左右,分别对应:冷酷的战争描写、神秘的仪式场景、深沉的人物内心独白。这些样例文本就是“锚”,后续让工具生成任何文本时,我都要求它先参考这个文件里的语气和修辞偏好。
这个做法的本质,是用代码工程里的“黄金主分支”概念来管理文风。你不必每次都告诉它要“冷峻克制,要有画面感而不要抽象抒情”,只需要一句指令:参照风格锚点文件。它马上就能回到统一的味道。实测下来,这个技巧比任何一行提示词都管用。
4.2 事实清单:让设定不撒谎
第二个保住一致性的动作,是维护一份“非协商事实清单”。这份清单只记录硬设定:种族寿命、魔法代偿机制、禁地位置、各势力首都名称、历史事件的先后顺序。凡是后续生成内容里可能被引用的硬事实,都必须在清单里。
我让 AI 在生成每个新模块时,自动向清单追加它引用的新事实,并标记冲突。比如“精灵寿命五百年”和某个孤儿精灵的年龄设定冲突时,它会直接标出矛盾,提醒我修正。
这个机制太有用了。有次我写一个角色的过去,原本设定的孤女年龄是 320 岁,但她传记里写“她还记得四代人之前的王国覆灭”,按照精灵寿命段这个记忆完全合理。但是要求事实清单以后,AI 跑出来一行:“注意:王国覆灭发生在 450 年前,该角色当时尚未出生。”我当场看见了重大时间线漏洞。
一万字级别的设定文档里,这种互相矛盾的细节很容易冒出来,人工核对很费神。让工具自己在不停产出的同时维护事实清单,才是正解。
4.3 版本迭代:像管理代码一样管理设定
写过代码的都知道,删代码和改代码最怕的是影响别处调用,改设定也一样。
我在迭代设定时,习惯每改一个文件就同步跑一遍全局索引。这其实是个简单的提示词动作:
请检查刚刚修改的内容,是否与文件 02_种族、03_超自然、04_历史 中任何硬事实冲突,并给出修改建议。
短短一句话的成本很低,但它能阻止“改一个漏洞,补出三个新漏洞”的连锁反应。
同时,我不让 AI 直接覆盖源文件,而是每个版本生成一份带日期的副本文件,比如种族详细档案_v3.md。这类似于代码仓库里的 commit。你永远不会知道“上一个版本为什么更好”,直到你改崩了某个设定,急着找回原来的表达时,才会感谢这些备份副本。
如果 AI Coding 工具有文件历史或版本功能,直接用它的内置能力更好,没有的话就用日期后缀。这个习惯值回票价。
5. 实际踩坑与排查方法实录
5.1 前后矛盾:检索式检错法
我最常见的问题出现在“地理设定”和“历史事件”的互相引用里。某天我让 AI 生成一段关于南方文明兴衰的编年史,它写了一个“沙漠河流改道导致城邦衰落”,但我在地理模块里有个描述说“灰烬荒漠没有长年地表河流”。这句直接矛盾了。
我的排查方法是定义一个“跨文件一致性检查”,让它跑一遍全库:
请读取 01_地理、03_超自然、04_历史 的全部文件,列出所有互相冲突的事实,逐条编号。
AI 的跨文件检错虽然做不到百分百,但能抓出 80% 以上的硬错误,特别是时间线、名词、地理特征这些追求精确度的内容。剩下 20% 通常藏在长段落描述里,我靠关键词反向搜索去补。
事实上,用这个“检索式检错”大概每隔一千字自动跑一次,比最后统一检查好得多。写代码也是边写边测,设定文档应该一样。
5.2 越写越空:要求它“填表格”而不是“自由发挥”
第二个高频坑是“很长但很空”。有一阵我让它生成某个区域的风俗,结果是四大段漂亮排比句,读下来感觉什么信息都没给。我后来发现破解方法很简单:不给它开放式的“写一段介绍”,而是给它表格模板。
比如“请用表格列出烬城的主要节日:四列分别是节日名、时间、仪式、社会功能”。一旦采用表格,它就没有空间糊弄了,每一格都得塞实质内容。这个技巧对“越写越空”的病症几乎是特效药。
表格输出还有一个额外好处:后期检索效率极高。我后来写小说时想查“烬城人民过节穿什么”,直接打开终端搜表格行就行,根本不用通读全文。
5.3 文风漂移:回灌锚点段落
还有一次我连写了几个模块,忽然发现某一章的政治分析文本变得具有明显“论文腔”,和原来的“画面感叙事”完全脱节。问题就出在我没有在每一条生成请求里都调用风格锚点文件。
后来我养成了习惯,对每一次生成都加一个“参照锚点文件的前两段样式”后缀。这个方法操作要多花一秒钟,但能避免后面花大把时间重写。AI 这种模型极其在意前文风格的一致性,给它一个样例,它自己会往那个方向靠。没有样例,它就会自由发挥到全国平均水平。
5.4 命名杂乱:让工具维护一份词根表
奇幻世界最容易陷入混乱的是命名体系。写早了的时候,南方帝国的城市叫“晨曦城”,北方要塞却叫“冰牙堡”,风格完全割裂,整个世界的统一感就没了。
我让 AI 在 99_索引 文件夹里维护一份词根表和命名规范。比如“烬”字用于家族名,“斯”字用于通用地点后缀,“薇”字用于女性人名。它每次生成新人名时,都会参照这份表挑匹配语感的组合。
这个操作我愿称之为“用国标约束古代文明”。规范出来以后,读者潜意识里会觉得这个世界是一个真实的文化圈,而不是各种语言的缝合怪。
5.5 常见问题速查表
| 问题现象 | 根本原因 | 建议排查动作 |
|---|---|---|
| 新设定和旧设定冲突 | 没有维护事实清单 | 定义硬事实清单并跑全局一致性检查 |
| 内容冗长但信息量低 | 让 AI 自由发挥而非格式化输出 | 改用表格模板,要求每个字段有实质内容 |
| 文风前后不一致 | 丢失风格锚点 | 固定风格锚点文件,每次生成都强制参照 |
| 命名混乱 | 缺少命名规范 | 建立词根表和术语对照表 |
| 修改一处带崩三处 | 直接覆盖了被引用文件 | 带日期版本副本,保留旧版可回滚 |
| 越到后面越缩水 | 上下文被稀释 | 拆成小子模块逐个生成,避免一次堆积过多内容 |
这套速查表我现在每次启动新设定项目都会重新用一遍。你可以直接复制后按自己项目改细节。
6. 最后再分享一个小技巧
方法论讲到最后,再送你一个我特别喜欢的小操作。真正把一万五千字设定文档整理完以后,我让 AI 生成了整套文档的“检索目录卡”——它把全世界每一个地名、人物、势力、事件浓缩成一行摘要,放进 99_索引 目录。
这份速查表格的功能就像代码的 API 文档。之后我写正文时,随时打开速查表找某一条设定,定位到对应文件,直接查细节。不用通读几万字的刷新上下文,也不容易遗漏之前埋下的伏笔。你要是用 AI Coding 工具的话,甚至可以做一个“自动检查”脚本,每次写完一章,就跑一遍这个速查表里的人物来查“谁上线了、谁该有反应但被你忘了”。
我个人在使用这套流程后最深刻的体会是:好的工具不止于帮你写,它更会逼着你把思路理顺。你越是把它当工程来对待,它反馈给你的稳定性就越可观。如果你也是一个想把奇幻世界真正落地的人,建议今天就建个文件夹试试看。第一次跑通的时候,那种看见几十个相互咬合的文件整整齐齐立起来的感觉,真的很上瘾。