森罗万象
教程
OptiFine文档
Blockbench文档
论坛版 (opens new window)
下载示例 (opens new window)
教程
OptiFine文档
Blockbench文档
论坛版 (opens new window)
下载示例 (opens new window)
  • 属性文件说明
    • 概述丨Overview
    • 纹理丨Textures
    • 方块丨Blocks
    • 物品丨Items
    • 生物群系丨Biomes
    • 混合方法丨Blending methods
    • 数字列表丨Number lists
    • RGB颜色丨RGB colors
    • 参考文献丨References
  • 连接纹理
  • 自然纹理
  • 更好的草地
  • 自定义方块渲染
  • 自定义物品纹理
  • 随机实体纹理
  • 自定义实体模型
  • 自定义动画
  • 自定义颜色
  • 自定义天空
  • 自发光纹理
  • 动态光源
  • 自定义载入画面
  • 自定义GUI
  • 自定义全景图
  • 高清字体
  • 系统属性
  • 纹理属性
  • 光影

  • 调试快捷键
  • 尚未完成的事

属性文件说明

Properties Files

# 概述丨Overview

OptiFine的许多功能需要用到属性文件(Properties Files),它们控制 OptiFine 调用资源包中的图片。

属性文件是与 Windows 的 ".ini" 格式相似的简单文本文件,它的文件扩展名为 properties。除了注释行之外,文件中的每一行都表示一个属性,格式为 "属性名=值"。

译注:建议使用 notepad++ 之类的代码编辑器来编辑属性文件,确认编码为UTF-8格式,不建议使用记事本。

# 这里是一个注释
属性1=值
属性2=某个其他值

# 属性文件是可以空行的
属性3=另一个其他值

所有属性名都区分大小写,例如 "renderpass" 与 "renderPass" 是不相同的。 同一个文件中,属性排列的顺序没有影响。 许多属性有默认值,你可以省略它们,而有些情况下你甚至不必使用属性文件。详见每个属性文件的各个小节。

很多属性文件中有一些相同类型的属性。下面对它们作出说明,在其余章节中就不再赘述了。

# 纹理丨Textures

OptiFine 常常会要求你填写一个路径,指向某个图形文件或者其他资源。这指的是纹理包的 zip 文件(或者文件夹)中的路径。

纹理包中的文件夹结构可以多层嵌套。所以 OptiFine 提供了一些便捷的方法来简化操作。 如果OptiFine要求你提供一个文件路径,你可以使用下列任意一种方法:

直接的方法是指出文件相对于 assets/minecraft 的路径:

# 完整路径
texture=textures/entity/creeper/creeper.png

这表示在纹理包的 zip 文件或文件夹中的 "assets/minecraft/textures/entity/creeper/creeper.png"。

请始终使用斜杠 "/" 分隔文件夹。无论你的操作系统是什么,都不要使用反斜杠 "\",否则 OptiFine 将无法正确识别路径。


你可以添加一个 "命名空间(namespace)" 前缀。下面的例子表示和上例完全一样的 "creeper.png" :

# 带有命名空间的完整路径
texture=minecraft:textures/entity/creeper/creeper.png

模组的命名空间通常不是 "minecraft",在这种情况下你必须写出命名空间:

# 带有模组命名空间的完整路径
texture=herobrine:textures/entity/him.png

这表示 "assets/herobrine/textures/entity/him.png",而不是 "assets/minecraft/textures/entity/him.png"。


仅用于 OptiFine 的纹理应该放在 "assets/minecraft/optifine" 文件夹中。 由于被频繁使用,它可以被波浪号 "~" 表示。

下面两个表示同一文件:

# 相对于 "assets/minecraft/optifine"
texture=~/dial/clock0.png
texture=minecraft:optifine/dial/clock0.png

注意

在1.12之前的版本中,~表示mcpatcher文件夹,下面不再赘述。


也可以使用属性文件的相对路径。

例如,在 "~/dial/clock.properties" 中(记住 "~" = "assets/minecraft/optifine")

# 相对路径: 没有斜线的单独文件名
texture=clock0.png
# 相对路径: 使用 "./" 来表示当前目录
texture=./clock0.png
# 绝对路径: 使用 "~"
texture=~/dial/clock0.png
# 绝对路径: 无命名空间
texture=optifine/dial/clock0.png
# 绝对路径: 有命名空间
texture=minecraft:optifine/dial/clock0.png

上面四个都表示同一个路径:"assets/minecraft/optifine/dial/clock0.png"。

如果属性文件在另一个位置,例如 ~/misc,那么相对路径将基于该文件夹,但是绝对路径仍然指向dial文件夹。

总而言之,请尽量把属性文件和它所用到的纹理放在同一个路径下。你需要写的路径会更短,当你需要移动文件时,也更容易维持结构。

# 方块丨Blocks

