欢迎光临散文网 会员登陆 & 注册

单机整合包制作教程和经验分享

2023-06-08 03:15 作者:1137057989  | 我要投稿

单机整合包制作教程和经验分享

包含所有图片和链接的最新版见MCBBS帖子(懒得上传啦)

https://www.mcbbs.net/forum.php?mod=viewthread&tid=1447104&page=1&extra=#pid28496925

▌找不到满意的整合包?不妨尝试自己动手!当然,本教程也适用于在他人的整合包基础上进行个性化的改造(请勿在未经允许的情况下二次发布自己魔改的别人的整合包)

▌经验分享>教程,有不对/不全的地方请大家指正/补充。目前接触的主要是1.18.2/Forge/Optifine,这也是一篇主要面向Forge/Optifine的教程,熟悉Fabric环境的大佬可以留言补充

▌没有制作联机整合包的经验,你也不会在这里看到他们,如果有大佬补充我会另外发一个索引贴。当然,很多单机整合包制作的技巧可以用于联机

▌结合天明遥遥大佬的整合包使用和制作入门贴食用!
▌基础知识准备
注:你并不需要等一切都准备好了再开始,边做边学!
▌文件结构

l  见sjjklh大佬的我的世界MinecraftJava版 下载指南|文件结构说明|推荐启动器帖

▌游戏下载

l  见sjjklh大佬的我的世界Minecraft Java版 下载指南|文件结构说明|推荐启动器帖

l  推荐使用启动器自动安装

PCL II
HMCL


▌一些英语水平
l  下载Mod、debug、查看英文资源(Curseforge页面和模组的官方Wiki)需要
提示:记得选一款好用的翻译软件

▌一些电脑使用水平

l  熟悉基本操作例如查找和替换
l  熟悉文件类型、文件格式、文件操作


▌一些项目管理能力
l  好的项目管理会节省你很多的时间,包括但不限于规范的文件命名、合理的文件结构、定期备份的习惯、适当的操作记录
l  个人不推荐开启启动器的版本隔离功能,建议为不同版本创建独立的文件夹

Mod文件分类

管理你的备份

更新记录和模组清单


▌开始制作整合包
▌确定整合包的大体思路
l  确定整合包的主题能为你选择Mod提供指导,剔除不符合整合包风格的模组。此外,确定整合包的大体思路有助于你确定整合包的游戏版本。这是关于审美的部分,当你玩的模组/整合包多了就会积累相关经验
l  尽量选择主流的游戏版本例如1.19.2、1.18.2、1.16.5、1.12.2

以自制的理想国Utopia整合包为例,我希望制作一个拥有丰富自然环境,多样动植物的整合包,同时可以种田养老,打怪冒险,还有一些工业元素,当然家具装饰也不能落下。基本上1.16.5版本的模组最符合我的需求,但我更想体验高版本的高度上限,所以舍弃一部分Mod选择了1.18.2

▌安装Mod API

l  详见天明遥遥大佬的Mod 安装教程 | Forge / Liteloader/ Fabric / Quilt 运行环境下载和安装

l  推荐使用启动器自动安装Mod API
l  主流的Mod API主要是Forge 和 Fabric,大部分的模组都有这两个版本,根据你需要的Mod选择对应的API


▌安装光影/材质资源包
l  详见Xiao2大佬的【纹理资源】资源包&OptiFine安装教程
l  推荐使用启动器自动安装,见前文游戏下载部分
l  选择和Mod API兼容的光影核心,Forge推荐使用高清修复【OptiFine】或者【Oculus】,Fabric版使用【Iris Shaders】
l  选择光影时还需要考虑你要安装的模组、材质包和光影核心的兼容性,例如有的材质包绑定【OptiFine】,有的模组会和【OptiFine】冲突
l  使用【OptiFine】时需要额外注意兼容的Mod版本

OptiFine兼容的forge版本

以自制的理想国Utopia整合包为例,1.18.2版本,使用Forge 40.2.1和OptiFine H9 pre3


▌安装MOD
注:绝大多数Mod作者欢迎在整合包中使用他们制作的模组,许多Mod作者不允在整合包中使用他们制作的模组来盈利,一些Mod作者有额外的要求,例如不得发布修改后的Mod文件

