
特效文本
你可以使用这个模组来制作一些特殊效果文本。
查看大图特效文本
为 Minecraft 添加动态文本特效:波浪、旋转、颜色渐变和图片背景。适用于提示框、Boss 血条、实体名称、GUI 以及任何使用原版字体界面的文本。
这是一个客户端模组;理论上只需要客户端安装。
此模组借助 AI 辅助创建。
简介
特效文本会在客户端自动识别。硬编码文本和从 Component.translatable 解析出的翻译文本均可使用。不含 §{...} 的文本渲染效果与原版完全一致。
KubeJS 提示框字符串和 Text.of 组件可直接使用:
ItemEvents.tooltip(event => {
event.add("cloudy:machine_star", "§{y=sin(x),speed=0.15,range=[0,99999],start=0}右键召唤先驱,源代码")
})
启用与重置
§{...} 从该位置开始应用特效,§r 将其关闭。标记本身不会显示。
§{y=sin(x),speed=0.15,range=[0,6],start=0}波浪文本§r 普通文本
x 以每行字符数为单位,从 start + 0 开始计数。speed 是每 50 毫秒(约 1 游戏刻)的相位增量;可为负数以反向移动相位。当特效文本首次显示时,会创建一个独立的客户端播放时钟。此后,每帧根据客户端本地时钟计算,不依赖世界或服务器刻。如果文本停止显示超过约半秒后再次出现,则会从时间 0 重新开始。当存在 range 时,使用循环区间。正的 y 使字符向上移动,正的旋转角度按顺时针处理。如果表达式无效或计算结果为非有限值,字符将返回默认位置。
表达式支持 x、pi、e、加、减、乘、除、取模、幂运算、括号,以及函数 sin、cos、tan、asin、acos、atan、sqrt、abs、radical、floor、ceil、round、exp、log、log10、min、max、atan2、pow、clamp、lerp。
pow(m,n) 是 m 的 n 次幂,abs(m) 是绝对值,radical(m,n) 是 m 的 n 次方根。radical 支持对负数取奇数整数次根。如果结果不是实数,字符将返回默认位置。
分段函数
使用 if(条件, 为真时的值, 为假时的值)。支持的比较运算符:<、<=、>、>=、==、!=。比较结果为 1 或 0。if 可以无限嵌套以创建分段函数:
§{y=if(x<3,sin(x),if(x<6,0.5,-sin(x))),speed=0.15,range=[0,9],start=0}分段摆动§r
在上面的例子中,当 x<3 时使用 sin(x),当 3<=x<6 时使用常量 0.5,当 x>=6 时使用 -sin(x)。条件分支为惰性求值;仅计算选中的分支。也可以使用别名 piecewise(条件, 为真时的值, 为假时的值)。
摆动与旋转
§{y=sin(x*0.8)*0.35,speed=0.2,range=[0,6],start=0}摆动§r
§{angle=sin(x)*20,speed=0.1,range=[0,6],start=0}旋转§r
y 的单位是字体行高。angle 会自动归一化到 0–360 度。二者可以融合:
§{§{y=sin(x)*0.3,speed=0.2,range=[0,6],start=0}&&§{angle=sin(x)*15,speed=0.2,range=[0,6],start=0}}融合文本§r
颜色渐变
§{color=[#ff3030,#ffe066,#40d9ff],speed=1}渐变文本§r
颜色会在列表中平滑循环过渡。speed=0 可停止流动。颜色渐变与图片背景不能同时生效;当二者出现在同一个融合标记中时,图片背景优先。
图片背景
§{a=x*16,b=0,speed=1,range=[0,4],start=0,background='minecraft:textures/block/stone.png',size=16}图片背景§r
a 和 b 是图片采样区域的左上角坐标(以图片像素为单位)。size 是采样正方形的边长。如果采样区域超出图片边界,会从另一侧环绕。背景会随字符的摆动和旋转一起变换。
适用范围
特效渲染挂钩到 Minecraft 的 Font,因此覆盖 GUI、提示框、Boss 血条、实体名称以及其他使用原版字体界面的文本。表达式在客户端每帧求值;服务器只需正常发送包含这些字符的文本即可。
正在加载版本记录…



正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。