跳到主要内容

抽奖动画

星月造物有 5 种箱子界面动画、2 种 3D 世界动画,装了云界面 CloudUI 时再多 4 种云界面专属动画。 每个奖池分别选择单抽动画(animation)与十连动画(ten-animation),在编辑器「奖池设置」里左右键切换即可。

动画一览​

ID名称种类单抽十连
roulette星轨轮盘箱子界面✔—
cards星辰翻牌箱子界面✔✔
starfall星落箱子界面✔✔
slots星月老虎机箱子界面✔—
carousel星环回廊箱子界面✔—
orbit星环(3D)3D 世界✔✔
meteor流星(3D)3D 世界✔✔
cui-dial星盘祈愿云界面✔✔
cui-flip命运翻牌云界面✔✔
cui-wheel星轮转盘云界面✔—
cui-stars星空连线云界面✔✔
none无动画—✔✔

只能单抽的动画(roulette、slots、carousel)被设为十连动画时,会自动改用 cards;写了不存在的动画名称时,单抽用 roulette、十连用 cards。

星轨轮盘(roulette)​

一整排奖品从界面中间那一行飞快滑过,越转越慢,最后停在上下两个指针之间的就是你的奖品。 上下两行的跑马灯跟着转动闪烁,经过指针的是真正的奖品时会亮起它的稀有度颜色;停下后整个框闪烁三次稀有度的颜色。

星辰翻牌(cards)​

背面朝上发牌(单抽 1 张在正中间,十连 10 张排成两行)。发完牌后,藏着稀有奖品的牌会先闪耀预告; 接着一张一张翻开,越稀有的牌翻开前会颤动,翻开后上下亮起它的稀有度颜色。十连默认从最普通翻到最稀有,最后揭晓最稀有的那一张。

星落(starfall)​

黑暗中星光闪烁,一颗流星从左上方划向中央——先是白色,接近时变成这次结果中最稀有奖品的颜色——然后炸开一圈圈光环,奖品出现在中间。 十连时 10 个奖品从最普通到最稀有依序出现。

星月老虎机(slots)​

三个转轮往下转动,依序停下:左、右,最后是中间(中间那格就是奖品),中奖线亮起奖品的稀有度颜色。 奖品达到 jackpot-rarity(默认传说)或是终极大奖时,三个转轮都停在奖品上;否则两侧停在同稀有度的其他奖品上。

星环回廊(carousel)​

奖品沿着界面外圈顺时针奔跑,越来越慢,停在顶部正中间的那一个落进界面中央,四周聚起它的稀有度颜色。

星环(orbit,3D)​

玩家面前浮现一圈奖品,旋转、减速,中心聚起这次最稀有奖品颜色的光点。

  • 单抽:圈上有数个奖品(其中一个是真的),停下时真正的奖品转到正前方、放大、发出稀有度颜色的光,上方显示名称,其他奖品消失。
  • 十连:圈上就是 10 个结果,从最普通到最稀有一个一个亮起、浮起并显示名称。

流星(meteor,3D)​

一颗星星从天而降,拖着稀有度颜色的光尾坠落在玩家面前,落地炸开,奖品从光里旋转升起,上方显示名称。 十连时 10 颗流星依序落在玩家前方的弧线上,最稀有的最后落下。流星本身的样子按稀有度不同(默认普通是石英、稀有是海晶碎片、史诗是紫水晶碎片、传说是下界之星、神话是末地水晶)。

3D 动画的特点
  • 3D 动画用 Display 实体在世界里播放,只有抽奖的玩家看得到,别人看不到也不会被挡路。
  • 播放位置在动画开始时按玩家所在位置与面向决定;动画中玩家可以自由移动。
  • 实体不会存进世界,动画结束(或玩家下线、关服)时立即清除。
  • 3D 动画不占用界面,所以没有跳过按钮,按潜行(Shift)跳过。

云界面专属动画​

服务器装了 云界面 CloudUI、而且云界面侦测到星月造物时,编辑器的动画选项会多出下面 4 种(cui- 开头)。 它们在全屏的云界面画面里播放,结束后同一个画面显示结果与「再抽一次」「返回」,Shift / F 也能返回。

