- 烟花火箭的“编程”能力主要来自于合成时配置的火药数量(Flight,1–3)、烟火之星列表(Explosions)与若干布尔特效(闪烁 Flicker、拖尾 Trail)。一次燃放只会产生一次爆裂(若放入多个烟火之星,它们的效果会同时出现),最多支持7 个烟火之星叠加伤害与颜色,无法在同一支火箭上定义“多段延时爆炸”或“条件分支”。
- 运动轨迹由固定物理与随机偏移决定:初始垂直速度约为0.05 格/刻,每刻水平速度乘以1.15、垂直速度增加0.04;生命周期为10 × (Flight + 1) + 随机(0–5) + 随机(0–6)刻,随后即爆。射程随火药呈分段概率峰值(约在1/4、2/4、3/4处更容易爆),并非精确可编程的落点控制。
- 其他硬限制包括:单支火箭最多3 个拖尾星;未装烟火之星时不爆;爆炸不破坏方块、不掉耐久;声音存在显著延迟以模拟真实感。以上决定了其“序列”与“表演”的表达空间非常有限。
-
- 载体层:可飞行的“烟火弹/无人机”实体,承载轨道、计时器、编队与触发逻辑。
- 效果层:可配置的“爆裂/尾迹/闪光/音效”组件,支持形状、颜色渐变、亮度曲线、层叠与遮挡。
- 控制层:基于时间线/关键帧或行为树的脚本,支持并行段、条件分支、循环与事件回调(到达高度、与实体距离、玩家信号等)。
-
- 多段序列:按时间或高度触发多次爆裂,段间可设置延时、加速/减速、转向。
- 编队与路径:支持心形、螺旋、交叉、环形等路径,多载体同步/错位演出。
- 触发与交互:对玩家距离、区块事件、红石/信号、天气作出反应,实现“观众互动烟花”。
- 资源与调度:限制粒子/并发数量与脚本指令预算,保证服务器稳定;提供模板库与可视化编排工具。
-
- 载体:12 架无人机按心形顶点分布,统一高度64 格。
- 时间线:T0 起飞并汇聚至中心;T+2s 第一次爆裂(红色星型);T+4s 第二次(粉色大球+拖尾);T+6s 第三次(白色闪烁+音效);T+8s 集体缓降并淡出。
-
- 触发:玩家在半径 32 格内鼓掌或踩压力板(红石信号)。
- 响应:中央烟火弹发射,沿正弦波路径上升;每0.5 s一次小型爆裂,颜色随节拍在蓝→紫→白渐变;当玩家离开范围时切换为快速收束段并结束。
-
-
- 演出:多排载体按高度图逐行延时爆裂,形成“光绘”效果;完成后在轮廓内做一次大球终爆与鼓点音效。
-
- on_start(): spawn_drones(formation="heart", count=12, height=64)
- at(t=2.0): explode(drones, style="star", color=red, radius=6)
- at(t=4.0): explode(drones, style="large_ball", color=pink, trail=true)
- at(t=6.0): explode(drones, style="twinkle", color=white, sound="fanfare")
- at(t=8.0): land(drones, fade_time=2.0)
-
- 每载体维护位置 p、速度 v、目标高度 h;每帧 v += acc,位置边界与碰撞检测;粒子池与并发上限 N 控制;脚本每帧指令配额防止过载。
综上,Minecraft 的烟花火箭受限于“单次爆裂 + 固定物理 + 有限特效位”的组合,难以表达复杂序列;而 Hytale 完全可以在“载体—效果—控制”三层模型上实现多段、条件、编队、交互的空中表演编程,只需在引擎侧提供时间线/行为树与粒子系统的可编程接口即可落地。 |