森罗万象
教程
OptiFine文档
Blockbench文档
论坛版 (opens new window)
下载示例 (opens new window)
教程
OptiFine文档
Blockbench文档
论坛版 (opens new window)
下载示例 (opens new window)
  • 属性文件说明
  • 连接纹理
    • CTM丨Connected Textures mod
    • 公共属性丨General properties
    • 标准CTM方法丨Standard 8-way connected textures
    • 简化CTM方法丨Compact 8-way connected textures
    • 有特例的简化CTM方法丨Compact 8-way connected textures with special cases
    • 水平连接纹理丨Horizontal-only connected textures
    • 垂直连接纹理丨Vertical-only connected textures
    • 顶部连接纹理丨Top connected textures
    • 随机纹理丨Random textures
    • 重复图案纹理丨Repeat pattern textures
    • 固定纹理丨Fixed textures
    • 覆盖纹理丨Overlay textures
  • 自然纹理
  • 更好的草地
  • 自定义方块渲染
  • 自定义物品纹理
  • 随机实体纹理
  • 自定义实体模型
  • 自定义动画
  • 自定义颜色
  • 自定义天空
  • 自发光纹理
  • 动态光源
  • 自定义载入画面
  • 自定义GUI
  • 自定义全景图
  • 高清字体
  • 系统属性
  • 纹理属性
  • 光影

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

连接纹理

Connected Textures

# CTM丨Connected Textures mod

连接纹理,原先是 MCPatcher 的功能,它提供了一系列连接方块纹理的方法。

如果你想要某个方块(block)或者图块(tile)覆盖上连接纹理或者随机纹理,请在纹理包的optifine/ctm文件夹下新建一个后缀为 .properties 的文件。属性(properties)文件可以放在 optifine/ctm 的任意一层子文件夹下。

译注:这里所谓的 "图块(tile)" 指的就是 assets 里面的一张张图片,虽然译名标准化 (opens new window)里 tile 是不翻译的,但是 tile 在某些情境下可以翻译成"方块",为了避免混淆,还是按照感觉给出个译名。

针对不同需求和限制,可以使用不同的连接方块纹理的方法。下面将介绍如何使用每种方法。

注意

所有属性名称都区分大小写。除非另有说明,否则所有的路径都相对于assets/minecraft。

# 公共属性丨General properties

(可选)列出这个方法所应用于的方块/图块

同一个方块/图块可以有多个属性文件,它们会按照文件名的字母顺序依次加载。所有用于图块的属性文件会在用于方块的属性文件之前被检测,第一个匹配的属性文件会被加载。

matchTiles=<需要匹配的图块列表>

要表示原版mc中的图块,只需要使用它在 textures/block 中的文件名:

matchTiles=dirt

要表示模组添加的图块,你需要知道模组的名字:

matchTiles=botania:blazeblock

译注:我使用1.12版本似乎测试出了不一样的结论,如果你用这种格式出现错误,请尝试 modid:blocks/......

一个CTM规则输出的图块还可以被另一个规则匹配。 图块名称就是指向图块的完整路径。

matchTiles=optifine/ctm/mygrass/1.png

方块格式 (<>内为可选部分):

<命名空间:>名称<:属性1=值1,值2...:属性2=值1,值2...>

例如:

简称: oak_stairs

全名: minecraft:oak_stairs

名称+属性: minecraft:oak_stairs:facing=east,west:half=bottom

matchBlocks=<方块列表 + 可选属性>

如果可以从文件名判断这两个属性,则可以省略它们:

如果文件名为 optifine/ctm/xxx/<name>.properties,则默认 matchTiles=<name>

如果文件名为 optifine/ctm/xxx/block_<name>.properties,则默认 matchBlocks=<name>

除非你明确指定了属性的值。

(可选)metadata

限制匹配的方块的metadata,可以是 0 到 31 的任意值。仅限 1.13 之前的版本。

译注:方块的metadata最高为16,不清楚这里可以到31的原因。

metadata=<metadata 列表>

(可选)权重

如果多个属性文件匹配相同的方块,会使用拥有最大权重的属性文件。如果权重相同,会接着比较属性文件名。

默认的权重为0。

译注:这个属性可能已经没用了,我查看了1.15.2版本的 OptiFine 源码,属性文件解析器根本不会解析weight属性。(已被sp614x承认 (opens new window))