ID名称玩法
cui-dial星盘祈愿星盘转动、光柱落下、冲击波扩散后卡牌依序翻开;光柱与冲击波的颜色是这次最稀有奖品的稀有度
cui-flip命运翻牌卡背排开,玩家自己点选翻开。单抽从 5 张里选 1 张,选中的翻开、其余离场;十连 10 张逐张点开,或点「全部翻开」。十连里史诗以上的卡背会先透出稀有度光,翻开时依稀有度爆出光芒
cui-wheel星轮转盘12 格奖品绕着星盘排成一圈,光点由快到慢转动,停在抽中的那一格后中央翻开奖品(只有单抽;十连设成它时改用 cui-dial)
cui-stars星空连线星星一颗颗亮起并连成星座,每颗星的颜色是那一抽的稀有度;闪光后星星化成卡牌翻开
  • 装了云界面时,奖池设成其他原版动画(roulette、orbit 等)也会在云界面里用 cui-dial 星盘祈愿播放;none 仍然不播放动画,直接显示结果。
  • 玩家暂时不能显示云界面(刚进服、资源包还没载入、拒绝了资源包)时,这一抽改用原版动画。
  • 奖池设成 cui-*、但服务器没有装云界面(或 config.yml 的 menu.cloudui: false)时,单抽改用 roulette、十连改用 cards, 开服时控制台会用一般消息说明是哪个文件、哪个键;装好云界面后自动使用原本设的 cui-*,不用改设定。
  • 跳过:画面右上角「跳过 ›」直接翻开全部(命运翻牌单抽会翻开中间那张)。
  • 音效在 config.yml 的 menu 段:draw-sound(星盘、星空开始时)、reveal-sound(翻开时,命运翻牌只有史诗以上会播)、 flip-sound(命运翻牌每翻一张)、wheel-sound(星轮光点每走一格)。

什么时候播放、播放哪一个​

依序判断:

  1. 奖池类型是「立即抽取」(instant)→ 不播放;「自选」(select)没有抽奖动画。
  2. config.yml 的 animation.enabled: false → 所有奖池都不播放。
  3. 玩家用 /sc animation 关掉了自己的动画 → 不播放。
  4. 单抽用奖池的 animation,十连用 ten-animation。
  5. 装了云界面、玩家也能显示时,在云界面里播放(见上面的 云界面专属动画)。

不播放动画时,抽完立刻发放奖励,结果写在聊天栏,不打开结果界面。

一次抽奖的流程​

  1. 抽奖结果在点下按钮的那一刻就已决定并存进数据库(见 奖励发放)。
  2. 播放动画。稀有度的音效、屏幕大字、烟花在揭晓时出现,见 稀有度。
  3. 动画最后一格停留 result-hold-ticks(默认 50 tick = 2.5 秒;3D 动画至少 1 秒)。
  4. 发放奖励,聊天栏显示抽到的奖品。
  5. 打开「抽奖结果」界面(config.yml 的 animation.results-menu),可以再抽一次、再来十连或回到奖池,见 界面配置。 关闭这个选项时,箱子动画直接关闭。

动画播放期间玩家不能再开始另一次抽奖(提示「你的抽奖动画还在进行中」)。

跳过​

config.yml 的 animation.allow-skip: true(默认)时:

动画怎么跳过
箱子界面动画点界面最下面中间的「跳过动画 »」(羽毛)
3D 动画按潜行(Shift)

跳过会直接揭晓结果(音效、屏幕大字照常出现)并马上发放奖励、打开结果界面;如果动画已经播完、正在最后一格停留,跳过后最多再停 0.5 秒。

关闭箱子动画界面(按 Esc)时:animation.close-skips: true(默认)= 直接结束动画、发放奖励;false = 界面关不掉,会马上重新打开。

关掉自己的动画​

/sc animation

玩家输入后,之后的抽奖不播放动画,直接显示结果;再输入一次重新开启。需要 starcrate.skip-animation 权限(默认所有人都有)。 这个开关存在内存里,服务器重启后恢复为开启。

速度​

config.yml 的 animation.speed 是全部动画的速度倍率(范围 0.25 ~ 4):2 = 两倍速,0.5 = 慢一倍。

