使用方法
- 在「生成数量」里填 5(示例值),允许 1~20 的整数。填 5 就是一次给出 5 条互不相同的开头,方便你挑一条往下写;填 1 则只给一条,适合每次只想要一个方向。
- 在「体裁」里选 不加体裁(示例值),也可以选奇幻、科幻或悬疑。选了体裁后,每条开头会带上对应的基调括注,例如「(科幻)」;选「不加体裁」则只拼三要素,留给你自己定调。
- 点「生成灵感」,或直接在「生成数量」框里按 Enter。下方结果区立即出现一批开头,每条形如「在{场景},一个{角色}正面临{冲突}」。
- 点「复制结果」把这一批开头按纯文本复制,可直接粘进文档或聊天框继续写;点「载入示例」把数量和体裁恢复成默认值并重新生成一批。
- 想换一批就再点一次「生成灵感」——每次都是从 14400 种组合里重新等概率抽取,前面抽过的不影响后面,所以会出现新组合,也可能偶尔撞上之前的。
这个故事启动器能解决什么问题
一是替你越过「第一句最难写」的门槛。很多人不是没故事,而是卡在白纸面前不知从哪落笔。故事启动器把开头拆成角色、场景、冲突三块,先给你一个具体情境,你只要顺着写下去,比对着空白页发呆快得多。
二是用随机碰撞出你不会主动想到的组合。你会习惯性地让「侦探」待在「案发现场」,但本页可能把侦探丢进「狂欢节」去面对「必须拯救一个陌生人」。这种跨池的错位是随机工具独有的价值:它不模仿你的口味,只负责把不相干的零件摆到一起。
三是给写作练习和教学提供随时可用的题面。老师让学生每人抽一条写 200 字、剧本工作坊用冲突卡做即兴练习、桌游主持人临时补一个 NPC 处境,都可以直接拿本页的结果当起点,不必事先准备卡片。
四是把「随机但不偏置」这件事讲清楚。池子里的 30 个角色、24 个场景、20 个冲突每次被抽中的机会完全相等,不存在「热门角色更容易出现」,你看到的分布只取决于你的抽取次数。本页不做这些事:不续写后续情节、不按你的喜好加权、不判断哪条更好——它只负责把开头递给你,写下去是你的事。如果你要的是「按题材热度推荐」,那是另一个问题,本页不提供。
生成原理:三要素池与等概率抽取
三张池子,各自独立抽取。角色池 30 条、场景池 24 条、冲突池 20 条。一次生成就是从三张池子里各取一条下标,再用固定句式拼成一句话,所以不加体裁时总组合数是 30 × 24 × 20 = 14400 种;勾选体裁后,体裁本身也是一张 3 选 1 的池子(奇幻 / 科幻 / 悬疑),组合规模扩到 14400 × 3 = 43200 种。
取下标走浏览器原生随机数。本页用 crypto.getRandomValues(new Uint32Array(1)) 拿到 0 到 4,294,967,295 之间的均匀整数,再用拒绝采样把它折成 0 到(池大小−1)的等概率下标——这一步的取数思路与本站已改造的魔法 8 球一致,目的是消除「取模余数造成的轻微偏置」,这里不展开数学,只说明结论:每个条目被抽中的概率严格相等。
三条下标相互独立,不洗牌。一次生成里的第 1 条和第 2 条各自重新取随机数,彼此无关;同一池子里的条目也不会「用完即弃」。这意味着连着两次抽到同一条角色是允许的,概率就是 1 / 30。如果你希望「这一批 5 条互不重复」,那是展示层的事,本页在单次生成内默认允许重复,因为三要素组合本来就多达上万种,实际撞上的概率极低。
句式是固定的,变量是随机的。输出模板只有一句:「在{场景},一个{角色}正面临{冲突}(体裁)。」骨架不变,变的是三个插槽里填进来的具体内容。这样做的好处是结果永远是一句通顺的中文,不会出现语法残缺的半句话;代价是风格统一,想要更花哨的句式得你自己改。
完整示例(数值仅作演示)
示例条件:生成数量填 5、体裁选「不加体裁」。逐项对照:
- 三张池子大小固定:角色 30、场景 24、冲突 20,乘积
30 × 24 × 20 = 14400,这就是不加体裁时的全部组合数; - 若把体裁也纳入,组合数变为
14400 × 3 = 43200,因为体裁是额外的 3 选 1 维度; - 单次抽到某一组完全相同三要素的概率是
1 / 14400 ≈ 0.0069%;加上体裁后降到1 / 43200 ≈ 0.0023%,所以「连点两次拿到一模一样设定」几乎不会发生,但理论上并非不可能; - 每次生成 5 条,是从 14400 种组合里做 5 次独立有放回抽样,允许重复,但 5 条全撞上的概率只有
(1/14400)^5,可以忽略; - 默认示例里「在暴雨中的火车站,一个流浪乐手正面临被误认为是叛徒」就是把第 1 张池第 1 条、第 2 张池第 1 条、第 3 张池第 2 条拼到一起的结果,换一批就会变成别的行。
把上面的数字落到操作上:如果你点一次「生成灵感」拿到 5 条,其中恰好有一条和上周写过的撞了设定,那不是工具出故障,只是 14400 分之 1 的小概率事件在大量使用下总会遇到几次。真正该关心的不是「会不会重复」,而是「重复了换一条重抽就行」。
三要素对照表与组合规模
下表列出三张池子的大小与若干示例条目,方便你确认本页抽样的来源范围。组合规模按「角色 × 场景 × 冲突」相乘得到,不是估出来的。
| 池 | 数量 | 示例条目(非穷举) |
|---|---|---|
| 角色 | 30 | 流浪乐手、退休侦探、失忆的画家、笨拙的巫师学徒、贪婪的商人、沉默的邮差、叛逆的公主、逃亡的科学家 |
| 场景 | 24 | 暴雨中的火车站、被遗忘的图书馆、悬浮在云端的城市、深夜的便利店、即将沉没的孤岛、霓虹闪烁的地下市场、万年冰川洞穴、喧闹的嘉年华 |
| 冲突 | 20 | 必须隐瞒真实身份、被误认为是叛徒、发现一份假遗嘱、与宿敌被迫同行、丢失了唯一的地图、收到匿名威胁信、必须在天亮前做出选择、被施了无法解除的诅咒 |
| 体裁(可选) | 3 | 奇幻、科幻、悬疑(选「不加体裁」时不计入组合,组合池保持 14400) |
- 不加体裁:
30 × 24 × 20 = 14400种开局,每一种都是一个(角色,场景,冲突)三元组; - 加体裁:再乘 3,得到
14400 × 3 = 43200种,每种多带一个基调标签; - 池子大小是人工定的:30 / 24 / 20 不是为了凑整,而是「够写又不撑爆一屏示例」的取舍——组合已经超过一万种,远大于一个人会逐条试写的量;
- 想扩大或缩小池子,改的是对应数组的长度,组合数会按乘法自动跟着变,不存在独立的「总数」需要手动维护。
输入范围、边界与随机性说明
- 「生成数量」限 1~20 的整数。0、负数、小数、字母、空值都会被拒绝并给出具体提示。上限取 20 是因为一次列出几十条开头反而没人看,真要更多建议分批生成再挑;下限 1 保证至少给一条。
- 体裁是可选维度,不影响三要素抽取。选「不加体裁」时,输出就是纯三要素句;选了体裁只是在句尾加一个括注,组合池从 14400 扩到 43200,但角色 / 场景 / 冲突三张池的抽取方式完全不变。
- 抽取是「独立有放回」,不是「不重复发牌」。单次生成的 5 条里可能出现同一条角色或同一个场景,因为每条都重新取随机数。想要「一批内不重复」可以自己删,本页默认不保证批次内唯一——毕竟 14400 种组合下重复极少。
- 重复不是故障。同一组三要素被连续抽到的概率是 1/14400,属于正常的随机波动;若你连点几十次遇到一次完全一样的设定,只是小概率事件发生了,不代表随机源有偏好。
- 随机源依赖浏览器原生接口。若环境不提供
crypto.getRandomValues,本页会明确提示并停止生成,而不是退回质量更差的伪随机悄悄给结果。所有抽取只在当前页面内存里进行,刷新即清空。 - 本页不保存、不上传、不做统计上报。你生成的设定不会离开浏览器,也不写本地存储,关掉标签页即消失。需要留档请先「复制结果」。
常见问题
生成的故事开头能直接当成成品用吗?
不能,也不该。本页只负责把「角色 + 场景 + 冲突」拼成一个通顺的开头,后续的人物动机、情节走向、结尾全要你自己写。它最适合当破冰题面和练习起点,而不是代笔。把开头粘进文档后,请顺着冲突往下发展,别指望工具替你把故事写完。
为什么连点两次会出现很像的设定?
三张池子各自有 30 / 24 / 20 条,单次生成 5 条时,某条角色撞上之前的概率是 1/30,场景 1/24,冲突 1/20,三者同时撞上才是 1/14400。你感觉「很像」多半只是角色或场景单独重复了,这在有放回抽样里完全正常,不是工具在偷懒。想避开就换一批重抽。
选了体裁之后,组合真的多出三倍吗?
是的。体裁是一张独立的 3 选 1 池子(奇幻 / 科幻 / 悬疑),它和角色、场景、冲突是相乘关系,所以是 30 × 24 × 20 × 3 = 43200。选「不加体裁」等价于体裁维度只有 1 个取值(空),组合数回到 14400。两种模式下三要素的抽取方式完全一致,区别只在句尾有没有基调括注。
抽到的组合会不会偏向某些热门角色?
不会。每个条目被抽中的概率严格相等,因为下标来自拒绝采样后的均匀整数,没有按出现频率或任何权重加权。你看到的「某类角色出现多」要么是样本容量小造成的波动,要么是你自己多生成了几批凑巧撞上,随机源本身没有偏好。想验证可以在开发者工具里反复点并记录分布。
为什么不用 Math.random() 而用 crypto?
两者都能生成随机数,但 crypto.getRandomValues 由操作系统熵源驱动,质量更高,且本页用它配合拒绝采样消除了「取模余数」带来的轻微偏置,保证 14400 种组合每种出现概率完全相同。代价只是极小概率的一次重试,换来的是严格均匀,对写作题面这种场景够用且更干净。
能不能让一批里的几条互不重复?
本页默认允许重复,因为 14400 种组合下实际撞上的概率极低。如果你做教学练习要求「每人拿到的题面不重样」,可以分多批生成、手动去重,或把生成数量调小、分批发放。工具本身不维护「已发过」的集合,因为那需要跨页面记忆,会和「刷新即清空、不上传」的设计冲突。
生成的设定会自动保存吗?下次打开还在吗?
不会。结果只存在当前页面内存里,不写 localStorage 也不写 Cookie,刷新、关闭标签页或重新打开都会清空。需要留存请在离开前点「复制结果」粘到自己的文档里。这样设计是为了避免你的构思被意外留在公用设备上。
故事启动器和名字生成器有什么区别?
名字生成器只产出「一个人叫什么」,而本页产出的是「一个情境」——它把角色、场景、冲突三块一起给你,直接构成可下笔的开头。两者都是随机生成器,但本页的主词是故事开头而非人名,不会去抢命名类工具「工商核名、域名查重」那类能力;如果你只想要一个角色名字,请去对应的名字生成器。
相关工具
- 疯狂填词生成器:给出固定句式让你填词,和本页一样是「骨架 + 随机词」的写法练习工具,区别在本页给的是完整开头。
- 俳句生成器:用 5-7-5 音节骨架拼短诗,适合练「少字数里出画面」的压缩写作。
- 猜词游戏词库生成器:为猜词游戏准备词表,和本页同属「随机出料」的创意辅助,但对象是单词而非情境。
- 诗生成器:按格律骨架生成诗句,可作为故事启动器之后的「语言风格」练习互补工具。
- 派对游戏主题生成器:给聚会随机出题面,思路和本页的「随机给情境」一致,只是场景换成线下游戏。
- 魔法 8 球:本页拒绝采样取数思路的来源页,讲解更完整的等概率抽取数学,可作为随机工具的原理参考。
- 奇幻风格名字生成器:专给奇幻角色起名,和本页「奇幻」体裁互补——本页给处境,这页给名字。
- 随机字符串生成器:纯随机字符流,适合做占位符与测试数据,和本页的「有意义组合」是随机能力的两个极端。