weight=<整数>

(必需)替换纹理的方法

可选的方法:

ctm: 标准ctm方法(例如原始的ctm玻璃),使用47个图块

ctm_compact: 简化ctm方法,使用5个图块

horizontal: 只连接到侧面的方块(例如书架)

vertical: 只连接到上方和下方的方块

horizontal+vertical: 优先水平连接,无法水平连接时才垂直连接

vertical+horizontal: 优先垂直连接,无法垂直连接时才水平连接

top: 仅连接到上方的方块(例如砂岩)

random: 随机选择图块

repeat: 大面积重复固定的图案

fixed: 使用单个固定图块。相当于只设置一个图块的随机

overlay: 用于方块间过渡的覆盖层,使用17个图块

overlay_ctm: 方法 "ctm" 的 overlay 变体

overlay_random: 方法 "random" 的 overlay 变体

overlay_repeat: 方法 "repeat" 的 overlay 变体

overlay_fixed: 方法 "fixed" 的 overlay 变体

如果overlay方法的处理顺序在其他方法之前,则可以将它们与其他方法组合在一起。(按照字母顺序)

方法 "ctm_compact" 和任何 overlay 方法都不兼容。

method=<方法名>

(必需)图块列表

就像方块和物品纹理。每一个图块必须是一张独立的图片, 可以用以下几种格式来表示图块:

0 -> 0.png

8-11 -> 8.png, 9.png, 10.png, 11.png

name -> 文件名.png

name.png -> 文件名.png

<skip> -> 跳过图块,继续使用下一个CTM属性

<default> -> 对方块/图块使用默认纹理

full/path/name.png -> 完整路径/文件名.png

除了最后一种格式,png文件必须和属性文件在同一个根目录下。

这些格式可以混合搭配,例如:

tiles=0-4 5 some/other/name.png

对于要跳过的空图块,overlay 方法可以使用特殊的名称 "<skip>",但不能使用图块名称 "<default>"。

tiles=<图块列表>

(可选)连接类型

即连接到毗邻方块的条件,告诉游戏在什么情况下应该连接两个方块的纹理。

block: 当这个方块的id = 相邻方块的id时连接

tile: 当这个方块的图块 = 相邻方块的图块时连接

material: 当这个方块的材料(stone, dirt, etc.)= 相邻方块的材料时连接

state: 当方块状态(block + properties)= 相邻方块的状态时连接

用于方块的属性文件默认为 block;用于图块的属性文件默认为 tile。

connect=<block | tile | material | state>

(可选)面

将方法的作用范围限制在方块确定的面。

bottom: 底面 (负y)

top: 顶面 (正y)

north: 北面 (负z)

south: 南面 (正z)

east: 东面 (正x)

west: 西面 (负x)

sides: "东面 西面 南面 北面" 的总称

all: 所有面

不规则方块会忽视这个属性。

faces=<以下的组合: north south east west top bottom sides all>

(可选)生物群系和高度范围

限定生物群系或高度范围。

这里 (opens new window)列出了原版生物群系ID。也可以使用模组添加的生物群系。

旧属性 "minHeight" 和 "maxHeight" 也可以被识别。

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

biomes=<生物群系列表>
heights=<高度范围>

(可选)名字

只适用于具有对应的可命名的方块实体的方块。

例如:

beacon(信标) brewing_stand(酿造台) enchanting_table(附魔台) furnace(熔炉) dispenser(发射器) dropper(投掷器) hopper(漏斗)

关于匹配名称的语法,参阅 "custom_guis.properties"。

name=<名字>

注意

下文所有内容都针对特定连接纹理方法。

每一个 .properties 文件都应该仅包含其中一个小节列出的属性。

# 标准CTM方法丨Standard 8-way connected textures

method=ctm

(必需)47个图块

tiles=<47 tiles>

(可选)连接相邻方块时,是否显示内边缘接缝

innerSeams=false

模板:

ctm_template.png

译注:如果你疑惑为什么需要这么多张图片,不妨亲自尝试一下

# 简化CTM方法丨Compact 8-way connected textures

method=ctm_compact

译注:此方法不适用于玻璃板,详见 https://github.com/sp614x/optifine/issues/463 (opens new window)

(必需)5个图块

tiles=<5 tiles>

