Skip to content
iPlugin

动画配置

查阅图标与标题帧、停留时间、循环模式、位置变化与播放限制。

图标通过 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 制作移动效果:

放在宽九格面板的 icons 中
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显示当前帧后停留的时间
写在 menu 内的逐帧标题
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 说明:

模式标题效果图标效果
LOOPA → B → C → A 循环相同
REVERSIBLEA → 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