场景 Actor 与大纲
场景 Actor 是用于游戏行为的 Actor。它没有方块,只有位置、朝向和属性。服务器插件 NP Scene 通过 scene.json 接收它们,并生成实际的实体和方块。世界逻辑规则和序列器轨道通过 id 引用场景 Actor。
大纲以每行一项的形式显示世界中的所有 Actor(方块组、场景 Actor、文件夹)。细节面板用于修改所选 Actor 的属性。
| 内容 | 位置 |
|---|---|
| 放置场景 Actor | 主工具栏「添加」→ 在「Actor」组中选择 |
| 相机 Actor(当前视角) | 工具 › 相机 Actor — 从当前视角创建 |
| 一次性创建区域触发器 + 规则 | Ctrl+Shift+T — 世界逻辑的区域触发器向导 |
| 大纲 · 细节 | 默认布局中位于右上和右下。如已关闭,可在「窗口」菜单中重新打开 |
「添加」会放置在鼠标下方的格子中。鼠标位于视口外时,放置在屏幕中心所指的位置。可以在搜索框中输入名称或英文单词(trigger、camera 等)进行选择。
- 点击主工具栏的「添加」。
- 在「Actor」组中选择「触发器区域 — 盒 (4×3×4)」。
- 视口中出现一个半透明盒子,大纲中增加一行。
- 用操纵器移动(W)或调整大小(R)。
- 在细节面板的「场景」栏中,将
id改为易于识别的名称(例如gate_zone)。 - 在世界逻辑中创建以该区域为触发器的规则。
场景 Actor 类型
Section titled “场景 Actor 类型”下表为「添加」›「Actor」组中的项目及其在 scene.json 中的 kind。
| 「添加」项目 | kind | 含义 | 在服务器上 |
|---|---|---|---|
| 触发器区域 — 盒 (4×3×4) | trigger | 检测进入、离开、停留的盒子 | 区域判定 |
| 触发器区域 — 球 (直径 6) | trigger | 同样是区域,只是形状为球(shape: sphere,大小 = 直径) | 区域判定 |
| 出生点 — 玩家 | spawn | 进入位置、传送目的地(role: player) | 传送、检查点位置 |
| 出生点 — NPC | spawn | NPC 生成的位置(role: npc) | 由插件决定 |
| 展示 — 方块 (Block Display) | display | 显示单个方块的实体 | BlockDisplay |
| 展示 — 物品模型 (Item Display) | display | 显示自定义模型的实体 | ItemDisplay |
| 文本 (全息 Text Display) | text | 浮在空中的文字 | TextDisplay |
| 光源 (亮度 15) | light | 不可见的光源(亮度 0~15) | light 方块 |
| 相机 — 从当前视角 | camera | 过场动画、电影镜头视角 | 相机实体 |
| 路径 (3 个点) | path | 由点连成的线(动画、电影镜头路径) | 路径点 |
| 阻挡盒 — 隐形墙 (4×3×1) | blocker | 不可见的墙 | barrier 方块或推开 |
音源位于「添加」的「声音」组中(营火噼啪、风、空音源等)。在 scene.json 中以 kind: "sound" 导出。
id 初始为 <kind>_<编号>(例如 trigger_1)。规则和轨道通过该字符串引用 Actor。
选择场景 Actor 后,细节面板中会显示以下各栏。
| 栏 | 内容 |
|---|---|
| 组件 | 附加到 Actor 的功能列表 ·「添加」(见下文「组件」一节) |
| Actor | 名称 · 类型 · 父级 · 内容 · 显示 · 锁定 |
| 场景 | id · 导出(导出的 kind)· 标签 · 仅编辑器 · 附加到 |
| 位置 · 旋转 · 倍率/大小 | 变换。旋转仅适用于出生点、展示、文本、相机、路径;倍率仅适用于展示、文本;大小仅适用于触发区域、阻挡框 |
| 属性 | 因类型而异的栏(见下表) |
| 栏 | 含义 |
|---|---|
| id | scene.json 中的 id。只能使用英文字母、数字及 _ . -。在同一世界中不得重复。 |
| 导出 | 显示导出到游戏中的形式(scene.json kind "trigger" 等)。 |
| 标签 | 以逗号或空格分隔的标签。用于成组引用多个 Actor。 |
| 仅编辑器 | 开启后不写入 scene.json。用于工作用相机、备注用区域等。 |
| 附加到 | 附加(Attach)到其他场景 Actor 后,移动父级时会一同移动。 |
| 类型 | 属性 |
|---|---|
| 触发区域 | 形状(长方体 · 球) |
| 出生点 | 角色(玩家 · NPC · 生物 · 自定义)· 目标(npc · mob 时为实体 id) |
| 展示 | 类型(方块 · 物品模型)· 方块或模型 · 物品模型 id · 广告牌 · 亮度(-1 = 环境光)· 初始可见 · 边框发光 · 边框颜色 |
| 文本 | 文本(多行)· 文字颜色 · 背景 · 广告牌 · 对齐 · 行宽 · 初始可见 · 阴影 · 透过墙可见 |
| 光源 | 亮度(0~15)· 初始开启 |
| 相机 | 视场角(FOV,30~110)·「从此视角查看」·「对齐当前视角」·「新建相机」 |
| 路径 | 闭合路径 · 点列表 ·「末尾加点」·「中间加点」· 删除所选点 |
| 阻挡框 | 方式(barrier · push)· 目标(仅玩家 · 所有实体)· 在编辑器中可见 ·「碰撞时动作…」 |
关闭「初始可见」后,游戏开始时该 Actor 处于隐藏状态。可通过世界逻辑动作「显示 Actor」使其出现。在编辑器中以半透明显示。
阻挡框的方式如下。
| 方式 | 在服务器上 |
|---|---|
barrier | 用 barrier 方块填充盒内的空格。 |
push | 不使用方块,将进入盒内的对象(按目标设置为玩家或所有实体)推开。 |
在编辑器的运行中,两种方式都会阻挡行走中的角色。
组件是附加到 Actor 上的功能集合。也可以附加到用方块搭建的门、石像等方块 Actor 上。通过细节面板顶部「组件」栏中的「添加」进行附加。
| 组件 | 生成的场景 Actor | 用途 |
|---|---|---|
| 触发器体积 | trigger | 与 Actor 边界(+ 余量)同大小的区域 |
| 阻挡体积 | blocker | 与 Actor 边界同大小的隐形墙 |
| 交互 | trigger(点击盒) | 右键时执行规则 — 触发器「右键 Actor」的对象 |
| 音源 | sound | 从 Actor 位置发出的声音 |
| 光源 | light | Actor 顶面上方的光源 |
| 文本展示 | text | Actor 上方的全息文字 |
| 标签 | — | 输入 Actor 标签 |
| 逻辑 | — | 使用该 Actor 的规则列表 +「添加规则」 |
- 由组件生成的场景 Actor 的
id为<Actor id>.<组件 id>(例如door.interact)。 - 移动方块 Actor 时,组件的位置也会随之移动。
- 每个组件都有启用复选框。关闭后会从导出和运行中排除。
- 每个 Actor 最多可附加 32 个组件。交互、标签、逻辑各只能有一个。
- 「逻辑」中的「添加规则」会预先填入与对象相符的触发器(交互 → 右键 Actor,触发器体积 → 进入区域时,阻挡体积 → 碰撞时)。
大纲每行的列为名称、类型、眼睛(显示)、锁(锁定)、方块数。上方有搜索框、新建文件夹按钮和「显示空 Actor」按钮。
| 操作 | 结果 |
|---|---|
| 单击 | 选择该 Actor。若为方块 Actor,则选中其方块。 |
| Ctrl+单击 | 逐个添加或移除。 |
| Shift+单击 | 从最后单击的行开始按范围选择。 |
| 双击 | 选择并对准相机。 |
| 眼睛 · 锁 | 切换显示、锁定。对文件夹操作时应用于所有子项。 |
| 将行拖到文件夹上 | 移入该文件夹。放到世界行上则移到最顶层。 |
| 将行拖到场景 Actor 上 | 附加到该 Actor(一同移动)。 |
| ← · → | 行数很多时折叠、展开 |
| 项目 | 作用 |
|---|---|
| 选择 | 选择该 Actor。 |
| 相机对准 | 将相机对准该 Actor。 |
| 重命名 | 开启名称编辑。 |
| 复制 | 在 X 方向旁边复制一份。 |
| 删除 | 删除 Actor 及其方块、道具。 |
| 新建文件夹 | 在所选文件夹中新建文件夹。 |
| 设为活动文件夹 | 使新建的 Actor 放入该文件夹。 |
| 移到世界根级 | 从文件夹、父级中移出。 |
| 归入新文件夹 | 将所选 Actor 归入一个新文件夹。 |
| 合并 Actor | 将所选方块 Actor 合并为最后单击的那一个。 |
| 存为道具(预制件) | 仅将该 Actor 的方块、道具保存为预制件。 |
| 清理空 Actor | 删除没有方块、道具的 Actor。 |
自 0.9.7 起:新增「合并 Actor」和「存为道具(预制件)」。保存的预制件可在内容浏览器的「预制件」中再次放置。详情请参阅预制件。
| 选项 | 位置 | 含义 |
|---|---|---|
| 显示空 Actor | 大纲上方的过滤按钮 | 没有方块、道具的 Actor 也显示在列表中。 |
| 触发区域 | 视口显示标志 | 开启或关闭触发区域、阻挡框、组件的显示。 |
| 在视口中显示区域·阻挡框 | 世界逻辑面板「区域」 | 与上面的显示标志相同。 |
| 键 | 动作 |
|---|---|
| F2 | 重命名(焦点在大纲时。在其他位置时为无光照视图模式) |
| Ctrl+G | 将所选 Actor 归入新文件夹 |
| Ctrl+D | 复制大纲中所选的 Actor |
| Delete | 删除所选场景 Actor(没有方块选择时) |
| F | 将相机对准所选对象 |
| W · E · R | 操纵器 移动 · 旋转 · 缩放 |
| Alt+拖动操纵器 | 复制并移动 |
| Ctrl+Z | 撤销(包括重命名、合并、组件更改) |
提示 / 注意
Section titled “提示 / 注意”- 更改
id后,使用该id的规则和轨道不会自动更新。建议在创建规则之前先确定id。 - 更改组件
id后,规则中记录的旧派生id也不会被修正。 - 已锁定的 Actor 无法在细节面板中修改。
- 场景 Actor 必须位于
.npbuild范围的 X · Z 之内,才会被写入该部分的scene.json。不考虑高度。 - 展示 — 物品模型必须是已包含在资源包中的模型,才能在游戏中显示。