从1.7开始,Minecraft可以用字符串ID表示方块。从1.13起方块的数字ID被移除,只能使用字符串ID。

虽然数字ID仍然存在于游戏内部,但由于它们不稳定,所以不能在配置文件中使用。(译注:1.13版本前可以,用法参考 conquest 之类的资源包)

例如,以前你可以用1指代石头方块,但现在你得用 "minecraft:stone"。和纹理一样,前缀 "minecraft:" 是可省略的,所以只有 "stone" 也是可以的。模组的命名空间并非 "minecraft",在这种情况下需要前缀。参阅Dinnerbone的方块、物品ID和名称列表 (opens new window)。

在1.13中,许多有复杂变体的方块被 "扁平化" 为几个简单方块,方块的元数据(metadata)被删除。参阅Minecraft Wiki 的有关条目 (opens new window)。

方块名的格式为 "<命名空间:>名称<:属性1=值1,...:属性2=值1,...>"。 尖角括号 "<>" 中为可选部分。默认命名空间为 "minecraft"。

# 简称
blocks=oak_stairs

# 完整名称
blocks=minecraft:oak_stairs

# 模组方块要求使用带命名空间的完整名称
blocks=botania:crate

# 属性
blocks=minecraft:oak_stairs:facing=east,west:half=bottom

前缀 "minecraft:" 是可省略的,所以这也可以写为:

# 属性
blocks=oak_stairs:facing=east,west:half=bottom

# 物品丨Items

从1.7开始物品可以用名称(字符串ID)表示。 参阅Dinnerbone的方块、物品ID和名称列表 (opens new window)。

从1.13开始物品只能用名称(字符串ID)表示。 参阅Minecraft Wiki 的有关条目 (opens new window)。

重申,前缀 "minecraft:" 是可省略的。

# 生物群系丨Biomes

需要列出生物群系时,请使用Minecraft wiki (opens new window)给出的名称。 也可以使用由模组添加的生物群系。

# 生物群系简称
biomes=ocean deep_ocean river beach
# 生物群系全称
biomes=minecraft:ocean biomesoplenty:highland

从1.13起,许多生物群系被重命名了。 参阅Minecraft Wiki 的有关条目 (opens new window)。

# 混合方法丨Blending methods

当两个或多个纹理组合在一起时,OptiFine提供了几种混合方法。

下面描述了有效的混合方法。"当前纹理" 表示正在使用这个混合方法的纹理。 "原纹理" 表示到目前为止已经渲染出的东西,可能是原始的纹理,也可能是之前的混合操作得到的结果。

混合方法 效果
replace 用当前纹理完全替换原纹理。没有任何混合,只有透明与不透明的选项。
alpha 按照当前纹理的透明度混合纹理。这是最常见的混合方法。
overlay RGB 值大于0.5 时,会使原图片变亮,小于0.5时变暗。这个方法别名为color。
add 将当前纹理的RGB值乘alpha值,将所得的结果加到原纹理上。
subtract 从原纹理减去当前纹理的RGB值。
multiply 将当前纹理和原纹理的RGB值相乘。
dodge 将当前纹理的RGB值直接加到原纹理上。
burn 新RGB = (1 - 当前RGB) * 原RGB
screen 新RGB = 1 - (1 - 当前RGB) * (1 - 原RGB)

你可以从维基百科的Blend modes词条 (opens new window)获取一些参考图片。

# 数字列表丨Number lists

有时你需要填写一个数字列表。OptiFine可以识别范围和单个数值:

# 单个数值
list=1
# 分别列出的多个数值
list=1 2 3
# 用范围表示的相同数值
list=1-3
# 多个范围
list=1-3 6 8 10-15

# 从1.18开始高度可以使用负值。用于范围时需要用括号括起来。

# 单个数值
list=-1
# 分别列出的多个数值
list=-3 -2 -1
# 用范围表示的相同数值
list=(-3)-(-1)
# 多个范围
list=(-3)-(-1) 6 8 (-10)-15

# RGB颜色丨RGB colors

颜色可以用16进制RGB值表示:

# 白色
color=ffffff
# 黑色
color=000000
# 红色
color=ff0000
# 绿色
color=00ff00
# 蓝色
color=0000ff

# 参考文献丨References

  1. https://bitbucket.org/prupe/mcpatcher/wiki/About_Properties_Files (opens new window)
  2. http://media.dinnerbone.com/uploads/2013-09/files/28_00-44-23_YfmAkomVI.txt (opens new window)
  3. http://www.minecraftforum.net/forums/mapping-and-modding/resource-packs/1226351-1?comment=11315 (opens new window)
  4. http://www.minecraftforum.net/forums/mapping-and-modding/resource-packs/1226351-1?comment=11128 (opens new window)
  5. https://minecraft.gamepedia.com/1.13/Flattening (opens new window)

连接纹理 →