【Star Worm Equestrian Mod】
【海灵物语Aquamirae Mod】


l  见天明遥遥大佬的Mod 安装教程 | Forge / Liteloader/ Fabric / Quilt 运行环境下载和安装帖

l  基本上放到mods文件夹中就好了,在游戏标题界面\Mod菜单中可以查看已成功安装的Mod
l  没有汉化需求的推荐从MCBBS和MC百科获取Mod信息,从链接进入Curseforge下载最新的Mod文件,有汉化需求的和直接发布的国创模组直接在发布/搬运处下载即可

l  Mod教程请参考Curseforge页面和模组的官方Wiki,下面仅给出部分中文教程链接

MCBBS
MC百科


Curseforge


l  注意很多Mod需要前置Mod,而且有时候并没有明确标注出来
l  下载Mod时注意区分对应的Mod API
l  按照一定顺序安装Mod有助于你测试Mod兼容性!想象你在创建一个世界,最先加入的应当是光影/材质,然后是生物群系模组和添加了矿物的科技模组,最后才是添加生物和地牢结构的模组


▌安装数据包

“数据包(DataPack)系统为玩家进一步定制其Minecraft体验提供了一种新方式。数据包可用于覆盖或添加新的进度、维度、函数、战利品表、谓词、配方、结构、标签、伤害类型、自定义世界生成和生物群系,而不进行任何代码修改。”

——Minecraft Wiki

l  数据包的获取和MOD类似,可以简单地理解为官方搞的类似模组的东西,可以方便地移植到不同版本
详见Minecraft Wiki和ruhuasiyu大佬的数据包安装指南l  数据包可以手动添加到存档文件.minecraft\saves\存档名\datapacks中或者在创建世界界面时选择添加数据包
l  推荐使用【全局数据包DRP - Global Data Pack】模组自动载入数据包


▌测试Mod/数据包
l  新建创造模式世界开始跑图
l  使用指令/locate 检查模组添加的生物群系是否正常生成
l  使用指令/locatebiome 检查模组添加的结构是否正常生成
l  使用指令/summon 检查模组添加的实体是否正常工作
l  使用JEI查看模组添加的物品及合成表
l  新建生存模式存档开始游玩测试

l  发布整合包供其他玩家下载游玩、测试


▌自定义整合包内容
整合意味着你并不是单纯的下载了一堆Mod放在一起,你需要对整合包的兼容性和平衡性做出调整!
▌查看Mod教程
l  查看Curseforge页面和模组的官方Wiki/Github
l  查看模组搬运者写的介绍
l  搜索模组教程