速度会套用在所有「以 tick 为单位的时间」上(下表标示「tick」的键)。「格数」「帧数」类的键(例如轮盘的 steps、老虎机的 spin-frames) 不受影响;想让轮盘转得少一点,直接调小 steps。

animations.yml​

plugins/StarCrate/animations.yml 设定每种动画的文字、材质、时间与音效。修改后 /sc reload 生效。 文件里没写的键使用插件内置的默认值。

几个通用规则:

  • 时间单位是 tick(20 tick = 1 秒),会再除以 animation.speed。
  • 音效写法:音效名:音量:音调(例如 BLOCK_BEACON_ACTIVATE:0.6:1.6),或资源包音效 myserver:crate.open;留空不播放。 下表标示「只写名称」的音效,音量与音调由动画自动控制(例如越转越高),只写音效名,不要加 :音量:音调。
  • 材质 用 Bukkit 材质名称;写错时使用默认材质。
  • 每种动画的段落都可以写 common 里的同名键来覆盖,例如在 roulette: 下面写 background: GRAY_STAINED_GLASS_PANE,只改轮盘的背景。

common(所有动画共用)​

键默认作用
backgroundBLACK_STAINED_GLASS_PANE箱子动画的背景玻璃板
skip-materialFEATHER跳过按钮的材质
skip-name<gray>跳过动画 <dark_gray>»跳过按钮的名称
result-rarity-line<gray>稀有度 {rarity}动画中奖品说明最后加的稀有度行
grand-line<gold><bold>✦ 终极大奖 ✦终极大奖在动画中额外加的一行
grand-title✦ 终极大奖 ✦(渐变粗体)揭晓终极大奖、而它的稀有度没有设定 title 时的屏幕大字(稀有度有 title 时用稀有度的)

roulette 星轨轮盘​

键默认作用
title✦ {crate} · 星轨轮盘界面标题,{crate} = 奖池名称
steps36转动的格数,越多转越久(最少 12)
steps-random6随机多转 0 ~ (这个数 − 1) 格,每次停的时间不一样
slowest-delay6最后最慢时,每格停留的 tick
pointer-top / pointer-bottomHOPPER / END_ROD上方 / 下方指针的材质
pointer-name / pointer-name-bottom▼ 结果 ▼ / ▲ 结果 ▲指针的名称
spin-lightLIGHT_BLUE_STAINED_GLASS_PANE转动中跑马灯的颜色
start-soundBLOCK_BEACON_ACTIVATE:0.6:1.6开始音效
tick-soundBLOCK_NOTE_BLOCK_HAT每转一格的音效(只写名称,音调越转越高)

cards 星辰翻牌​

键默认作用
title✦ {crate} · 星辰翻牌 ×{count}界面标题,{count} = 抽数
sort-ascendingtrue十连时从最普通翻到最稀有;false = 按抽出的顺序翻
hint-rarityepic发牌后,这个稀有度以上的牌先闪耀(预告)
suspense-rarityepic这个稀有度以上的牌翻开前会颤动
card-materialPAPER牌背的材质
card-custom-model-data0牌背的 CustomModelData(资源包做牌背用,0 = 不设)
card-item-model''牌背的 item_model(1.21.4+,例如 myserver:card_back)
card-name✦ ??? ✦牌背的名称
card-name-hint<{color}>✦ 卡牌在闪耀 ✦闪耀中的牌的名称,{color} = 稀有度颜色
frameGRAY_STAINED_GLASS_PANE上下边框
deal-gap3每发一张牌的间隔(tick)
hint-delay8发完牌到闪耀预告的等待(tick)
hint-hold16闪耀预告后到开始翻牌的等待(tick)
flip-gap6每翻一张牌的间隔(tick),颤动的牌会多等一点
start-soundITEM_BOOK_PAGE_TURN:0.8:0.8开始音效
deal-soundITEM_BOOK_PAGE_TURN发牌音效(只写名称)
hint-soundBLOCK_AMETHYST_BLOCK_RESONATE:1:1.2闪耀预告音效
flip-soundITEM_ARMOR_EQUIP_ELYTRA翻牌音效(只写名称)
shake-soundBLOCK_NOTE_BLOCK_BELL颤动音效(只写名称)

