适用于 mcsr:使用 mods.tildejustin.dev
如果您正在寻找适用于常规 Fabric(而非 Ornithe)且版本为 1.14 至 1.15.2 的 OptiFabric,请查看 OptiFabric Origins
旧版 OptiFabric
适用于 Legacy Fabric (1.3.1-1.13.2) 和 Ornithe (b1.7.3-1.14.4) 的 OptiFabric
- Legacy Fabric 安装程序和官方 MultiMC 实例:https://legacyfabric.net/downloads.html
- Ornithe 安装程序(可生成 MultiMC 实例):https://ornithemc.net
- 适用于 Ornithe 和 Legacy Fabric 的合法速通 MultiMC 实例(原版 LWJGL,无额外库或模组):Minecraft-Java-Edition-Speedrunning/legacy-fabric-instance-generator/releases
基于 RedLime 的 OptiFabric-Pre1.14 的工作,该项目是 hYdos 的 OptiFabric 1.8.9 的一个分支,而后者又是 modmuss 最初的 OptiFabric 的衍生作品。
安装
此模组需要在 mods 文件夹中同时放置 optifine jar 文件和 optifabric。对于 1.7.2 及更高版本,可以从 OptiFine 官方网站 获取;对于更旧的版本,可以从 SpeedyCube64 的 Pre-1.9 Optifine 归档 或 OptiFine 历史线程 中检索。
工作原理
此模组使用 Minecraft-Java-Edition-Speedrunning/fabric-asm,它是 Cat Core 的 Fabric-ASM/no-guava 的一个轻微衍生版本,而后者本身又是 Chocohead 的 fabric-asm 的更新版本。fabric asm 允许更极端的 asm 修改,所使用的分支不依赖于 guava 或 apache commons,而这些库在较旧的 Minecraft 版本中并未提供。
步骤
- 模组会在当前的 mods 文件夹中查找 optifine 安装程序、模组 jar 文件或 zip 文件。
- 如果找到安装程序 jar 文件,它会在其自己的临时类加载器中运行提取任务。
- optifine 模组 jar 是一组需要替换 Minecraft 所提供类的类文件。
- optifine 的替换类更改了一些 lambda 方法的名称,因此它会很好地猜测旧名称(使用原始的 Minecraft jar 文件)。
- 将 optifine 重映射到 intermediary。
- 移出击打过补丁的类,因为它们在类路径中出现两次不会有什么好处。
- 将 optifine 添加到类路径中。
- 为每个需要替换的类注册补丁调整器(tweaker)。
- 用提取出的类替换目标类,同时对其进行一些额外的修复,并将其设为 public(由于访问权限问题)。
- 希望它能正常工作。
注意事项
- 此模组在开发环境或命名环境中实际上无法工作。就 Legacy Fabric 而言,yarn 构建在某些版本中已损坏,因此目前无法工作;feather 更好一些,但仍存在问题。
- accessWideners 是基于 tiny remapper 的 checkPackageAccess 选项的输出创建的,但它们不太可能达到 100% 完整。如果您遇到与无效访问相关的崩溃,请报告该问题,或许能够修复。
类排除器
这是一个偶尔有用的隐藏功能,用于在重映射 jar 时移除文件。为此,它会读取 .minecraft/config/ 中的 optifabric-excluded-classes.json 文件(如果存在),并期望该文件包含一个映射关系:将版本(字段名)映射到可移除类(或纹理或其他任何内容,本质上只是文件名)的数组。
下面提供了一个示例文件内容,用于恢复 1.3.2 Light 版本中分析器(profiler)的移除操作。如果您尝试为其创建排除条目的 optifine 版本已在您的实例中加载过,请删除 .minecraft 中 .optifine 文件夹内的对应文件夹,以强制重新缓存。
{
"OptiFine_1.3.2_L_B2": [
"ik.class"
]
}
选择礼物
使用社区积分,为喜欢的作品送上一份支持
打赏记录
感谢每一位送出礼物的社区成员


