Minecraft(我的世界)中文论坛

标题: [给点打赏呗~]hukk的mcpatcher&optifine高级材质教程系列[1.6+]

作者: hukk    时间: 2014-5-2 21:50
标题: [给点打赏呗~]hukk的mcpatcher&optifine高级材质教程系列[1.6+]
本帖最后由 hukk 于 2015-1-21 10:45 编辑



我才不会说上面的目录可以点呢
lz的废话:


本帖不欢迎的人:
      不明觉利党
      无意义沙发党
      求做材质党
      心态浮躁党
以上
回帖仅限技术交流和问题反馈.


前言:



加红的代表目前仅mcpatcher独占

目录:
├─属性文件路径规则&一些技术词汇讲解
├─自定义动画|Custom Animations
│   └─转盘动画|Dial_Animations
├─高清字体|HD Font
├─随机生物皮肤|Random Mobs   optifine不支持属性文件
│   └─自定义鱼线拴绳|Leash_Fishing_Line
├─自定义颜色|Custom Colors
│   ├─自定义生物群落调色板|Custom Biome Palettes   未作兼容性测试,optifine可能出现部分不兼容情况
│   ├─自定义光照|Custom Lighting
│   ├─自定义文字颜色|Custom Text Colors
│   ├─自定义物品生物颜色|Custom Item and Mob Colors
│   ├─杂项方块颜色|Other Block Colors
│   └─颗粒效果颜色|Particle Colors
├─连接纹理|Connected Textures
│   └─更好的玻璃|Better Glass
├─更好的天空|Better Skies
└─自定义物品材质|Custom Item Textures



changlog:


原文可以前往这里查看
各页面供参考的样本可以在这里下载:
http://pan.baidu.com/s/1eQd1UBC 密码:bhqg

┏┓┳┳┏┓┏┓┓
┃┃╋╋┃┃┃┃┫
┃┗┳┳┫┗┫┗┓
┃┃┃┃┃╋┃╋┃
┃┃┃┃┃━┫━┫
┣┻╋━╋━┻━┫
┃┓┃┏┃┏━┓┃
┃┃┃┃┃┃╋┣┫
┃┃┃┃┃┗━┛┃
┗┻━┻┻━━━┛


——历时一个月,业界的良心好翻译

——最后更新于2015-01-21

页1



属性文件路径规则&一些技术词汇讲解
正常路径 – 相对于assets/minecraft:
  textures/path/to/file.png ->assets/minecraft/textures/path/to/file.png
===========================================================
相对于MCPatcher的基础目录:
~/path/file.png ->assets/minecraft/mcpatcher/path/file.png
===========================================================
相对于属性文件的路径:
./path/file.png ->assets/minecraft/(属性文件所在的目录)/path/file.png
===========================================================
其他命名空间的路径:
命名空间:path/file.png ->assets/命名空间/path/file.png

什么是 "命名空间"?  它们基本上是一种方法, Mojang用于在未来将mods的文件和原版的minecraft的文件彼此区分开来.
目前你不必担心他们.一切都在默认的叫做“Minecraft”的命名空间内,但未来可能会改变.
完整原文地址

技术性词汇摘要:


页2



自定义动画
从Minecraft1.5开始,Mojang添加了对任一方块/物品的动画支持(最早是由MCPatcher提供的功能).
然而,它目前仍没有办法为其他纹理例如生物皮肤或图形用户界面创建动画.
MCPatcher填补了这个缺口,使任何矩形区域的非方块/物品的纹理进行动画处理.
这甚至可以包含特殊的纹理用于其他MCPatcher功能,例如随机生物皮肤或天空盒子.
对于方块和物品的纹理,其中还包括CTM和CIT的置换,则继续使用Mojang的mcmeta方法.

