动画配置
查阅图标与标题帧、停留时间、循环模式、位置变化与播放限制。
图标通过 frames 改变物品显示;标题通过 menu.title 的 values 或 frames 改变文字。它们分别设置节奏,不因同时使用而互相同步。20 TPS 时,20 tick 约为一秒。
想直接制作轮换标题与染料按钮,见动画菜单教程。
图标帧字段
以下字段写在图标中,与 display、action 同级。
| 字段 | 类型 | 必填 | 省略行为 | 说明 |
|---|---|---|---|---|
frames | 显示属性对象列表 | 否 | 无图标帧动画;可从父图标继承整个列表 | 至少两帧才播放;空列表或仅一帧仍显示默认外观,不会自动应用那一帧 |
framesProperties(frames-properties、frames-prop、prop) | 帧设置对象 | 否 | 默认停留 20 tick,模式 LOOP;允许继承的子图标可沿用父对象 | 字段见下表;这四个名称等价,只写一个 |
帧设置
字段位于 frames-prop 或其任一同义节点内。
| 字段 | 类型 | 必填 | 省略行为 | 说明 |
|---|---|---|---|---|
delay(default-delay、period、last) | 整数 | 否 | 20 tick | 没有单独设置停留时间的图标帧使用此值 |
mode(type) | 文字 | 否 | LOOP | 播放顺序;支持模式与图标特有限制见下文 |
每个 frames 列表项使用以下字段:
| 字段 | 类型 | 必填 | 省略行为 | 说明 |
|---|---|---|---|---|
delay(last) | 整数 | 否 | 使用帧设置的 delay,再省略则为 20 tick | 这一帧显示后的停留时间,不表示播放前额外等待 |
| 显示属性 | 对应物品属性的类型 | 否 | 常规属性可回退到当前状态的默认显示;物品来源和位置的规则见下文 | 属性直接写在每一帧中,不再套 display;不能在帧中填写 action 当作逐帧执行动作 |
material: PAPER
name: '&f状态'
frames-prop:
mode: LOOP
period: 20
frames:
- name: '&a开启'
glow: true
delay: 40
- name: '&7等待'
glow: false第一帧显示后停留 40 tick,再显示第二帧;第二帧停留默认 20 tick,再回到第一帧。开始时默认外观先建立,多帧动画从第一帧开始,不会先按 delay: 40 等待四十 tick 才出现第一帧。
delay 和 last 是帧内同义字段;顶层图标上单独写 delay 或 last 不会成为统一帧间隔。统一间隔必须写在帧设置内。
显示继承与物品来源
帧中的名称、Lore、数量、损伤、模型、发光、附魔、标志、提示框、不可破坏等常规属性,未填时可以使用当前图标状态的默认显示。需要注意:
- 帧省略物品来源时,继续修改当前物品,不保证重新生成默认材质。需要交替显示两种材质,就在两帧分别写明来源。
flags、附魔、NBT 等是添加或覆盖,不会因为后一帧省略而清掉上一帧增加的全部内容。hideTooltip: false、unbreakable: false不负责清除物品已经拥有的同类属性,不适合直接做可逆开关。enhancedLore需要处理文字形式的\n时在对应帧明确填写;color不执行物品染色。- 默认外观含 NBT 时,也在每个动画帧提供完整的
nbt;帧内省略 NBT 的回退不可靠,可能使该帧无法显示。
外观完整字段及别名见物品属性。
位置帧
同一图标可用不同 slot 制作移动效果:
runner:
material: DIAMOND
slot: 0
frames-prop:
delay: 10
mode: REVERSIBLE
frames:
- slot: 0
- slot: 1
- slot: 2它在局部槽位 0 → 1 → 2 → 1 → 0 往返。slot 每次替换该图标整组位置;后一帧省略 slot 会留在上一位置,不会自动回字符布局或默认 slot。不要把这种位置帧用于由生成器或滚动分组负责排布的输出。
标题动画字段
字段写在 menu.title 对象中,不能直接把标题文字列表作为 title 的值。
| 字段 | 类型 | 必填 | 省略行为 | 说明 |
|---|---|---|---|---|
values | 文字列表 | 否 | 不生成简写帧 | 与 frames 选一种;同时存在时使用 values |
frames | 标题帧对象列表 | 否 | 空列表,标题为 Untitled | 一帧为静态标题,两帧及以上播放动画 |
period | 整数 | 否 | 20 tick | 单帧没有指定时间时的停留时间 |
type(mode) | 文字 | 否 | LOOP | 标题播放模式 |
pre-generate | 布尔值 | 否 | 按 true 处理 | 打开时预先计算所有帧文字;设为 false 则每次显示该帧时重新计算变量 |
每个标题帧的字段:
| 字段 | 类型 | 必填 | 省略行为 | 说明 |
|---|---|---|---|---|
value(title) | 文字 | 是 | 不能加载该帧 | 当前帧标题 |
last(delay) | 整数 | 否 | 使用 period,再省略为 20 tick | 显示当前帧后停留的时间 |
title:
type: LOOP
period: 20
pre-generate: false
frames:
- value: '&8状态菜单'
last: 20
- title: '&a欢迎回来'
delay: 40需要统一节奏时用 values 简写;完整配置见动画菜单。一个静态标题帧不会因 pre-generate: false 自动周期更新文字,需要时执行 menu title update。
播放模式
模式名忽略大小写,将空格、连字符转为下划线;无法识别时回退 LOOP。往返模式使用 REVERSIBLE,REVERSABLE 不是它的别名。
以三帧 A、B、C 说明:
| 模式 | 标题效果 | 图标效果 |
|---|---|---|
LOOP | A → B → C → A 循环 | 相同 |
REVERSIBLE | A → B → C → B → A 往返,端点不连续重复两次 | 相同 |
RANDOM | 第一帧仍是 A,之后随机选帧,允许连续重复 | 相同 |
ONE_WAY | 顺序到 C 后保持 C;仍按该帧周期写入标题,pre-generate: false 时重新计算文字 | 末帧不会显示:三帧只到 B,两帧只显示第一帧;不要将它当成完整播放一次的可靠图标模式 |
标题与图标的 ONE_WAY 行为不同。需要稳定显示最终图标状态时,用条件子图标设置最终外观,或使用适合重复播放的模式,不用单向图标动画承担最终状态切换。
状态与动画
子图标允许继承父帧列表与帧设置;inherit: false 取消这组继承,详见继承规则。
- 根图标的
update只重新计算当前显示帧,不推进动画;relocate只重判子状态。 - 子状态变化后,如果两套动画都有可接续的帧索引,会接续旧进度,而不是保证从新列表第一帧开始。
- 首次已经选中某个子图标时,统一停留可能仍采用根图标的帧间隔。子状态需要不同节奏时,在关键帧显式填写
delay,不要只依靠子状态的统一设置。 - 只有一个动画帧不会覆盖默认显示;要做一个固定状态,改
display或用sub,不套单帧列表。
标题控制
| 语句 | 效果 |
|---|---|
menu title get | 取得当前显示的标题 |
menu title set '临时标题'、menu title to '临时标题' | 立刻改标题,不更改配置帧列表,也不自动暂停动画 |
menu title update | 重新计算配置中的第一帧;不会保留当前动画帧的文字 |
menu title pause | 暂停自动切换,不影响图标动画 |
menu title resume | 恢复标题切换,可能要等下一次检查,最长约 20 tick |
例如希望临时文字保持显示:
menu title pause
menu title set '临时标题'需要继续轮换时执行 menu title resume。带动作的图标点击会短暂暂停标题,并在约 5 tick 后恢复;因此不能把手动暂停当作点击后永远维持的状态。标题动画本身也不是按钮动作执行时钟。
图标动画限制
icon pause_frames、icon resume_frames(以及 icons 的对应批量形式)可以设置帧播放开关,但暂停跨过下一次帧检查后,resume_frames 不能可靠地重新启动播放。图标因切到其他固定页而不再可见时,帧动画也可能停止,回到该页不会保证续播。初始未选中的固定页也可能在显示前停止帧播放,切过去后只显示已建立的默认外观。
这与 pause_update / resume_update、pause_relocate / resume_relocate 的已有周期暂停恢复不同。需要确定地重新开始图标动画时重新打开菜单;生成器输出也可重建,但批量刷新会回到第一页。
Last updated on