
波浪鞘翅
让你的鞘翅拥有活甲虫外壳般的质感——坚硬、易碎、微微颤动。
Wavey Elytra 让鞘翅表现得像薄而坚硬的翅鞘,而不是布制披风。翅膀保持刚性并以铰链驱动,高速时会颤动,俯冲时收拢,转弯时差动滚转,翼尖略微滞后——就像有真实质量和弹性的东西。可选地,当模组安装在服务器上时,扇动会给你真正的推进力。
特性
- 🪲 甲壳物理 — 刚性铰链姿势,而非披风式柔软摆动。快速、僵硬、轻微的扑动,带有一丝弹性翼尖滞后。
- 🌀 双频扑动 — 10 Hz 的微颤叠加在 2.2 Hz 的可见波动之上,两者都随空速缩放。带来速度感,而非噪声。
- 🫁 呼吸式开合 — 滑翔时以缓慢的 0.9 Hz 开合,让轮廓本身也在运动。
- 🏹 速度驱动收紧 — 飞得越快,翅膀收拢得越紧,最多可达 12°。
- ✈️ 副翼滚转 — 转弯时两侧翅膀向相反方向倾斜(最多 11°),就像真正的副翼对。
- 🪂 失速抬头 — 速度过慢时翅膀会向上抬起(最多 9°)。
- 🛑 刚性俯冲 — 原版在垂直俯冲时会收回翅膀,模组在此处刻意保持安静。不会对折叠的翅膀产生虚假的抖动。
- 🌬️ 闲置生命力 — 站立时翅膀缓慢呼吸,每隔几秒抽动一次,就像刚被戳了一下的甲虫。
- 🥷 潜行收拢 — 潜行时翅膀平贴背部(25°)并停止所有动作。
- 👏 扇动脉冲 — 滑翔时按跳跃键,翅膀会猛地扇动 45° 并带有弹性回弹。
- ⚡ 服务端扇动推进(可选) — 当模组安装在服务器上时,扇动会真正推你向前。可用游戏规则开关,默认开启。
- ⚙️ 完全可配置 — 每个振幅、频率和增益都暴露在 JSON 配置中。
工作原理
模组只改变翅膀姿势——它从不接管渲染。它在 ElytraModel.setupAnim 末尾为左/右翅膀部件添加相对旋转。
正是这一设计选择使其具备广泛的兼容性:像 3D Cape 这样的模组在构建网格时会读取这些翅膀姿势,因此它们会自动继承本模组的物理效果——而本模组也从不覆盖它们的输出。这也意味着模组不会触碰网格、UV 或其他鞘翅模组所依赖的旋转轴。
物理核心刻意采用零 Minecraft 依赖的纯数学实现(滤波器、正弦、包络),并基于部分插值的 ageInTicks 计时,因此效果帧率无关。
依赖
必需
- Fabric API — 用于游戏规则注册、网络通信和服务器事件。
可选(集成 / 共存)
- 3D Cape — 3D 鞘翅会自动继承本模组的物理效果。
- WaveyCapes — 它处理披风,本模组处理鞘翅;两者互不干扰。
- Elytra Physics — 可协同工作;那个模组改变展开目标,本模组在其上添加增量。
- elytraslot — 装备在专用槽位中的鞘翅获得相同的物理效果。
- 3D Skin Layers — 可共存(本模组不调用其 API)。
安装
- 为 Minecraft 1.21.1 安装 Fabric Loader。
- 安装 Fabric API(必需)。
- 将
waveyelytra-1.0.0.jar放入你的mods文件夹。 - 可选:如果你想在多人游戏中获得扇动推进,在服务器上安装同一个 jar。
服务端(可选)
这是一个双端模组:
| 服务器 | 客户端 | 结果 |
|---|---|---|
| ✔ | ✔ | 完整:扇动会推进你,且所有装有客户端模组的玩家都能看到扇动动画。 |
| ✔ | ✘ | 推进仍然生效,但没有人能看到动画。 |
| ✘ | ✔ | 仅动画——纯视觉效果,没有推进。 |
游戏规则
| 规则 | 默认值 | 描述 |
|---|---|---|
waveyElytraFlapBoost |
true |
扇动推进的总开关。设为 false 会同时禁用推进和扇动动画。 |
/gamerule waveyElytraFlapBoost false
⚠️ 这是一个玩法改动。 启用后,鞘翅可以通过扇动保持飞行,而不必消耗烟花。不希望如此的服主可以用上面的命令将其关闭。
配置
编辑 config/waveyelytra.json。旁边会生成一个 waveyelytra-README.txt,描述每个键。编辑后请重启游戏。
滑翔
| 键 | 默认值 | 描述 |
|---|---|---|
sweepMaxDeg |
12.0 |
全速时的最大收紧角度(度)。 |
breatheHz / breatheDeg |
0.9 / 1.5 |
滑翔呼吸频率(Hz)和振幅(度)。 |
flutterHz / flutterAmpDeg |
10.0 / 2.0 |
快速扑动频率和振幅。 |
flutterSlowHz / flutterSlowAmpDeg |
2.2 / 2.4 |
慢速扑动频率和振幅。 |
flutterSpeedRef |
0.6 |
达到完整扑动所需的水平速度(方块/刻)。 |
dihedral |
1.0 |
上反角增益(基础 3°)。 |
aileronGain |
1.0 |
副翼增益(基础 11°)。 |
stallNoseUp |
1.0 |
失速抬头增益(基础 9°)。 |
tipLag |
1.0 |
翼尖滞后强度。 |
扇动
| 键 | 默认值 | 描述 |
|---|---|---|
flapDeg |
45.0 |
扇动峰值振幅(度)。包络已归一化,因此这就是真实最大值。 |
flapDurationSec |
0.28 |
一次扇动的时长(秒)。 |
flapDecay |
7.0 |
阻尼——越大意味着余振越少。 |
flapHz |
3.5 |
余振频率。 |
flapPitchDeg |
5.0 |
扇动期间的额外抬头角度。 |
闲置 / 潜行
| 键 | 默认值 | 描述 |
|---|---|---|
idleBreatheHz / idleBreatheDeg |
0.29 / 2.0 |
闲置呼吸频率和振幅。 |
idleTwitchMinSec / idleTwitchMaxSec |
2.0 / 6.0 |
随机抽动间隔范围(秒)。 |
idleTwitchDeg |
3.0 |
抽动振幅。 |
walkBobDeg |
1.5 |
行走摆动振幅。 |
crouchIdleScale |
0.0 |
潜行时的闲置效果缩放(0 = 完全静止)。 |
crouchTuckDeg |
25.0 |
潜行时的收拢角度。 |
仅服务端
| 键 | 默认值 | 描述 |
|---|---|---|
boostStrength |
0.28 |
沿你视线方向的扇动推进(方块/刻)。原版烟花大约为 0.6–0.7。 |
boostLift |
0.06 |
推进的垂直分量。 |
通用
| 键 | 默认值 | 描述 |
|---|---|---|
enabled |
true |
总开关。 |
masterGain |
1.0 |
全局增益——一次性缩放所有效果(0 = 完全原版)。 |
常见问题
我需要把它装在服务器上吗? 不需要。不装的话,模组只是纯视觉效果。只有当你希望在多人游戏中获得扇动推进时才需要在服务端安装。
其他玩家能看到我的扇动吗? 安装了该模组的玩家能看到。其他所有人看到的是原版鞘翅。
如何关闭推进?
/gamerule waveyElytraFlapBoost false。这也会停止扇动动画,因为扇动正是为了表达推进而存在的。
它会与其他鞘翅模组冲突吗? 它的设计就是不会。模组从不接管渲染,从不触碰网格,只在其他模组同样写入的翅膀旋转上叠加——因此 3D Cape、WaveyCapes、Elytra Physics 和 elytraslot 都可以一起安装。
为什么我垂直俯冲时它不颤动? 这是刻意的。原版在垂直俯冲时会收回翅膀,给折叠的翅膀添加动作看起来明显很假。
我改了配置但什么都没发生。 配置在启动时读取——请重启游戏。
致谢
- 灵感来自"鞘翅 = 硬化甲壳,而非布料"的理念,其构建目标是与现有的鞘翅/披风生态共存,而非取代它们。
- 特别感谢 3D Cape、WaveyCapes、Elytra Physics、elytraslot 和 3D Skin Layers 的作者们,他们提供了值得为之设计的兼容面。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。