(可选)连接相邻方块时,是否显示内边缘接缝

innerSeams=false

模板:

ctm_compact_template.png

# 有特例的简化CTM方法丨Compact 8-way connected textures with special cases

method=ctm_compact

(必需)简化CTM方法使用的5个图块

tiles=<5 tiles> <额外的图块>

(可选)让CTM的一些情况使用指定的图块

ctm.46=5
ctm.17=6

# 水平连接纹理丨Horizontal-only connected textures

method=horizontal

(必需)4个图块

tiles=<4 tiles>

模板:

horizontal_template.png

# 垂直连接纹理丨Vertical-only connected textures

method=vertical

(必需)4个图块

tiles=<4 tiles>

模板:

vertical_template.png

# 顶部连接纹理丨Top connected textures

method=top

(必需)只需要1个图块

tiles=<单个图块>

# 随机纹理丨Random textures

method=random

(必需)任意数量的图块

tiles=<图块列表>

(可选)权重

例如,如果

tiles=6-11
weights=10 1 10 2 7 3

那么图块6和8的权重为10,图块7权重为1,以此类推。

权重之和不必为100或任何其他特定值。

在上面的例子中,图块6和图块8的使用频率分别为大约30.3%(10/(10+1+10+2+7+3)),依此类推。

weights=<对应的权重>

(可选)随机循环

重复随机函数的次数,用于增加随机性。 可以使不同的纹理使用不同的随机样式。 较高的值可能会降低区块加载速度。 默认值为0。

randomLoops=<0-9>

(可选)方块的各个面的对称性

只适用于标准的六面体方块。

none: 所有6个面都是独立纹理。这是默认值。

opposite: 双向对称;相反的面有相同的纹理,但其他面可能有不同的纹理。

all: 六个面拥有相同的纹理。

symmetry=<none | opposite | all>

(可选)相邻方块之间的纹理连接

如果为 true,OptiFine 对所有多方块对象的所有部分使用相同的随机数种子, 例如,高草丛的顶部和底部。

这允许你为多方块对象创建统一的随机纹理。 如果该属性为 false,这两部分会被 "打乱",也就是说,这两张纹理可能会不匹配。

注: 要使其正常工作,你需要多个 links =true 的属性文件, 以及相同数量的替换纹理和相同数量的权重。

例如,

double_plant_top.properties:

method=random
tiles=grass_top1 grass_top2 grass_top3
weights=1 2 3
linked=true

double_plant_bottom.properties:

method=random
tiles=grass_bottom1 grass_bottom2 grass_bottom3
weights=1 2 3
linked=true

默认值为false。该连接属性目前仅适用于植物(例如甘蔗)、两格高的植物和门。

linked=<true | false>

# 重复图案纹理丨Repeat pattern textures

method=repeat

(必需)重复图案的宽度

width=<图案宽度>

(必需)重复图案的高度

height=<图案高度>

(必需)图块列表(也就是按从左到右,从上到下的顺序列出所有图块)

tiles=<图块列表>

(可选)方块的各个面的对称性

只适用于标准的六面体方块。默认值为none

none: 6个面都有纹理,这样图块从所有面看上去都是一样的。

opposite: 双向对称;相反的面具有相同的纹理,这意味着与北面和西面相比,南面和东面的图块将左右镜像。

symmetry=<none | opposite>

# 固定纹理丨Fixed textures

method=fixed

(必需)单个图块

tiles=<单个图块>

# 覆盖纹理丨Overlay textures

method=overlay

(可选)连接图块

只连接使用指定图块的方块

connectTiles=<图块列表>

(可选)连接方块

只连接指定的方块

connectBlocks=<方块列表>

(可选)Tint index

图块纹理的Tint index,默认为-1(禁用)

tintIndex=<index>

(可选)Tint block

用于图块纹理着色的方块。 对于相同的tint index,不同方块使用不同颜色。

tintBlock=<block>

(可选)Layer

覆盖纹理应该在哪一层上被渲染。

值:

cutout_mipped - 有多级纹理的透明纹理

cutout - 没有多级纹理的透明纹理

translucent - 有多级纹理的半透明纹理

默认值为 "cutout_mipped"

layer=<cutout_mipped|cutout|translucent>

模板:

overlay_template.png

← 属性文件说明 自然纹理 →