S.Priscilla
本帖最后由 S.Priscilla 于 2023-6-5 06:35 编辑

单机整合包制作教程和经验分享
▌经验分享>教程,有不对/不全的地方请大家指正/补充。目前接触的主要是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 APIl  详见天明遥遥大佬的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百科Curseforgel  注意很多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  新建生存模式存档开始游玩测试


▌自定义整合包内容
整合意味着你并不是单纯的下载了一堆Mod放在一起,你需要对整合包的兼容性和平衡性做出调整!
▌配置文件
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

▌游戏崩溃了?
“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。不过有时启动器提示崩溃的关键词具有误导性,示例中就给出了我自己遇到的一个问题。
l 教程:如何查看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的精确定位仍然需要一些额外的测试
示例:整合包测试时发现【火炬大师Torchmaster】 模组添加的巨型火把 (Mega Torch)无法阻止【incontrol!】Mod 生成敌对生物。为了确认这个问题,在仅存在这两个Mod的测试版本中重现这一问题。

l  二分法:适用于某些无法直接确定Bug原因的情况
示例:在加入大量Mod后发现无法生成terrablender 相关的所有地形,但并不知道是哪一个模组导致的,使用二分法分批测试可以快速定位冲突的模组

▌Bug解决l  部分Bug(例如实体生成问题、合成表错误)可以通过【InControl!】、【CraftTweaker】等Mod解决,但很多其他类型的Bug很难由整合包作者解决(例如地形生成错误,实体动画缺失)l  你可以在论坛Mod问答区发帖求助
l  精确定位的问题应该向Mod作者反馈。在Github上提交issue之前,建议首先在Github/Curseforge/Discord上询问模组作者以及查看现有issues/comments/replies 以免重复提交








Issues
▌性能优化
l  许多模组可以提高帧数、减少内存占用,不过应当注意测试其兼容性,尤其是当安装了光影核心时
l  【Lightspeed】等模组可以极大地加快大型整合包的载入速度
·这部分内容楼主还在学习中

▌关于汉化
l  【自动汉化更新I18nUpdateMod】
l  【游戏中中文输入法冲突修复InputMethodBlocker】
l  如果有需要还可以安装【通用拼音搜索Just Enough Characters】
l  此外,有时还需要自行制作/添加lang文件,例如最新版Mod的汉化文件经常出错
……这部分内容楼主还在学习中

▌制作游戏内教程
一个好的整合包还应当有适当的新手指引,引导玩家探索MC的世界
l  【FTB任务FTB Quests】
……这部分内容楼主还在学习中


▌导出整合包
见天明遥遥大佬的整合包使用和制作入门贴

第一页 上一页 下一页 最后一页