Skip to content

发布、导出与 Bundle

简短版

世界做好了,怎么让其他玩家看到?很简单:在编辑器顶栏点击「发布」按钮。

在点「发布」之前,确保编辑器概览部分的这些内容已就绪:

  • 名称和描述 — 名称最多 200 字符,描述最多 10000 字符。好名字是你的门面;好描述是你的导游。
  • 封面图 — 玩家在社区列表中看到的第一样东西。没有封面的世界就像没有海报的电影院——没人知道里面在放什么。
  • 标签 — 最多 10 个。标签帮助玩家发现你的世界:「fantasy」「romance」「battle royale」「multiplayer」等。

准备好后,保存世界,点击编辑器顶栏的发布按钮(紧挨着保存)。在发布对话框中,设置内容分级(一般向 / 敏感内容)、可见性和编辑权限,勾选条款协议并发布。你的世界将出现在 Discover 中,供其他人搜索、浏览、直接游玩或 fork 修改。


详细版

发布状态

世界有三种状态,像交通灯一样控制可见性:

状态含义对他人可见?
draft仍在制作中,只有你能看到
published上线,出现在 Discover 页面
unpublished曾发布,但你下架了

草稿可以发布;已发布的世界可以下架;下架的世界可以重新发布。 当你下架一个世界时,系统会自动通知所有将其添加到媒体库的玩家:「这个世界已被下架。」重新发布时,他们会收到另一条通知:「它回来了。」很贴心的功能╰(°▽°)╯

发布设置

以下设置在发布对话框(从编辑器发布按钮打开)中配置——不在概览表单里。

