深渊套怎么做我的世界模组
手把手教你做我的世界深渊套模组
凌晨两点半,咖啡已经凉了,显示器蓝光刺得眼睛发酸。突然想到昨天在服务器里看到别人穿的深渊套——暗紫色粒子特效配上流动的符文,盔甲缝隙里还会渗出黑雾,这玩意儿也太带感了吧?翻遍CurseForge发现居然没有满意的现成模组,得,今晚别睡了,自己搞一个。

准备工作:别急着打开开发工具
先得搞清楚深渊套到底要什么效果。我翻出十年前买的《克苏鲁神话》当参考书,在草稿纸上乱涂:
- 材质风格:带裂痕的暗色金属,要有被深海腐蚀的痕迹
- 特效需求:穿戴时脚下生成漩涡粒子,攻击触发触手虚影
- 特殊能力:水下呼吸+夜视,但会随机吸引溺尸
打开Forge官网下载MDK时,突然想起上次忘记配置Java环境变量的惨剧。这次学乖了,先把必需品列出来:
工具 | 版本 | 备注 |
IntelliJ IDEA | 社区版2023.2 | 别用Eclipse了真的 |
Java JDK | 17 | Minecraft 1.20.1必须用这个 |
Blender | 3.6 | 做3D模型比Blockbench顺手 |
创建基础模组框架
在IDEA里新建项目时,build.gradle文件总是报错——原来忘记把maven仓库地址改成阿里云镜像。改完同步完依赖,顺手删掉自动生成的ExampleMod.java,这玩意儿每次都要闹点笑话。
新建AbyssArmorSet主类时,发现Forge官网的示例代码还是1.18的。骂骂咧咧地打开Github搜最近的模组项目,发现现在要用@ModEventBusSubscriber注解了:
@Mod("abyssarmor") public class AbyssArmor { public static final String MOD_ID = "abyssarmor"; public AbyssArmor() { IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); modEventBus.addListener(this::commonSetup); } }
注册盔甲材料
参考Tinkers' Construct的钴钢材料注册方式,在ModItems类里定义新材料。这里有个坑——深渊合金的耐久度设太高会导致数值溢出,我上次设了99999结果盔甲变成一次性用品...
- 基础防御值:18(比下界合金高但有限)
- 韧性:3.0
- 附魔能力:25
- 耐久乘数:35
凌晨三点四十,突然想到该加个材料合成配方。在json文件里手写shapedRecipe时把硫磺粉和墨囊的位置写反了,测试时炸出来个苦力怕,吓得把咖啡打翻在键盘上。
制作3D模型与材质
用Blender建头盔模型时,想着要做出被深海压力扭曲的造型。Ctrl+Z按太多次导致软件卡死,没保存...重做时学乖了,先拉个基础头盔形状再加修改器:
- 添加波浪(Wave)修改器模拟液体流动
- 用置换(Displace)制造腐蚀凹陷
- 最后加细分曲面(Subdivision)让边缘更自然
导出json模型时发现Forge现在支持Obj格式了,但考虑到性能还是乖乖用blockbench转成了json。材质图用Krita画到一半,数位板没电了,只好用鼠标硬着头皮画那些符文细节——反正游戏里也看不清。
添加粒子特效
想实现盔甲缝隙飘黑雾的效果,结果ParticleType注册完死活不显示。翻了三小时StackOverflow才发现忘了在客户端代理注册渲染器。现在代码长这样:
@SubscribeEvent public static void registerParticles(ParticleFactoryRegisterEvent event) { Minecraft.getInstance().particleEngine.register( ModParticles.ABYSS_SMOKE.get(), AbyssSmokeParticle.Provider::new ); }
测试时发现粒子太多导致FPS暴跌到个位数,赶紧加了密度控制参数。顺便给粒子加了点蓝色光晕,这样在水下看起来更像发光微生物。
实现特殊能力
给盔甲添加水下呼吸很简单,但随机吸引溺尸的功能卡了我一整天。最开始用EntityJoinWorldEvent监听,结果服务器每秒生成几百个溺尸...最后改成玩家穿戴检测+区域扫描:
- 每30秒检查一次周围30格水域
- 有水域就生成1-3只强化溺尸
- 添加自定义NBT标签防止刷怪
凌晨五点,困得眼皮打架时突然想到该加个负面效果——穿戴全套超过10分钟会获得"深海恐惧"debuff,视野边缘开始出现幻影触手。这个用ClientPlayerTickEvent配合着色器实现,具体代码就不放了,反正现在回头看写得跟屎一样。
窗外鸟开始叫了,最后测试时发现盔甲在岩浆里会变成亮红色,这个bug意外地很酷,决定保留作为隐藏特性。保存项目时IDEA弹出更新提示,果断点"明天再说"。关机前看了眼CurseForge的提交页面,想着等睡醒再处理那些该死的元数据文件...
发表评论