mcmeta方法使用参考(http://minecraft.gamepedia.com/Resource_pack)

想要创建一个动画,首先应选择一张材质,并确定其x轴y轴坐标,以及你想要进行动画处理的区域的宽度和高度.
创建一条垂直帧用于动画. 它的宽度应当与你要进行动画处理的区域的宽度相同.
而它的高度应为你要进行动画处理的区域的高度的倍数.


属性文件格式&一些技术词汇讲解:
创建一个.properties文件,文件名任意.
将其放到你资源包的assets/minecraft/mcpatcher/anim文件夹或其子目录中.
在文件中添加如下属性(注意斜杠方向!!!)
  1. from=<自定义动画的路径>
  2. to=<目标材质的路径>
  3. x=<矩形区域的x轴坐标>
  4. y=<矩形区域的y轴坐标>
  5. w=<矩形区域的宽度>
  6. h=<矩形区域的高度>
复制代码
参考前面的属性文件路径命名规则来填入路径.

这将创建一个简单的动画,从上到下按顺序播放各帧,每tick(1/20秒)播放一帧,无限循环.
在此获取关于tick的信息(http://minecraft-zh.gamepedia.com/刻)
同一个目标材质中的多个,非重叠的部分也可以自定义动画通过创建不同的.properties文件并使用不同的x,y,w,h值.
他们甚至可以有独立的速度和帧顺序信息.
为了获得最大的兼容性,确保x,y,w,h为16的倍数.(另外如果矩形区域与帧的尺寸不符,mcpatcher将会对帧进行缩放)


帧的顺序和速度:
每个自定义动画还可以指定其动画速度和帧顺序.
需要在属性文件中添加一系列的条目
  1. tile.X=Y
  2. duration.X=Z
复制代码
X从0开始,将按顺序显示你分配的帧.
Y是特定帧在.png动画文件中的tile number,最上方的第一个title是0,向下第二个title是1,以此类推.
Z是你想显示的帧的持续时间,在游戏刻(1/20s)中 .如果省略,持续时间将默认为1刻.

例如,假设你的自定义动画纹理为16x48(3帧).
创建一个在循环周期中暂停5刻的动画,则属性文件看起来可能是这样:
  1. tile.0=0
  2. tile.1=1
  3. tile.2=2
  4. duration.2=5
  5. tile.3=1
  6. tile.4=0
复制代码
动画将以如下顺序显示:
帧0: 显示动画tile0持续1刻 (没有duration属性).
帧1: 显示动画tile1持续1刻 (没有duration属性).
帧2: 显示动画tile2持续5刻 (duration=5).
帧3: 显示动画tile1持续1刻 (没有duration属性).
帧4: 显示动画tile0持续1刻 (没有duration属性).
返回到帧0.
总计: 5帧耗时9刻.
如果属性"duration"不带后缀".X",它将作为默认持续时间应用于所有那些不带duration.X属性的帧.
例如添加duration=2到上面的例子将会减慢帧0,1,3,4的持续时间到2刻,但不会改变帧2.因为它有自己单独的持续时间.


页3



转盘动画
原版mc(Vanilla Minecraft)允许你通过绘制垂直帧为罗盘和时钟创建自定义动画,每一帧即包含罗盘指针和时钟指针任何一个指向的可能方向.
虽然这样有非常好的灵活性,但它对于创建高分辨率的平滑图像将是低效的.

而MCPatcher提供了另一种适合用于创建平滑的转盘动画的方法.
使用这种方法并不会阻止你的材质中同时包含有原版mc的罗盘或时钟动画.
但你的确有必要使用outputFrames属性来创建原版mc的罗盘或时钟动画,提供给非mcpatcher用户.
每张转盘动画都将被指定为一层.
一些图层可以设置为静态,其他层则可以基于你的出生点(罗盘)或一天中的时间(时钟)来转动.
您可以自定义图层间的混合方法.

compass.properties详解


页4



高清字体(mcpatcher不建议使用高清字体,卡成翔.在安装时取消选项里的启用高清字体)
1.6开始,Minecraft允许更高分辨率的字体,但自定义仍然是有限的.
MCPatcher将首先在assets/minecraft/mcpatcher/font文件夹中查找字体位图.(不支持其下子文件夹)
这可以让你同时拥有可在原版mc显示的自定义字体以及需要mcpatcher才能够显示的更高分辨率的字体.

注: 不支持自定义unicode字体.(包括unicode_page_00)(自定义unicode请修改glyph_sizes.bin方法见下方)
为了能够更好地控制单个字符的宽度,MCPatcher提供了一种手动指定它们的方法.
创建属性文件

名为你想要自定义的字体.

属性文件格式:
在这个文件中的每一行指定一个字符的宽度:
  1. width.<ascii值 0-255>=<宽度 0-8>
复制代码
注: 这里ascii值指的是字符在位图中的序号,遵循从左到右从上到下的规律排列.
例如,要指定大写的A,B,C的宽度,你可以使用
  1. width.65=5.9
  2. width.66=5
  3. width.67=5.25
复制代码
不管字体的分辨率是多少,值只能是(原版mc只支持整数)介于0-8之间浮点数或整数.
你不需要为所有字体指定宽度,只需要指定那些你想修改的字符的宽度,未被指定的字符将使用来自原版mc的默认宽度.

空格符是特殊的.
它的默认宽度为字符“A-Z,a-z,0-9”宽度平均值的1/2,这使得单词之间的间隔与字体的整体宽度相匹配.
然而你可以用同样的方式修改它,通过将width.32设置为自定义值.


修改glyph_sizes.bin为unicode字符定制宽度:(填写费力,慎入!!)
使用16进制编辑器(例如uedit啊winhex啊什么的)打开glyph_sizes.bin
可以看到类似的一大串数据


对比左侧数据和右侧图片,有什么发现?

这里每一个字节(Byte)代表一个字符.
而每个字节即控制着对应字符的宽度,举个简单的例子:


页5



随机生物皮肤
此功能允许你为每种生物创建替补皮肤,用于让游戏在生物生成时随机选取.
替补皮肤也可以有不同的概率,用于创建罕见的怪物皮肤.
它们也可以按生物群落和高度分组,用于创建以雪,沙漠,洞穴为主题的生物.
马无法使用随机皮肤,因为Minecraft为马使用了多张纹理(一种在原版mc中的类似随机生物的效果).

简单随机化:
随机生物皮肤很简单. 首先,找到你想进行随机化的原版mc的生物皮肤.
以assets/minecraft/textures/entity/的目录结构创建assets/minecraft/mcpatcher/mob/并从2开始添加一些文件名并不要漏掉任何一个数字,否则之后的皮肤将无法被加载.
你自己创建的不存在于entity/下的目录,例如entity/cow/bluecow,这些目录下的皮肤将不被加载.

例如爬行者的首张替补皮肤是
  1. assets/minecraft/mcpatcher/mob/creeper/creeper2.png
复制代码
如果仅有这一张替补皮肤,则游戏有50%的几率使用原版mc的creeper.png,50%的几率使用候补的creeper2.png在爬行者生成时.
皮肤务必保存在文件夹entity/以及其子文件夹下! 对比如下部分:
  1. Creeper:
  2. assets/minecraft/textures/entity/creeper/creeper.png
  3. assets/minecraft/mcpatcher/mob/creeper/creeper2.png
  4. assets/minecraft/mcpatcher/mob/creeper/creeper3.png
  5. assets/minecraft/mcpatcher/mob/creeper/creeper4.png
  6. 等.
  7. 错误! 无法正常工作:
  8. assets/minecraft/mcpatcher/mob/creeper2.png

  9. Chicken:
  10. assets/minecraft/textures/entity/chicken.png
  11. assets/minecraft/mcpatcher/mob/chicken2.png
  12. assets/minecraft/mcpatcher/mob/chicken3.png
  13. assets/minecraft/mcpatcher/mob/chicken4.png
  14. 等.
复制代码
副生物皮肤:
一些生物有多张皮肤.
例如spider_eyes纹理是独立于主蜘蛛皮肤的.
狼有正常的,生气的和温顺的皮肤. 含有多张皮肤的有:


有几种方法来处理这种情况.


        
其他叠加皮肤:(optifine不支持)
某些生物还固定使用某个方块的纹理.
蘑菇牛在它的背上使用红蘑菇的纹理,雪人头上戴着南瓜.
MCPatcher提供了自定义这两张皮肤的能力.
任意数量的替补皮肤可以被使用,并且将与任何其他的副生物皮肤一起被随机化.
  1. Mooshroom:
  2. assets/minecraft/mcpatcher/mob/cow/mooshroom_overlay.png
  3. assets/minecraft/mcpatcher/mob/cow/mooshroom_overlay2.png
  4. assets/minecraft/mcpatcher/mob/cow/mooshroom_overlay3.png
  5. 等.
  6. Snowman:
  7. assets/minecraft/mcpatcher/mob/snowman_overlay.png
  8. assets/minecraft/mcpatcher/mob/snowman_overlay2.png
  9. assets/minecraft/mcpatcher/mob/snowman_overlay3.png
  10. 等.
复制代码
这些纹理使用特殊的布局来适应其各自的实体模型.
蘑菇牛的叠加纹理包含三个正方形面板,将从左到右用于牛背上从头到尾的三个蘑菇.
绘制标准:

参考例子:

雪人的叠加纹理是一个简单的立方体布局:

参考例子:


还有一种偷懒的方法是使用一张完全透明的snowman_overlay.png并且对基础皮肤snowman.png的头的部分进行自定义.

mob.properties详解(optifine不支持)


页6



自定义鱼线拴绳
自定义拴绳和鱼线的纹理
这两条硬编码外观的线可以被替换成自定义的纹理.
  1. 鱼线: assets/minecraft/mcpatcher/line/fishingline.png
  2. 拴绳: assets/minecraft/mcpatcher/line/lead.png
复制代码
可参考misa的材质包
line.properties详解


页7



自定义颜色
MCPatcher的自定义颜色功能可以定制游戏中广泛的硬编码颜色,从光照到颗粒效果再到羊.
由于可用的自定义过于广泛,说明被分为了单独的页面.
其中许多功能是由位于assets/minecraft/mcpatcher/color.properties的属性文件来控制.
其余的则有自己的属性文件和图像文件.
自定义生物群落调色板(地形,主世界迷雾,天空,和水体)
自定义光照贴图(自然光和人工光的照明)
自定义文字颜色(告示牌,GUI,聊天颜色)
自定义物品生物颜色(药水,刷怪蛋,皮革盔甲)
杂项方块颜色(红石线,南瓜/西瓜藤)
颗粒效果颜色(岩浆/水滴,经验球,菌丝颗粒)

color.properties详解


页8



自定义生物群落调色板
在原版的Minecraft中,草地和树叶材质的不同颜色取决于周围的生物群落气候.
这通过两个文件来控制:
  1. assets/minecraft/textures/colormap/grass.png
  2. assets/minecraft/textures/colormap/foliage.png
复制代码

每个文件都是一个256x256的颜色表,将应用到草地或树叶的材质(通常是灰色).
MCPatcher极大地扩展了这个功能,让其支持其他方块和周围的天空和迷雾的颜色.
艺术家可以用这个来获取极好的效果,还原每个生物群落其本身的感觉.
此页被分成两个部分. 首先介绍颜色表图像的格式,第二部分展示了如何将他们应用到游戏中的各种元素.

原版颜色表格式:
原版Minecraft使用的格式,他是一张256x256的颜色表,其轴分别代表温度和湿度.
每个生物群落都有固定的基础温度和湿度值,对应于颜色表中的单个像素.
随着y轴坐标的变大,其在颜色表中的位置也慢慢向右下方移动.
一个由khanador撰写的论坛帖子展示了他(指颜色表)是如何工作的.
所有自定义颜色表默认使用原版格式来读取,除非你在属性文件中指定其格式.

MCPatcher的"网格"格式:
另一种可以更精确地控制每种生物群落的方法.
可以在下面的生物群落(Grid格式)中看到详述.

其他格式:
此外,MCPatcher还提供了一个"固定"颜色表格式.
此格式不需要图像; 他仅仅是一个单一的颜色,将应用到所有不同地方的方块.
其主要目的是覆盖一某些硬编码方块的颜色,例如甘蔗.

属性文件格式详解:(重要)


独立属性colormap.properties格式:(前面介绍的第二种方法)(样本参考文件)


生物群落(Grid格式)


页9



自定义光照
MCPatcher可以让你自定义游戏中的光照.

原版中光照是如何运作的:
每个方块会分配到两个范围0-15的亮度值,一个是天空亮度,一个是火把亮度.
一个在阳光直射下的方块具有值为15的天空亮度.
一个在树荫下并与刚才那个方块毗邻的方块具有值为14的天空亮度,以此类推.
一个深入地下的方块,且其远离任何可以看到天空的方块,则具有值为0的天空亮度.
对于火炬也是同理.
一个火把方块具有值为14(萤石则为15)的亮度值,并且每远离他一个方块的距离,亮度值就下降1.

要生成你在游戏中实际看到的光照,Minecraft使用了一张16x16的光照贴图.
其轴对应每种光源类型的16个光照水平.
如果一个方块拥有火炬亮度x和天空亮度y,则光照贴图坐标(x,y)处的点将被使用.
光照贴图不是任何游戏文件,但会在每帧画面中生效.
两个变量影响光照贴图,一天中的时间和火炬闪烁.(不是火把上的火焰而是光照忽明忽暗的效果)
Minecraft实现了黄昏/黎明间的转换和火炬闪烁,从而使整个光照贴图变暗或变亮,而不是通过调整天空/火炬的亮度值来实现这点.

自定义光照:
要使用自定义光照,你需要为每个世界创建一个光照贴图调色板:

每个光照调色板图像可以是任意的宽度,但必须为32或64像素高.
如果为64,图像的下半部分将用于夜视效果,这将在稍后讨论.
每32行的像素,顶部16行代表阳光,底部16行代表火把.
分为上下两列,16像素的上半部分和16像素的下半部分,将被选择以形成最终将被使用的16x16光照贴图的轴线用于渲染.


蓝色代表夜晚,橙色代表黄昏/黎明,青色代表白天,黄色代表闪电.?(Misa的模板.)
来自TT教程的模板


在上半部分中,左侧代表夜晚,右侧代表白天,黄昏/黎明将在之间转换.
调色板的最右边代表闪电. 同样的,其在调色板中也没有固定的宽度,但更多的宽度意味着在转换过程中拥有更多细节的空间.

火把的运作方式与之相似,但在这种情况下的x坐标是一个简单的随机值用于模拟火把闪烁的效果.
他将沿着x轴的方向变化,决定火把闪烁的效果. 要创造一个完全稳定无频闪的火把,只需确保每行的像素颜色均相同.

光照贴图在所有三个世界(主世界,地狱,末地)的运作方式是相同的,但由于在地狱和末地没有夜晚或白天,"一天中的时间"这个值是恒定的.
对于这些世界你可以简单地给每0-15行的像素相同的颜色.

夜视效果:
在原版游戏中,夜视效果是通过以(R,G,B)/max(R/G/B)缩放RGB值计算的.
例如,(0.2,0.3,0.6)将变亮至(0.333,0.5,1.0)通过除以0.6.
你可以自定义此效果,通过创建一个64像素高的自定义光照贴图而不是32像素高的.
这将需要提供四种调色板,而不是两种: 正常的阳光,正常的火把,夜视效果下的阳光,夜视效果下的火把.
与之前的光照贴图的运作原理相同,但使用每32-47行的像素和每48-63行的像素.

页10



自定义文字颜色
  1. 内容已转移至assets/minecraft/mcpatcher/color.properties.
  2. 以下是原版的默认颜色.
  3. 杂项颜色请参见 **自定义文字颜色**---杂项文字颜色 章节.

  4. 聊天颜色请参见 **自定义文字颜色**---聊天文字颜色 章节.

  5. 任何其他RGB值请参见 **自定义文字颜色**---任何其他RGB值 章节.
复制代码


页11



自定义物品生物颜色
  1. 内容已转移至assets/minecraft/mcpatcher/color.properties.
  2. 以下是原版的默认颜色.
  3. 药水及药水效果颜色请参见 **自定义物品生物颜色**---药水及药水效果的颜色 章节.

  4. 刷怪蛋颜色请参见 **自定义物品生物颜色**---刷怪蛋颜色 章节.

  5. 地图颜色请参见 **自定义物品生物颜色**---地图颜色 章节.
  6. ---根据物质的类型分配地貌颜色

  7. 羊的颜色请参见 **自定义物品生物颜色**---羊的颜色 章节.
  8. ---自定义染色羊的颜色(而非染色羊毛方块)

  9. 染色皮甲颜色请参见 **自定义物品生物颜色**---染色皮甲颜色 章节.
  10. ---颜色将应用到leather_layer_1.png和leather_layer_2.png来生成染色皮甲.

  11. 狗项圈颜色请参见 **自定义物品生物颜色**---狗项圈颜色 章节.
  12. ---自定义染色项圈的颜色.

  13. 染料颜色(未使用)请参见 **自定义物品生物颜色**---染料颜色 章节.
复制代码


页12



杂项方块颜色
某些方块使用特殊的着色方法,而非使用自定义生物群落调色板.
用于红石线的着色
assets/minecraft/mcpatcher/colormap/redstone.png
图像高度为1,宽度为16.
分别对应红石线的0-15的亮度等级.
例子效果

南瓜藤与西瓜藤
mcpatcher的文件命名规则:
assets/minecraft/mcpatcher/colormap/pumpkinstem.png
assets/minecraft/mcpatcher/colormap/melonstem.png
optifine的文件命名规则:
南瓜藤和西瓜藤共用一张着色文件
assets/minecraft/mcpatcher/colormap/stem.png
图像高度为1,宽度为8
分别对应藤蔓的8个生长阶段.0为萌芽,7为成熟.
例子效果


页13



颗粒效果颜色
岩浆滴:(optifine不支持)
  1. assets/minecraft/mcpatcher/colormap/lavadrop.png
复制代码

这是用于岩浆滴颗粒在其下落过程中冷却的效果的位图.
图像的高度为1,宽度可以为任何值.
X轴代表颗粒的年龄以游戏刻(1/20秒)作为单位进行演变.
岩浆滴颗粒在首40刻左右通常是不可见的,因为它们一开始产生在上方的方块中,所以90像素是一个很好的宽度.
如果颗粒效果的寿命长于图像的宽度,其剩余的时间将会固定使用最后一个像素.
经验球:(optifine不支持)
  1. assets/minecraft/mcpatcher/colormap/xporb.png
复制代码

用于经验球. 图像可以是任意尺寸.
颜色选区将沿一个正弦波形移动从(0,0)开始到图片结束.
正弦波的速度被减慢相对于原版变慢了4倍,来允许材质包拥有一个比默认的经验球脉动较慢的脉动效果.
如果你想保持默认的速度,只需要垂直平铺你的图像高度到原来的4倍.
菌丝颗粒效果:
  1. assets/minecraft/mcpatcher/colormap/myceliumparticle.png
复制代码

用于菌丝方块散发的颗粒. 图像可以是任意尺寸.
每个新的颗粒将随机选取位图中的颜色.
其他颗粒效果:(optifine仅不支持"方块水滴效果")
  1. 内容已转移至assets/minecraft/mcpatcher/color.properties.
  2. 请至 ***其他颗粒效果***---颗粒效果的底色 章节查看.
复制代码


页14



连接纹理
注意:以下tiles均翻译为面,实指方块一面上的贴图. face均翻译为朝向,实指朝向哪个方位.
以下tilesheet不做翻译,实指包含47张tiles的完整图像,1.5版本材质切分之前就使用这种tilesheet.

MCPatcher提供的一个极大增强版的Connected Textures Mod. 除了以不同的方式连接临近的方块的方法, MCPatcher还支持随机, 重复, 和固定的方法.  任何一种方法都可以有条件地使用通过方块ID,面的文件名(这个面对应材质的文件名), 元数据,朝向, 生物群落, 或高度.

CTM的属性文件和覆盖纹理都在~/ctm文件夹内. 每一个配置文件中申明了对一个方块或一个面的替换, 使用的方法, 一些覆盖纹理, 和一些可选的条件, 例如元数据和朝向. 多个属性文件会影响同一个方块或面, 但只有第一个匹配的(按字母顺序排列的文件名)会被使用. 文件在~/ctm中可以被分类到任何深度的子文件夹中. 子文件夹只是让纹理作者更方便地分类; MCPatcher不会去关心它们的名字(仅遍历属性文件?).

一个简单的玻璃方块的连接纹理需要一个属性文件和47张单独的纹理:
  1. ~/ctm/myglass/block20.properties:
  2.         method=ctm
  3.         tiles=0-46
复制代码
单独的面文件必须按照以下方式排列在/ctm/myglass目录下:

横向连接纹理遵循以下模式. 同样, 使用4张独立的图像, 而不是一张tilesheet.

垂直连接的纹理遵循以下模式:

横向连接+垂直连接 和 垂直连接+横向连接(method=h+v and v+h respectively)将二者结合起来, 在其中一个内支持另一个. 至少需要7面.
参考这张Misa提供的模板.


关于1.7.2重复纹理显示不正常的解释
由于原版1.7.2的显示问题,对角线的纹理会进行镜像,导致重复纹理翻转,导致显示不正常.具体参考如下图片


ctm.properties详解


页15



更好的玻璃
更好的玻璃mod扩展了连接纹理,为其添加完整的alpha通道支持,用于玻璃和玻璃板.
彩色玻璃使用两个纹理,一个用于框架另一个为玻璃部分.
由于游戏渲染器的限制, 当玻璃的一部分处于另外一种半透明材质例如冰的后面时,那部分将会消失看不见.
但仍然保持框架可见,这是一个像样的折中.

  1. ~/ctm/myglass/block20.properties:
  2.         method=ctm
  3.         tiles=0-46
  4.         renderPass=2

  5. ~/ctm/myglass/block20a.properties:
  6.         method=ctm
  7.         tiles=47-93
  8.         renderPass=3

  9. ~/ctm/myglass/block102.properties:
  10.         method=ctm
  11.         tiles=0-46

  12. ~/ctm/myglass/block102a.properties:
  13.         method=ctm
  14.         tiles=47-93
  15.         renderPass=3
复制代码
renderPass属性指定方块应在什么情况下显示.  每个渲染过程具有不同的属性:

通道渲染将按如下顺序发生: 0, 2, 1, 3.  需要注意的是玻璃方块使用渲染通道2的外框,但玻璃面板不使用.  如果对玻璃板使用2的话, 你会看到深度冲突(z-fighting), 因为游戏把玻璃板的两侧放在同一坐标.
你可能已经猜到了,更好的玻璃可以通过添加适当的条目及其属性的文件将用于支持CTM的任何方块.
一个限制是属性必须基于方块的ID, 而不是面的名称(这个面对应材质的文件名). 同时请记住, 渲染通道将应用于所有使用相同的方块ID的方块.
渲染通道2替换渲染通道0, 所以一旦你进行分配, 例如, 分配石半砖至渲染通道2, 那么你必须有CTM规则覆盖所有在渲染通道2的石半砖(方块ID44). 否则, 其他石半砖将是不可见的.
在optifine的客户端使用带更好的玻璃材质的材质包并不会像tt所说的那样导致正常ctm无法显示.
并且所有optifine不支持的高级材质存在于材质包也不会引起正常材质的显示不正常,而仅仅是无法显示这部分高级材质而已.

效果参考


renderpass.properties详解


页16



更好的天空
厌倦了默认的星空?  MCPatcher支持完全自定义的天空盒子!
多个天空盒子可以分层次地在一起使用几种混合的方法,并设置为在一天中的某些时间淡入和淡出.
每层的天空都与一个sky<n>.properties文件一一对应,它们只能放在~/sky/world0/目录中.
每个sky<n>.properties都必须指定一个天空盒子纹理(默认是: ~/sky/world0/sky<n>.png),和一些其他的条目,将在后面介绍.
天空盒子纹理是一个可旋转的正方体,而你身处其中.天空盒子纹理可以是任何尺寸的图片,但必须为两行三列,且每面为相同大小的正方形.
具体如何绘制请参考如下样本:


sky.properties详解


页17



自定义物品材质
CTM用于方块, CIT则用于物品. 自定义物品支持damage值,堆叠数量,和NBT数据. 还可以为不同的附魔创建不同的效果.

所有与CIT相关的文件均在~/cit文件夹. 类似CTM,文件可以被进一步分类到任何深度的子文件夹. 一个可选的cit.properties文件将指定CIT的全局行为,特别是定义对多个自定义附魔效果的处理方式.

CIT的大多数行为通过~/cit文件夹中的许多属性文件来定义. 每一个属性文件定义一个类型(物品, 附魔, 铠甲);一些基于物品ID,damage,等来对物品进行纹理替换的条件.; 和一个或更多的替换纹理. 如果有多个属性文件匹配相同的物品,一个具有最高权重的属性文件将优先被使用.
  1. type=<item |enchantment |armor>
  2. items=<item IDs>
  3. damage=<damage values>
  4. stackSize=<stack sizes>
  5. enchantmentIDs=<list of enchantment IDs>
  6. enchantmentLevels=<list of enchantment levels>
  7. nbt.<expression>=<NBT value>
  8. weight=<priority relative to other CIT files>
  9. texture=<replacement texture>
复制代码
(这些属性大多数都是可选的.)

CIT type=item定义一个简单的纹理替换. 它使用自定义纹理而非取代在textures/items中的默认材质. 替换纹理可以使用Mojang的.mcmeta格式动画. 对于拥有多个材质(弓,药水,刷怪蛋)的物品,在单个属性文件中指定所有所需的替换纹理:
  1. # 错误 – 向后拉的状态将会显示相同的纹理
  2. texture=my_special_bow_standby
  3. # 正确 – 针对弓每个状态有单独的纹理
  4. texture.bow_standby=my_special_bow_standby
  5. texture.bow_pulling_0=my_special_bow_pulling_0
  6. texture.bow_pulling_1=my_special_bow_pulling_1
  7. texture.bow_pulling_2=my_special_bow_pulling_2
复制代码


CIT type=enchantment会取代预设闪烁效果. 不同的附魔可以根据附魔的类型或级别或同时以上两种条件给予其不同的纹理. 如果一个物品有多种附魔,效果可以被混合到一起或循环效果. 如果发现一个被附了魔的物品没有进行自定义附魔效果,将会使用默认的enchanted_item_glint.png. 这可以通过设置useGlint=false在全局cit.properties文件中来禁用.

CIT type=armor取代了在第三人称视角及在其他玩家眼中盔甲显示的纹理. 每种盔甲类型有两张纹理,除了皮革有四张. 使用与弓的例子相同的语法来替换多个纹理:
  1. # 钻石
  2. texture.diamond_layer_1=...
  3. texture.diamond_layer_2=...
  4. # 皮革
  5. texture.leather_layer_1=...
  6. texture.leather_layer_1_overlay=...
  7. texture.leather_layer_2=...
  8. texture.leather_layer_2_overlay=...
复制代码


还有药剂替换纹理的替代方法. 这不是复杂的基于damage值和药水类型的处理方法,而是一个简单的基于文件名的替换方法. 使用此方法不需要任何属性文件,只要有路径正确的png文件. 请参见为模板cit_single.properties文件底部的细节.(资源包格式后不建议使用此种方法,水下呼吸药水的替换不会生效)
cit_single.properties详解


cit.properties详解


页18


作者: Mayomi    时间: 2014-5-2 21:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: 719_Lokii    时间: 2014-5-2 22:03
→_→
表示发到材质版我可以加点贡献→w→
hukk好屌
作者: RAY5DHao    时间: 2014-5-2 22:04
没看太懂...
作者: a2455564728    时间: 2014-5-2 22:04
还设置权限。。。
作者: 719_Lokii    时间: 2014-5-2 22:05
PS
hukk检查过每个目录了么
有些没内容的·····

作者: hukk    时间: 2014-5-2 22:08
719220502 发表于 2014-5-2 22:05
PS
hukk检查过每个目录了么
有些没内容的·····

还在更新哦,目前只有属性文件路径和changlog里面的条目有内容
作者: a2455564728    时间: 2014-5-2 22:10
权限80是多少级来着
作者: tsubasa56    时间: 2014-5-4 08:34
我mcpatcher尝试好几次都没安装成功  
作者: hukk    时间: 2014-5-4 08:35
tsubasa56 发表于 2014-5-4 08:34
我mcpatcher尝试好几次都没安装成功

是安装mod还是材质
作者: tsubasa56    时间: 2014-5-4 08:42
hukk 发表于 2014-5-4 08:35
是安装mod还是材质

不是先要安装mcpatcher么?   反正运行mcpatcher就出错
作者: hukk    时间: 2014-5-4 08:50
tsubasa56 发表于 2014-5-4 08:42
不是先要安装mcpatcher么?   反正运行mcpatcher就出错

用官方启动器打开一次,
将launcher_profiles.json
复制到.minecraft路径下即可
作者: tsubasa56    时间: 2014-5-4 09:07
额 刚试了一下  有好了  或许前一阵我网络有问题吧
作者: hukk    时间: 2014-6-8 17:35
所有文章,均以完成翻译
如有发现有错误的地方
欢迎指正

作者: @💊🌂🔔    时间: 2014-6-13 19:53
hukk姐的自制材质

表示像我这种没做过材质的有些不懂(略高能)的样子

   ——防小学生头像,不准乱笑=w=
作者: 1814209846    时间: 2014-6-19 16:28
膜拜慢尼玛,请问你是怎么做到的
作者: 1814209846    时间: 2014-6-19 19:04
我问的是你的目录是如何做到了=W=
作者: SuperGameMaster    时间: 2014-6-21 07:41
好像没见过这位版主,看到版主怎么努力的份上,顶顶帖子吧!
作者: yun56615    时间: 2014-6-25 21:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: hao666    时间: 2014-6-25 21:36
顶你,支持楼主!有意思
作者: ss000    时间: 2014-6-25 21:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: tzctzc    时间: 2014-7-14 18:28
不错不错

作者: Mik    时间: 2014-7-15 13:08
点个赞......
作者: 1641065713    时间: 2014-8-15 10:44
请教一下版主这个目录肿莫搞得啊
作者: 物语    时间: 2014-9-5 22:46
=w=测试一下签名····LZ,我们是在一个网站弄的哦~
作者: 死亡使者    时间: 2015-1-11 16:15
刚刚好,我想做一个材质包!
作者: xiao_zhu_ge    时间: 2015-2-8 19:53
为什么我做了一下两个方块的材质错乱了?
作者: 不可知论    时间: 2015-2-23 16:57
下了以后怎么用啊,求大神指导
作者: Forever晓晓    时间: 2015-3-27 12:46
谢谢你的材质包...{:10_512:}
作者: 501938012    时间: 2015-5-9 16:23
问下大神 1.6+包括现在1.8吗
作者: xcc    时间: 2015-6-5 23:51
看了一会发现我还是自己随便涂涂材质吧
作者: iwinhoo    时间: 2015-6-26 13:28
楼主辛苦了,已收藏
作者: 1330707337    时间: 2015-7-10 16:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: hukk    时间: 2015-7-14 19:27
本帖最后由 hukk 于 2015-7-14 19:34 编辑
1330707337 发表于 2015-7-10 16:18
大神你好,我想请教你一个问题,情况如下:
mc版本1.7.10  工业版本:2-2.2.742
我想给工业的机器贴图换成 ...

如果用的是原版动画也就是通过Mcmeta来控制动画的话,图片是有格式要求的大概就是类似这样的


一个Mcmeta控制一个面,所以要把对应面的原始材质修改为类似于电影胶片的竖直的动画帧,并且每个面要对应一个Mcmeta文件,不是说一个Mcmeta控制一个方块的
作者: kkaaee    时间: 2015-11-15 00:46
{:10_496:} 很棒 进来学习 感谢楼主
作者: 1356658581    时间: 2015-11-29 12:49
666666666666666666666
作者: stevela    时间: 2016-2-12 22:54
很好呀!
赞十个赞\(≧▽≦)/
作者: a361743369    时间: 2016-8-13 11:53
楼主不容易,赞一个
作者: 570855441    时间: 2016-8-15 12:50
不错吖,不过天空那部分还是看不太懂= =
作者: ERBem    时间: 2016-8-19 20:14
可以,这鬼东西,要好好研究一下。 谢谢楼主分享。{:10_523:}
作者: chuanqi    时间: 2016-8-27 20:59
楼主你太tm牛逼了膜拜
作者: Ant繁星飞跃    时间: 2016-9-23 15:37
前来考古!
作者: 叫我男神ii    时间: 2016-12-17 15:01
你QQ多少啊 能帮我修改下粒子效果吗
作者: 骤か殒    时间: 2016-12-20 19:32

楼主这个蕨的贴图错误了,要怎么修复??
我研究了很久还是不行
作者: 魔巫妖    时间: 2016-12-29 20:11
教程感谢,十分有益处
作者: 夜頥瑿    时间: 2017-1-7 10:16
非常详细的教程!
作者: 少年时光    时间: 2017-6-29 06:44
请问楼主,准星在哪修改啊
作者: 2287711913    时间: 2017-7-3 16:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: The_Sanctus    时间: 2017-7-4 20:27
进来学习学习。。感觉还是不太明白。。
作者: 104277777    时间: 2017-8-11 18:27
这么好的帖没顶?难道这里面也有挖坟一说?最后关于自定义材质部分,我按照教程加入了编码颜色但是干脆没用。连材质都不会变了。特地来请教大佬
作者: asd1254586272    时间: 2017-8-14 04:04
不错不错我喜   楼主好帅
作者: 13453    时间: 2017-9-22 13:43
1.8以上的材质要使用方块的名称(不是显示名称)
作者: 百度服务器    时间: 2017-11-7 21:38
羊毛该怎么设置?
type=item
items=35:14
texture=x1
nbt.display.Name=\u00a7\u0034\u00a7\u006c\u672a\u7b7e\u5230
为何我这样设置没效果
作者: Krito    时间: 2017-12-3 11:50
麻烦帮看一下,楼主,我这是 1.11.2版本的客户端,   
不知道这个  替换物品材质的需不需要什么插件 MOD 来辅助,
我按照说明的弄过还是不好使,
跪求帮助,金粒已经奉上

QQ截图20171203114830.jpg (197.21 KB, 下载次数: 3)

QQ截图20171203114830.jpg

作者: 104277777    时间: 2017-12-3 12:11
百度服务器 发表于 2017-11-7 21:38
羊毛该怎么设置?
type=item
items=35:14

改变方块做梦呢?用刷怪笼修改吧,具体怎么修改**看youtube
作者: 104277777    时间: 2017-12-3 12:28
Krito 发表于 2017-12-3 11:50
麻烦帮看一下,楼主,我这是 1.11.2版本的客户端,   
不知道这个  替换物品材质的需不需要什么插件 MOD 来 ...

需要mod optifine 支持,具体版本自行查看optifine的升级日志
作者: linziqun    时间: 2018-1-3 23:50
RPG自定义材质包是不是自定义物品材质
有教程贴吗?
作者: 2868681725    时间: 2018-1-15 10:04
好看!喜欢(? ω ?)
作者: Krito    时间: 2018-3-5 15:58
请问可以举例 一个鞘翅替换的格式吗?谢谢~
作者: 狡诈师    时间: 2018-3-16 19:20
3D材质呢?
作者: 碎天    时间: 2018-3-17 11:32
MCBBS有你更精彩~
作者: Memory_wu    时间: 2018-4-10 18:53
少年时光 发表于 2017-6-29 06:44
请问楼主,准星在哪修改啊

准心在gui>icons.png的最左上方
作者: Krito    时间: 2018-5-11 23:16
能不能自定义 生物皮肤啊  
作者: :D--    时间: 2018-5-30 04:33
不做伸手党 顶一个!
作者: 1317896242    时间: 2018-6-1 20:11
弱弱的问一句,嗨皮咳嗽打人时的粒子特效是哪一个....
作者: 空城旧事    时间: 2018-6-6 09:17
加油~加油~
作者: 0ojixueseno0    时间: 2018-6-13 20:54
Krito 发表于 2017-12-3 11:50
麻烦帮看一下,楼主,我这是 1.11.2版本的客户端,   
不知道这个  替换物品材质的需不需要什么插件 MOD 来 ...

试着将items=260
改为items=apple
(1.8+不支持数字ID了貌似)
作者: Hydrophoton    时间: 2018-7-4 11:19
optifine有没有办法制作发光贴图(本身不提供亮度)
作者: asd1254586272    时间: 2018-7-9 10:11
可以很喜欢这种
作者: Krito    时间: 2019-1-22 23:31
请问 可不可以有这中设置  在物品栏或者箱子的某个位置,的物品会改变贴图
作者: 风筱墨    时间: 2019-1-22 23:39
楼主辛苦了! 前排支持!
作者: CO68    时间: 2019-3-9 19:24
问个关于药水的问题(我是靠ItemBound自学的,但依旧要过来顶一个)如果链接任意药水不给出药水效果应该怎么做?像普通物品一样的话颜色就会出错
作者: CO68    时间: 2019-3-9 19:27
百度服务器 发表于 2017-11-7 21:38
羊毛该怎么设置?
type=item
items=35:14

羊毛没有专属的物品贴图,他是从方块直接转换过来的
作者: 18780262934    时间: 2019-4-8 16:11
请问如何更改材质包里的天空,原版材质包没有找到sky文件啊
作者: 16651356603    时间: 2019-5-30 20:14
我玩不了,真的是好可怜。
作者: 16651356603    时间: 2019-5-30 20:15
后我居然玩不了,我要赚积分。
作者: 古镇天Gu_ZT    时间: 2019-7-13 15:11
图炸了鸭!
作者: qq2219978145    时间: 2019-7-14 13:37
这是什么神仙,我看不懂。。
作者: Anthony_Wu    时间: 2019-7-17 14:48
感谢感谢感谢
作者: 世予予    时间: 2019-7-18 03:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: Maiomi9    时间: 2019-7-20 21:05
那么有1.14版本的教程吗
作者: smallpatpat    时间: 2019-7-21 16:44
不懂觉厉
作者: 天天光耀    时间: 2019-8-1 16:01
很好。很好用
作者: uiopjklkk    时间: 2019-8-1 19:45
老哥可以详细的讲解一下有关于附魔特效的更改嘛 我对这方面一直不是很明白 已经研究很久了
作者: 淡漠jun    时间: 2019-8-6 17:11
为什么不支持中文啊
作者: uiopjklkk    时间: 2019-8-21 15:59
hukk 发表于 2014-6-8 17:35
所有文章,均以完成翻译
如有发现有错误的地方
欢迎指正


老哥可以问一下嘛 就是这个optifne制作出来的材质包可以做到物品放在背包里是一个贴图 然后穿戴上后又是一个贴图么? 或者穿戴上后在上面叠加一个贴图。。 我之前看到一个服务器就是一个衣服拿在手上放在背包栏里没什么效果 穿戴到身上后那个装备栏的衣服格GUI就会出现一些别的特效..
作者: 筱柒不会哭    时间: 2019-11-26 20:14
我看到一个材质包里的一个物品的文件是
{
        "parent": "item/handheld",
        "textures": {
                "layer0": "items/1/11"
        }
}


这是通过什么实现物品更改材质的

作者: 2256618378    时间: 2020-1-7 13:30
好棒!支持原创材质
作者: 萌萌凌宝    时间: 2020-1-9 20:39
死活没找到关于json的,
作者: qianmou    时间: 2020-2-13 19:06
随机方块材质要怎么弄

作者: qianmou    时间: 2020-2-18 08:32
属性文件格式   什么=要加尖括号吗
作者: 2680887375    时间: 2020-2-18 21:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: wznms记    时间: 2020-2-20 00:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: q537409089    时间: 2020-2-20 10:40
MCBBS有你更精彩~
作者: jing_yu753    时间: 2020-2-24 23:40
66666666666666666666666666

作者: 抱枕丶蓝晨    时间: 2020-4-8 07:28
附魔纹理看不懂,能不能给个图片例子。。。
作者: 资本走狗    时间: 2020-4-17 11:34
太舒服了,感谢大佬
作者: 桐谷和人.1    时间: 2020-4-20 07:28
教程很好用啊,打赏下次再说吧awa
作者: 火系忍者    时间: 2020-4-20 15:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: lmyalmy    时间: 2020-4-21 06:04
顺便提一句,1.14+的官网说明+本人实测文件夹名需要从MCPatcher改成Optifine才能正常有效