可见性(visibility

public     — 公开,所有人都能在 Discover 看到
followers  — 仅关注者可见,适合有限测试或分享给你的圈子

发布时未指定则默认为 public

允许编辑(allowEdit

默认为 true。开启时,其他创作者可以 fork 你的世界进行修改。关闭意味着只有你可以 fork 自己的世界。

类似开源和闭源:allowEdit 开启时,你的世界可以被其他玩家下载学习,可能催生有趣的变体;关闭则你的内容可以被游玩但不能被直接读取。你来决定。

标签(tags

最多 10 个。对 Discover 页面的搜索和筛选非常有用——平台追踪所有已发布世界的标签使用频率,玩家可以按标签浏览和搜索。输入时自动补全会推荐热门标签。

封面图(thumbnailUrl

在编辑器的概览部分上传。用于 Discover 卡片、搜索结果和我的媒体库。没有封面的世界几乎不会被点击。强烈建议添加,并且yumina还内置了裁剪功能。

Fork(派生)

当世界已发布且 allowEdittrue 时,其他用户可以「fork」它:

  1. 创建一份完整副本,归 fork 者所有
  2. 名称自动递增——原世界叫「Dark Forest」,你的副本叫「Dark Forest (1)」;再 fork 就是「Dark Forest (2)」
  3. 副本以草稿状态开始,不会自动发布
  4. 保留原世界的所有标签、描述、封面、schema 和内容
  5. 原世界的 downloadCount 增加 1
  6. 副本的 sourceWorldId 指回原世界以便追溯
  7. 引用的资产(如图片)也会一并复制

Bundle 系统

Bundle 是什么?打个比方:你花了两周打造了一个精良的战斗系统——变量、规则、UI 组件、音效,全套。朋友也在做世界,需要一个战斗系统。你不需要把整个世界给他——只要把战斗相关的部分打包发过去。

Bundle 是包含你世界部分内容的「组件包」。

Bundle 包含什么:

部分包含的内容必须?
名称和描述Bundle 名称、描述、标签、创建日期
条目角色档案、剧情、风格指令、设定是(可以为空)
变量HP、金币、好感度、标志、JSON 状态是(可以为空)
规则触发条件和动作是(可以为空)
自定义 UITSX 组件是(可以为空)
音频曲目BGM、SFX、环境音是(可以为空)
Root Component完整的多文件 TSX 应用(index.tsx 及其关联文件)。包含它会将 Bundle 升级为「完整模板」可选
组织结构自定义标签定义、条目文件夹结构可选

可以把它想成一个「模组」——插到另一个世界里就能用。

创建 Bundle

在编辑器顶部菜单点击 Export Bundle。你就可以看到可以被勾选成bundle的部分了

一个贴心的功能:当你勾选一条规则时,系统会自动高亮它依赖的变量并标记为「推荐」,这样你不会意外遗漏。

两样东西自动包含(无复选框):

  • 音频曲目audioTracks)——完整列表始终包含在 Bundle 中。
  • Root ComponentrootComponent)——如果你的世界有的话,会自动附加。包含 Root Component 会将 Bundle 升级为「完整模板」——导入者不是合并到现有世界,而是可以 fork 为基于你模板的全新世界。

导入时的冲突处理

将 Bundle 导入现有世界时,内容是合并,而非覆盖。具体冲突解决方式:

  • 相同变量 ID:跳过,使用已有变量
  • 同名但不同 ID 的变量:创建带后缀的新变量(例如 HP (1)
  • 条目:始终生成新 UUID,追加到现有条目列表
  • 规则和组件:同上——创建新 ID 并追加

规则和组件中引用的变量 ID 会在导入后自动重映射以保持关系。这很重要——如果你导入一个战斗系统但规则中的「HP」变量没对上,这次导入就没用了。

发布 Bundle 到 Hub

保存的 Bundle 默认为私有。发布后,其他创作者可以在 Discover 页面搜索、预览和安装它。

你也可以将 Bundle 下载为 .bundle.json 文件发给朋友手动导入。

多语言支持:

| Variants | 整个世界的完整副本,全面翻译——条目、规则、组件文本,全部 | 你想让玩家用自己的语言游玩你的世界,AI 也用那种语言回复 |

Variants

Variants本身可以作为一个卡的不同版本(详细版,精简版),但如果你想出游戏的不同语言,也可以使用 Variant 系统╰(°▽°)╯——在编辑器顶部的 Variant 标签栏中创建新变体,选择目标语言。编辑器会创建你的世界在新语言下的完整副本,然后你进行翻译。

引擎将变体识别为「同一世界的不同语言版本」。在世界详情页,玩家一键切换。在社区列表中变体组算一个世界;浏览统计合并计算。

支持的语言

两种机制支持相同的 10 种语言:

代码语言
enEnglish
zh中文
ja日本語
ko한국어
esEspañol
frFrançais
deDeutsch
ptPortuguês
ruРусский
arالعربية

实战示例

示例 1:发布前检查清单

世界做好了准备上线。别急着点——先过一遍这个清单:

[ ] 名称 — 有吸引力吗?一眼就能看出是什么类型的世界吗?
[ ] 描述 — 写了吗?别留空。至少两句话告诉玩家他们会体验到什么。
[ ] 封面图 — 上传了吗?缩略到 Discover 卡片大小时还清晰吗?
[ ] 标签 — 加了 3-10 个相关标签吗?想想玩家会搜什么。
[ ] 内容分级 — 成人 / 敏感内容(18+)选**敏感内容**,否则选**一般向**。别搞错——标错是社区准则违规。
[ ] 可见性 — 想让所有人看到就 public。想先限范围测试就 followers-only。
[ ] allowEdit — 想让别人 fork 修改就开启。想保护原创就关闭。
[ ] 问候语 — 玩家看到的第一条消息是什么?设置好了吗?第一印象很重要。
[ ] 自测 — 自己从头到尾玩过了吗?变量正常吗?规则正确触发了吗?

确认无误后,在编辑器顶栏点击保存,再点紧挨着的发布按钮,按发布对话框的引导完成流程。

你的世界上线了。去 Discover 看看效果吧。

示例 2:创建战斗系统 Bundle 分享给社区

假设你在 RPG 世界中构建了一个回合制战斗系统,包含:

  • 变量:HP(number,0-100,stat)、MP(number,0-50,resource)、ATKDEFbattlePhase(string,flag)
  • 规则:HP 归零时触发死亡结算每回合开始时 MP 自然恢复 5
  • 组件:一个 HP 状态栏,一个 MP 状态栏
  • 音频:战斗 BGM(loop)、打击音效(sfx)

打包步骤:

  1. 在编辑器顶部菜单点击 Export Bundle
  2. 命名为「Turn-Based Combat System v1.0」,写清楚使用说明
  3. 勾选 5 个变量——勾选规则时系统会高亮相关变量
  4. 勾选 2 条规则和 2 个组件
  5. 勾选音频曲目
  6. 添加标签:combatrpgturn-based
  7. 导出保存

导出的 Bundle 文件包含所有选中内容——条目、变量、规则、UI 组件和音频曲目——打包为单个 JSON 文件。

别人拿到 Bundle 文件后,在编辑器顶部菜单点击 Import Bundle,选择安装到哪个世界,战斗系统就就绪了。变量名冲突自动处理。


延伸阅读