▌配置文件修改
l  配置文件位于.minecraft\config和.minecraft\saves\serverconfig中
l  对于.minecraft\saves\serverconfig中的服务器设置文件,将其移动到.minecraft\defaultconfigs中即可实现全局应用
l  有时模组的名字和配置文件的名字并不相同,注意仔细查找(例如Mod【It Takes a Pillage】的配置文件为takesapillage-common.toml
l  部分模组没有配置文件,常见于数据包封装的模组和基于MCreator的模组

示例:通过配置文件调整Mod平衡性      

模组【水源EXWater Source EX】中默认的饮用生水的口渴和中毒buff太长了?修改配置文件可以缩短buff持续时间

watersourceex-common.toml


示例:通过配置文件调整Mod兼容性      
模组【静谧四季/季节Serene Seasons】会导致Mod添加的沙漠群系在冬天下雪?修改配置文件可以添加对其他模组群系的支持


sereneseasons-server.toml


示例:通过配置文件调整实体生成      
被模组【盖亚魔典4 Grimoire of Gaia 4】中的可爱萌妹怪物追着满世界跑?修改配置文件即可减少特定实体的生成


grimoireofgaia-spawning.toml


▌物品标签修改
l  使用Mod 【KubeJS】可以为物品添加标签,许多模组依赖标签提供兼容性
详细教程见Wudji大佬的 [SCT]KubeJS魔改教程(Minecraft 1.16.5-1.18.2)
l  此外,物品标签还可以用于合成表,许多模组都使用物品标签添加合成表

示例:通过物品标签调整Mod兼容性
模组【水源EXWater Source EX】提供了用于模组兼容性的物品标签tag:items:forge:watersourceex:water_level_X。如图是使用该标签为模组【农夫乐事Farmer's Delight】中的食物添加水分值


ws_farmers_delight.js


示例:通过物品标签添加合成表

通过添加标签 tag:items:forge:meats使模组【Gnumus Settlement】添加的多汁肉可以被其他模组的合成表识别


多汁肉


▌合成表修改
l  使用Mod【CraftTweaker】可以修改合成表,并且兼容大部分Mod添加的合成途径,例如热力系列、通用机械等模组的机器、农夫乐事的锅和砧板
l 不同版本的【CraftTweaker】脚本会有区别,使用/ct examples 命令可以导出可用的范例
l  部分Mod的合成表可以使用数据包修改

示例:通过【CraftTweaker】修改合成表
添加配方使原版的陶瓦(items:minecraft:terracotta)可以在【热力系列Thermal Series】的磨粉机中加工成【黏土不再制衡Clay No More Balanced】的陶瓦粉

陶瓦粉


示例:使用数据包修改合成表
对于一个科技整合包来说,【MrCrayfish的枪MrCrayfish's Gun Mod】及其附属中的枪械合成太过廉价了?使用数据包可以修改它们的合成表,如图是修改附属Mod【Apex 枪械工艺Apex Guns】的配方(我这里比较懒就在Mod的data文件中修改了,原理是一样的,回头我去研究下mod内置数据包的优先级,自制一个数据包进行修改更规范)


Kraber



craft_kraber.json


▌实体生成控制

l  除了薛定谔的配置文件,使用【InControl!】等Mod 可以自定义实体的生成,功能强大,需要一点学习成本

l  其他更轻量的选择有【Bad Mobs】、【Baddie Mobs UwU】等模组,可以移除自然生成的生物
示例:使用【InControl!】手动生成实体
在整合包中【腐烂生物Rotten Creatures】的生物无法生成,但我真的很喜欢这个Mod,于是我决定手动生成他们!使用 spawner.json添加生成并在spawn.json中添加控制条件即可,如图是在Mod【悠然一派Atmospheric】添加的雨林盆地 (Rainforest Basin)群系中手动生成的【腐烂生物Rotten Creatures】中的沼泽僵尸(Swampy)


Swampy



spawner.json



spawn.json


示例:使用【In Control!】控制实体生成上限
在整合包中【Lil' Wings】模组添加的蝴蝶有时会过量生成?在spawn.json中添加一个简单的数量上限控制即可


spawn.json


▌实体属性修改
l  你可以在很多Mod的配置文件中直接修改实体属性,例如生命值、攻击力
l  使用【Mobifier】Mod可以自定义实体的属性、战利品表
l  此外,使用【InControl!】Mod也可以修改实体的战利品表和经验掉落
l  一个轻量化的选择是【可配置的额外怪物掉落Configurable Extra Mob Drops】,可以直接使用指令添加掉落物
l  使用【More MobGriefing Options】
Mod 可以独立调整实体的方块破坏权限
示例:使用【Mobifier】修改实体属性
【生于混沌Born in Chaos】模组添加的潜伏者 (Nightmare Stalker)高血量高攻击,自带隐身,攻击还致盲,实在太超模了?使用【Mobifier】减慢一下它的移速不过分吧!


mobifier.json


示例:使用【可配置的额外怪物掉落Configurable Extra Mob Drops】添加掉落
【苦力怕革新Creeper Overhaul】Mod添加的沙滩苦力怕现在会掉落【残暴与掠夺Savage & Ravage】Mod中的苦力怕孢子 (Creeper Spores)


苦力怕孢子


▌地形生成控制
l  使用【生物群系修改器BiomeTweaker】Mod可以改变生物群系的基本属性(类型、温度等)、创建新生物群系、删除部分已有的生物群系、调整/添加或完全移除现有的装饰和特征、移除或增加敌对生物生成、替换它们在生成过程中产生的任何方块
……这部分内容楼主还在学习中


▌自定义结构生成和战利品表
……这部分内容楼主还在学习中

▌数据包
l  详见ruhuasiyu大佬的【1.13-1.18】Minecraft 原版模组(数据包)入门教程
l  许多模组的兼容性需要通过自制数据包实现

l  你可以使用数据包修改模组添加的地牢的战利品表
……这部分内容楼主还在学习中

示例:使用数据包兼容Mod【懒人厨房Cooking for Blockheads】和【作物盛景Croptopia】
自力更生!让懒人厨房补充现有 mod 或支持其他 mod 原来如此简单!

示例:使用数据包兼容Mod【更真实的钓鱼Fishing Real】和【水产品2 Aquaculture 2】
其他MOD鱼类兼容真实钓鱼 以水产养殖2为例

示例:使用数据包兼容Mod【Shield Expansion】和【蜜蜂领域The Bumblezone】
如图,通过数据包可以给【蜜蜂领域The Bumblezone】中的蜂蜜结晶盾牌添加【Shield Expansion】的属性


蜂蜜结晶盾



honey_crystal_shield.json


▌特殊的自定义修改
示例:修改Mod文件改变【海灵物语 Aquamirae】的地形生成
详见理想国Utopia帖子中的【海灵物语 Aquamirae 地形设置】


示例:修改Mod文件改变【凡家物语:重生MCA Reborn】的村民发色/肤色
MCAR村民肤色改版色卡及安装教程

示例:修改Mod文件去除【William Wythers' OverhauledOverworld】添加的部分群系中的粒子效果

本质上也是修改数据包内容


icy_ocean.json


▌音效/视觉添加
l 使用【Dynamic Surroundings Resurrected】、【脚步声Forge版Presence Footsteps (Forge)】等mod添加更多音效
l 使用【更好的树叶重制版Better Foliage Renewed】、【可视性:重铸Visuality: Reforged】等mod优化视觉效果
使用【Infinite Music】、【Charmonium】等Mod修改背景音乐间隔/添加背景音乐
……这部分内容楼主还在学习中


▌游戏崩溃了?

“Whoset us up the TNT?”

——Minecraft Crash Report



▌定位报错原因
如果你的整合包频繁报错,请确认Java版本Mod API版本光影核心是否兼容
重启游戏
l  这是为了帮助你定位问题,给你一些可能的线索,甚至直接定位问题本身。崩溃是如何发生的?你是否靠近了某个Mod生成的结构,或是和特定实体交互?
l  此外,有些崩溃是极小概率的突发事件。如果你不能重现它,那就当它不存在。


▌查看崩溃报告
众所周知,崩溃报告就是让人看了崩溃的报告。你可以尝试在其中寻找熟悉的Mod/物品名称,或者挑一些看起来比较关键的段落在搜索引擎中搜索。当然,在Mod问答区发个悬赏贴总是没错的,说不定就有路过的大佬前来解围!
l  有时MC本体会直接显示崩溃原因,一般是缺少前置Mod/前置版本不符合要求等,根据提示操作即可解决
l  崩溃报告保存在.minecraft\crash-reports中,你也可以使用启动器导出错误报告

l  有时启动器会提示一些崩溃的关键词,你可以用这些关键词进行检索确定相关的Mod。不过有时启动器提示崩溃的关键词具有误导性,示例中就给出了我自己遇到的一个问题。

教程:如何查看MC的崩溃报告

”正如酒石酸所说:发生崩溃时如果找不到崩溃报告,就说“我崩溃了怎么办”,还不如上街找个算命先生算算为什么崩溃好些。“

——森林蝙蝠


l  教程:如何看懂Minecraft报错的关键信息

”Minecraft这个游戏,各种BUG和解决方案如果写成一堆不重复的书,摞起来的厚度可以比姚明还高。所以这个游戏不是一般的神奇,尤其是当你在看崩溃报告的时,你更会体验到这一点。“

——晚餐骨Dinnerbone


示例:根据崩溃报告关键词搜索解决问题
这是我在论坛发过的一个帖子(附带错误报告文件)。是在雪原跑图时突发的崩溃,启动器提示和【铷Rubidium】相关。全文为数不多能大概看懂的东西就是标出来的这一句,而用这一句在搜索引擎中居然找到了解决办法!



crash-2023-04-12_09.33.38-client.txt



Oculus/issues/187


示例:根据崩溃报告和经验定位问题
这个崩溃发生在我删除了Mod【地下城生物Dungeons Mobs】之后,无法进入游戏,所以我非常肯定这个崩溃和【地下城生物Dungeons Mobs】有关。查看错误报告后发现还和【Mobifier】相关。【Mobifier】是一个修改实体属性的Mod,而【地下城生物Dungeons Mobs】也和实体相关,结合“not a valid id inregistry”等信息推测可能是【Mobifier】注册了【地下城生物Dungeons Mobs】相关信息导致。删除【Mobifier】的config文件后即可正常进入游戏。

crash-2023-05-31_22.41.27-client.txt


示例:启动器提示关键词的误导性
这个崩溃发生在添加新Mod后,无法进入游戏。启动器提示和“OreCruncher”相关,定位到Mod【Dynamic SurroundingsResurrected】,删除该Mod后MC本体提示缺少前置,安装前置模组后可正常进入游戏。此时再安装【Dynamic SurroundingsResurrected】也不会有问题。查看崩溃报告可以看到只是缺少前置,不知为什么会提示和“OreCruncher”相关。


关键词提示



MC本体信息



crash-2023-06-05_01.39.41-fml.txt


▌特殊的数据包写入问题
示例:这个问题出现在删除Mod【热带世界Tropicraft】后。表现为无法进入之前的存档,弹出安全警告,且无法点击修复按钮。此外,创建新的世界会提示数据包损坏。目前已知的解决办法是重现下载游戏,重现安装一遍Mod。似乎Mod【泛古洋Panthalassa】也存在同样的问题。可能是模组硬写入了数据包导致,有了解的大佬可以说一下。


▌游戏出Bug了?
注:这里的Bug指一些不影响游戏运行的问题以和“崩溃”做出区分
▌Bug定位
l  控制变量法:精确定位一个Bug
很多 Bug一眼就可以看出原因,例如在你新加入了一个Mod后的测试中发现的Bug大概率和你最后加入的那些Mod有关,修改玩家模型的Mod相互之间不兼容也很正常。不过有些Bug的仍然需要一些额外的测试
示例:整合包测试时发现【火炬大师Torchmaster】 模组添加的巨型火把 (Mega Torch)无法阻止【incontrol!】Mod 生成敌对生物。
为了确认这个问题,在仅存在这两个Mod的测试版本中重现这一问题。使用【incontrol!】Mod 添加原版生物生成条件进行测试,发现当使用了spwn.json 中的生成条件时,生成的生物不受巨型火把的影响

示例:使用【KubeJS】隐藏【JEI物品管理器Just Enough Items】中【通用机械Mekanism】的物品无效
当你确认了代码没有问题但这个改动却没有生效,你可以使用相同的代码隐藏原版/其他Mod物品,如果改动正常生效了,那么很可能是这两个Mod的兼容性问题。同理,在其他Mod脚本的编写中,你也应当这样测试来确保你的代码没有问题。许多Mod例如【CraftTweaker】、【KubeJS】都内置/在官网/Wiki/Github 提供了范例,可以直接用于测试

l  二分法:适用于某些无法直接确定Bug原因的情况
首先加入1/2的Mod进行测试,确认Bug未出现后加入剩余模组中1/2的Mod,重复这一过程直到复现特定Bug,最后加入的模组则很有可能相关。(有时会由和之前的模组冲突导致,这种需要结合控制变量法进行额外测试)示例:在加入大量Mod后发现无法生成terrablender 相关的所有地形并不知道是哪一个模组导致的,使用二分法分批测试可以快速定位冲突的模组
示例:测试整合包时发现卫道士无法攻击玩家
只能怀疑是某个模组修改怪物AI/攻击动画时出了问题,一个一个模组检查是不现实的。新建一个游戏版本,分批加入Mod来测试这个问题

▌Bug解决

l  部分Bug(例如实体生成问题、合成表错误)可以通过【InControl!】、【CraftTweaker】等自定义Mod解决,但很多其他类型的Bug很难由整合包作者解决(例如地形生成错误,实体动画缺失),你只能忍痛暂时放弃一些Mod

l  你可以在论坛Mod问答区发帖求助

l  精确定位的问题应该向Mod作者反馈

在Github上提交issue之前,建议首先在Github/Curseforge/Discord上询问模组作者以及查看现有issues/comments/replies 以免重复提交


Issues


▌整合包优化
优化是为了可以提高游玩体验!
性能优化
l  许多模组可以提高帧数、减少内存占用,不过应当注意测试其兼容性,尤其是当安装了光影核心时
l  【Lightspeed】等模组可以极大地加快大型整合包的载入速度
l  【星光Starlight】等模组可以提高FPS(需要更多测试)

……这部分内容楼主还在学习中(高版本optifine环境下好用的优化模组似乎并不多)

▌备份存档
l  使用【FTB备份2FTB Backups 2】、【Textile备份Textile Backup】等模组来自动创建存档备份。这对处于测试阶段的整合包更为重要,没人希望自己的存档应为某个恶性Bug坏档
l  使用【存档置顶Cherished Worlds】等mod来防止你不小心删了重要存档


▌平衡性优化
你应当对整合包的平衡性进行控制:如果你的整合包偏向冒险,那么玩家不应该在游戏初期很容易获得一套毕业装备。如果偏向养老,那么新手玩家不应该被强力的怪物千里追杀。此外,你还可以一些手段来引导玩家体验更多整合包里的内容。
当然,平衡性调整是一个很复杂的过程,也不可能让所有人满意,放轻松
l  关于物品的平衡性
禁用某些不符合整合包基调的物品,例如过于超模的装备(当然你也可以调整它们的获得方式)和不需要的东西
示例:使用【CraftTweaker】禁用冗余物品
注:你还可以结合【KubeJS】来隐藏JEI中的项目,详细教程见Wudji大佬的[SCT]KubeJS魔改教程(Minecraft 1.16.5-1.18.2)
仅仅只要一行简单的代码!

Utopia_bans.zs


示例:批量删除合成表
在进行此类操作之前查看模组作者的相关申明/申请许可
当你非常需要/喜欢某个模组中的特定内容/物品贴图,但该模组中的其他部分和你的整合包风格并不相符时,手动删除合成配方是非常繁琐的,你可以删除Mod文件中的所有合成表,再自行添加需要的部分。一般位于mods\模组文件\data\redstone_arsenal\recipes中(其实也是数据包)

mods\[G]redstone_arsenal-1.18.2-6.2.0.13.jar\data\redstone_arsenal\recipes


示例:修改地牢等结构中的战利品表
……这部分内容楼主还在学习中

l  关于实体的平衡性
示例:见前文【自定义设置】部分

l  鼓励玩家体验整合包内容
示例:鼓励玩家使用轨道交通系统
通过禁用野外及联动模组中指路石的生成、修改传送道具的合成表来增加传送成本从而鼓励玩家使用轨道交通系统

Recall


▌制作游戏内教程
一个好的整合包最好包含游戏内的新手指引,教程也利于引导玩家体验整合包的更多内容
l 很多时候,【JEI物品管理器Just Enough Items】就是最好的新手教程,可以方便玩家查看各种合成表,同时看看整合包安装了哪些Mod(当然,这也是整合包作者必备的Mod之一)
l  【FTB任务FTB Quests】,最常用的任务/指引模组,你还可以用它实现游戏内商店等功能


地球2.0整合包的任务界面


……这部分内容楼主还在学习中

▌添加汉化
注:有时添加汉化反而会不方便整合包作者,方块/实体名会显示为中文,你可能需要一些额外的设置来显示更多信息
l  使用【自动汉化更新I18nUpdateMod】自动安装汉化文件!
l  使用【游戏中中文输入法冲突修复InputMethodBlocker】等Mod在游戏内输入中文(支持JEI的搜索框)
l  如果有需要还可以安装【通用拼音搜索Just Enough Characters】
l  此外,有时还需要自行制作/手动添加lang文件

l  最新版Mod的汉化文件经常出错(例如名称出现乱码),你可以删除/修改lang文件夹中的汉化文件来使用默认的语言文件/修复这个问题
……这部分内容楼主还在学习中


▌导出整合包
【整合包发布版】关于主版块整合均须不含MC本体的通知
当然,导出的整合包体积更小,上传下载都更方便
详见天明遥遥大佬的整合包使用和制作入门贴



单机整合包制作教程和经验分享的评论 (共 条)

分享到微博请遵守国家法律