hint-rarity、suspense-rarity 写了不存在的稀有度时会当成最普通的稀有度,等于每张牌都闪耀、都颤动。

starfall 星落​

键默认作用
title✦ {crate} · 星落界面标题
twinkle-frames8开场星光闪烁几次
meteor-gap3流星每移动一格的间隔(tick)
reveal-gap5每个结果出现后的停顿(tick)
rare-extra-gap6传说以上(rarities.yml 第 4 个以后的稀有度)的结果再多停几 tick
start-soundBLOCK_BEACON_POWER_SELECT:0.5:1.8开始音效
launch-soundENTITY_FIREWORK_ROCKET_LAUNCH:1:0.8流星出现的音效
burst-sound按稀有度自动选择炸开的音效(默认文件里没有这一行;最稀有结果是第 4 个稀有度以上时用大型爆炸声)

slots 星月老虎机​

键默认作用
title✦ {crate} · 星月老虎机界面标题
jackpot-raritylegendary抽中这个稀有度以上(或终极大奖)时三个转轮都停在奖品上
spin-frames26第一个转轮停下前转几帧(最少 10)
stop-gap8每个转轮之间相差几帧停下(最少 2)
frameGRAY_STAINED_GLASS_PANE转轮之间的隔板
payline-markerSPECTRAL_ARROW中奖线两端的标记
payline-name» 中奖线标记的名称
spin-lightYELLOW_STAINED_GLASS_PANE两侧闪烁灯的颜色
start-soundBLOCK_LEVER_CLICK:1:0.8开始音效
stop-soundBLOCK_IRON_TRAPDOOR_CLOSE转轮停下的音效(只写名称)
tick-soundBLOCK_NOTE_BLOCK_HAT转动音效(只写名称)
键默认作用
title✦ {crate} · 星环回廊界面标题
steps38转动的格数(最少 25,也就是一整圈)
steps-random6随机多转 0 ~ (这个数 − 1) 格
slowest-delay5最后最慢时,每格停留的 tick
innerBLACK_STAINED_GLASS_PANE内圈的玻璃板
pointerHOPPER指针材质(顶部中间下方)
pointer-name▲ 停在这里的就是你的奖品指针名称
start-soundBLOCK_END_PORTAL_FRAME_FILL:1:1.4开始音效
tick-soundBLOCK_NOTE_BLOCK_CHIME转动音效(只写名称)

orbit 星环(3D)​

键默认作用
distance3.2星环中心离玩家眼睛的距离(格)
radius1.6星环半径(格)
ring-size8单抽时星环上有几个物品(其中一个是奖品,最少 4);十连固定是 10 个结果
turns3至少转几圈
spin-ticks70旋转的时间(tick)
item-scale0.8物品大小
winner-scale1.7单抽时奖品放大到多大
reveal-gap6十连时每个结果亮起后的停顿(tick)
rare-extra-gap6传说以上(rarities.yml 第 4 个以后的稀有度)的结果再多停几 tick
label{rarity} <white>{prize}奖品上方的名称,{rarity} 稀有度、{prize} 奖品名称
start-soundBLOCK_BEACON_ACTIVATE:0.8:1.4开始音效
tick-soundBLOCK_NOTE_BLOCK_CHIME旋转音效(只写名称)

meteor 流星(3D)​

键默认作用
fall-ticks22每颗流星坠落的时间(tick)
start-height14流星从多高开始落(格)
start-back5流星从玩家后方多远开始落(格)
arc-degrees120十连时流星落点排成的弧形角度
arc-radius4.2十连时弧形离玩家的距离(格);单抽落在正前方 3.2 格
stagger7十连时每颗流星的间隔(tick)
star-scale0.9流星大小
star-itemNETHER_STAR流星的默认物品
star-items.<稀有度 ID>见文件各稀有度流星的物品,没写的用 star-item
label{rarity} <white>{prize}奖品上方的名称
start-soundENTITY_ILLUSIONER_PREPARE_MIRROR:0.6:1.6开始音效
fall-soundENTITY_FIREWORK_ROCKET_LAUNCH坠落音效(只写名称)
impact-soundENTITY_GENERIC_EXPLODE落地音效(只写名称)