本帖最后由 hukk 于 2015-1-21 10:45 编辑
我才不会说上面的目录可以点呢
lz的废话:
其实早在1.4之前就有筹划了,但由于学业原因,草草翻译了一下就收尾放出了(当时还不是资源包格式)某沉尸。
另外有人可能会说,"什么嘛,tt早发过教程了,lz发二遍干什么"
的确,tt的教程是不错,做一些简单的ctm之类绰绰有余,但并没有涉及所有的高级材质。
而且由于目前对英文原文内容的深入,发现tt的教程有很多内容都是不准确甚至是完全错误的。
而且tt的帖子已经好久没更新了,才算是真正下定决心开坑了。
可以保证为目前国内最准确质量最高的关于mcpatche高级材质的教程。
应该能保证一到两周更新一次吧,毕竟翻译这种东西要质量没速度的,而且内容有大量技术性词汇(会保留括号原文),不算是好翻译的= =§ |
本帖不欢迎的人:
不明觉利党
无意义沙发党
求做材质党
心态浮躁党
以上
回帖仅限技术交流和问题反馈.
前言:
本教程篇幅较长,建议一次挑一个学,边做边学,可以获得意想不到的效果.
开始教程之前确保你有如下技能&条件:
可基本操作支持alpha通道的绘图软件
对原版mc(vanilla minecraft)的资源包文件结构有详细的了解
对原版mc(vanilla minecraft)的一些机制有比较深入的了解
知道如何查看mc物品/方块的数字ID和英文ID
配置较好的电脑
制作材质的热情
耐心和充裕的时间
另外看教程时最好按我翻译的顺序看下来,因为有些技术性词汇只会在比较前面进行解释.
还有,属性文件详解是重点中的重点,建议保存到本地后用具有语法高亮的本文编辑器打开阅读.
本教程仅适于1.6+的资源包格式.使用前确保你已经安装了mcpatcher或optifine
另外由于资源包支持以文件夹形式加载,建议大家做材质的时候也用文件夹,这样
修改完材质后就不用关游戏,只需重新加载资源包了 |
加红的代表目前仅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:
连接纹理 20140425
更好的玻璃 20140428
更好的天空 20140501
杂项方块颜色 20140502
自定义动画 20140504
随机生物皮肤 20140510
高清字体 20140513
转盘动画 20140516
自定义鱼线拴绳 20140520
自定义物品材质 20140526
自定义颜色 20140528|20150121
颗粒效果颜色 20140529
自定义文字颜色 20140529
自定义物品生物颜色 20140529
自定义光照 20140604
自定义生物群落调色板 20140606 |
原文可以前往这里查看
各页面供参考的样本可以在这里下载:
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”的命名空间内,但未来可能会改变.
完整原文地址
技术性词汇摘要:
属性文件:
属性文件即是.properties文件.
材质:
特指原始材质.
纹理:
特指你绘制的用于替换原始材质的材质.
匹配:
类似与"绑定",也就是为某张原始材质绑定一个或多个规则.
水体:
水体指的是underwater,也就是你身处水下时,看到的才被称为水体.
水面:
水面指的是water,也就是你身处空气中时,看到的水面.
tile:
tile的翻译是瓷砖,这个解释对于mc是非常形象的.
想象一下,一个没有材质的方块就相当于一栋毛胚房.
而为没有材质的方块贴上tile的过程就相当于给毛胚房贴上瓷砖.
这是一个很好理解的过程.而tile具体就指的是"瓷砖"所使用的材质.
也就是位于textures\blocks\下的png图像
tiles:
这玩意是用于指定替换纹理的,也就是说一个tile将拥有哪些替换纹理.
链接:
专用于那些使用多张材质单个方块,例如门,大型植物.
多张材质之间是有相关性的,所以使"链接"而非"连接".
类型:
这里专指物品的类型,比如是普通物品,附魔物品和铠甲模型. |
页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文件夹或其子目录中.
在文件中添加如下属性(注意斜杠方向!!!)- from=<自定义动画的路径>
- to=<目标材质的路径>
- x=<矩形区域的x轴坐标>
- y=<矩形区域的y轴坐标>
- w=<矩形区域的宽度>
- h=<矩形区域的高度>
复制代码 参考前面的属性文件路径命名规则来填入路径.
这将创建一个简单的动画,从上到下按顺序播放各帧,每tick(1/20秒)播放一帧,无限循环.
在此获取关于tick的信息(
http://minecraft-zh.gamepedia.com/刻)
同一个目标材质中的多个,非重叠的部分也可以自定义动画通过创建不同的.properties文件并使用不同的x,y,w,h值.
他们甚至可以有独立的速度和帧顺序信息.
为了获得最大的兼容性,确保x,y,w,h为16的倍数.(另外如果矩形区域与帧的尺寸不符,mcpatcher将会对帧进行缩放)
帧的顺序和速度:
每个自定义动画还可以指定其动画速度和帧顺序.
需要在属性文件中添加一系列的条目
X从0开始,将按顺序显示你分配的帧.
Y是特定帧在.png动画文件中的tile number,最上方的第一个title是0,向下第二个title是1,以此类推.
Z是你想显示的帧的持续时间,在游戏刻(1/20s)中 .如果省略,持续时间将默认为1刻.
例如,假设你的自定义动画纹理为16x48(3帧).
创建一个在循环周期中暂停5刻的动画,则属性文件看起来可能是这样:
- tile.0=0
- tile.1=1
- tile.2=2
- duration.2=5
- tile.3=1
- 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详解
- ###############################################################################
- # compass.properties
- ###############################################################################
- # Sample compass.properties file for use with MCPatcher's Extended HD mod.
- #
- # This file is offered without any copyright restrictions. Please copy and
- # modify it to suit your needs.
- #
- # 然后将compass.properties和/或clock.properties放置在你材质包
- # 的mcpatcher/dial文件夹下.
- #
- # 所有的属性名称是区分大小写的!!
- # 所有的路径都是相对于assets/minecraft的,除非另有说明.
- ###############################################################################
- ###############################################################################
- # 各层的属性
- ###############################################################################
- # 自定义罗盘或时钟需要定义一系列的纹理图层. 每个图层都可以具有其独立的缩放,旋转
- # 和混合属性. 图层将从0开始逐层向上渲染. 必须至少定义两层的图层.
- # 注: 每张纹理可以是任意尺寸,不一定要与材质包尺寸相同,但最终渲染出的材质将始终
- # 为与默认罗盘/时钟材质相同的分辨率.
- # 可参考样本材质或misa的材质包
- # (必填) 替换纹理. 后续的图层使用source.1, source.2, 等.
- # 在1.6版本中,将不使用过滤器属性和%blur%前缀. 若要启用双线性过滤,创建一个包含如
- # 下内容的.mcmeta文件:
- # {
- # "texture": {
- # "blur": true,
- # "clamp": false
- # }
- # }
- source.0=<替换纹理>
- # (可选) 当层尺寸. 沿着x或y轴进行放大或缩小.
- scaleX.0=1.0
- scaleY.0=1.0
- # (可选) 当层的中心偏移量. 使用范围为-1 .. 1.
- offsetX.0=0.0
- offsetY.0=0.0
- # (可选) 混合方法. 查看sky.properties获取有效混合方法的完整列表.
- blend.0=alpha
- # (可选) 旋转. 应用于角度的乘数和偏移量. 对于罗盘角度是与出生点相差的度数. 对于
- # 时钟,角度是一天中的时间.
- # 显示的角度 = 旋转速度(rotationSpeed)*原始角度+旋转偏移量(rotationOffset)
- # 通常旋转速度(rotationSpeed)要么是0(用于静态层例如底座)
- # 要么是1(用于指针/表盘),但其他值可以用于创建类似时针和分针的东西.
- rotationSpeed.0=0.0
- rotationOffset.0=0.0
- # 最简单的情况下,一个罗盘有一个静态的底座和一根旋转的指针,看起来就像这样
- # source.0=~/dial/compass_base.png
- # source.1=~/dial/compass_dial.png
- # scaleY.1=0.5
- # rotationSpeed.1=1
- # compass_dial.png应该具有一根指向南方(下)的指针. 如果朝上,要么用图像编辑器将其
- # 翻转要么添加rotationOffset属性:
- # rotationOffset.1=180
- ###############################################################################
- # 其他属性
- ###############################################################################
- # (可选) 添加此属性来生成一个默认的Mojang风格的动画条,它可以作为一个无自定义
- # 罗盘/时钟支持的用户的备用动画.
- # 一系列间隔360/n度的帧将被渲染成custom_{compass,clock}.png并保存在你的
- # .minecraft文件夹中.(对帧进行旋转的处理方式为临近而非两次立方)
- # 一旦你满意这些文件,就可以将其移动到你材质包的textures/items/{compass,clock}.png路径.
- # 注: 你发布的材质包不应带有此属性的!
- outputFrames=<动画的总帧数>
复制代码 |
页4
高清字体(mcpatcher不建议使用高清字体,卡成翔.在安装时取消选项里的启用高清字体)
1.6开始,Minecraft允许更高分辨率的字体,但自定义仍然是有限的.
MCPatcher将首先在assets/minecraft/mcpatcher/font文件夹中查找字体位图.(不支持其下子文件夹)
这可以让你同时拥有可在原版mc显示的自定义字体以及需要mcpatcher才能够显示的更高分辨率的字体.
- 默认字体: assets/minecraft/mcpatcher/font/ascii.png
- 附魔台字体: assets/minecraft/mcpatcher/font/ascii_sga.png
注: 不支持自定义unicode字体.(包括unicode_page_00)(自定义unicode请修改glyph_sizes.bin方法见下方)
为了能够更好地控制单个字符的宽度,MCPatcher提供了一种手动指定它们的方法.
创建属性文件
- assets/minecraft/mcpatcher/font/ascii.properties
- assets/minecraft/mcpatcher/font/ascii_sga.properties
名为你想要自定义的字体.
属性文件格式:
在这个文件中的每一行指定一个字符的宽度:- width.<ascii值 0-255>=<宽度 0-8>
复制代码 注: 这里ascii值指的是字符在位图中的序号,遵循从左到右从上到下的规律排列.
例如,要指定大写的A,B,C的宽度,你可以使用
- width.65=5.9
- width.66=5
- 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
可以看到类似的一大串数据
这里每256字节对应一张位图,左侧的十六进制的百位即是对应的位图编号.
原版mc总共有222张unicode位图,而glyph_sizes.bin总共有65536字节数据,65536/256=256张.
bin文件按顺序对应每张位图.而那些缺失的位图则全部填充00. |
对比左侧数据和右侧图片,有什么发现?
这里每一个字节(Byte)代表一个字符.
而每个字节即控制着对应字符的宽度,举个简单的例子:
就好比你用ps选区,高度固定为字符高度.而一个字节数据控制选区开始和结束的X轴坐标.
每一个字节的高四位控制选区开端,低四位控制选区的结尾.
16控制的选区看起来就应该是这样
44控制的选区看起来就应该是这样
当然你也并非一定要字符处开始,从字符前的留空部分开始选取也是可以的.
按照上述规则慢慢填写即可以达到你想要的效果,当然你并不需要修改所有的宽度,只需要修改那些你觉得不舒服的字符的宽度. |
页5
随机生物皮肤
此功能允许你为每种生物创建替补皮肤,用于让游戏在生物生成时随机选取.
替补皮肤也可以有不同的概率,用于创建罕见的怪物皮肤.
它们也可以按生物群落和高度分组,用于创建以雪,沙漠,洞穴为主题的生物.
马无法使用随机皮肤,因为Minecraft为马使用了多张纹理(一种在原版mc中的类似随机生物的效果).
简单随机化:
随机生物皮肤很简单. 首先,找到你想进行随机化的原版mc的生物皮肤.
以assets/minecraft/textures/entity/的目录结构创建assets/minecraft/mcpatcher/mob/并从2开始添加一些文件名并不要漏掉任何一个数字,否则之后的皮肤将无法被加载.
你自己创建的不存在于entity/下的目录,例如entity/cow/bluecow,这些目录下的皮肤将不被加载.
例如爬行者的首张替补皮肤是
- assets/minecraft/mcpatcher/mob/creeper/creeper2.png
复制代码如果仅有这一张替补皮肤,则游戏有50%的几率使用原版mc的creeper.png,50%的几率使用候补的creeper2.png在爬行者生成时.
皮肤务必保存在文件夹entity/以及其子文件夹下! 对比如下部分:
- Creeper:
- assets/minecraft/textures/entity/creeper/creeper.png
- assets/minecraft/mcpatcher/mob/creeper/creeper2.png
- assets/minecraft/mcpatcher/mob/creeper/creeper3.png
- assets/minecraft/mcpatcher/mob/creeper/creeper4.png
- 等.
- 错误! 无法正常工作:
- assets/minecraft/mcpatcher/mob/creeper2.png
- Chicken:
- assets/minecraft/textures/entity/chicken.png
- assets/minecraft/mcpatcher/mob/chicken2.png
- assets/minecraft/mcpatcher/mob/chicken3.png
- assets/minecraft/mcpatcher/mob/chicken4.png
- 等.
复制代码 副生物皮肤:
一些生物有多张皮肤.
例如spider_eyes纹理是独立于主蜘蛛皮肤的.
狼有正常的,生气的和温顺的皮肤. 含有多张皮肤的有:
- creeper, creeper_armor
- dragon, dragon_eyes
- enderman, enderman_eyes
- ghast, ghast_shooting
- sheep, sheep_fur
- spider, spider_eyes
- wither, wither_armor, wither_invulnerable
- wolf, wolf_angry, wolf_tame, wolf_collar
有几种方法来处理这种情况.
- 提供多张基础皮肤但仅有一张眼睛纹理.
所有这种类型的生物都会有相同的眼睛.
如果你的眼睛纹理通用性足够好,这也许是个可行的选择. - 提供数量相同的配套皮肤.(例如有5张creeper,但只有3张creeper_armor)
如果你有相同数量的wolf,wolf_angry,和wolf_tame皮肤.
在狼改变情绪时MCPatcher会使用配套的皮肤. - 提供不同数量的对应皮肤.
这可能不是你想要的结果,因为它极难预测.
但如果你有多张任意组合都看起来不错基础皮肤和眼睛纹理,那将是有用的.
其他叠加皮肤:(optifine不支持)
某些生物还固定使用某个方块的纹理.
蘑菇牛在它的背上使用红蘑菇的纹理,雪人头上戴着南瓜.
MCPatcher提供了自定义这两张皮肤的能力.
任意数量的替补皮肤可以被使用,并且将与任何其他的副生物皮肤一起被随机化.
- Mooshroom:
- assets/minecraft/mcpatcher/mob/cow/mooshroom_overlay.png
- assets/minecraft/mcpatcher/mob/cow/mooshroom_overlay2.png
- assets/minecraft/mcpatcher/mob/cow/mooshroom_overlay3.png
- 等.
- Snowman:
- assets/minecraft/mcpatcher/mob/snowman_overlay.png
- assets/minecraft/mcpatcher/mob/snowman_overlay2.png
- assets/minecraft/mcpatcher/mob/snowman_overlay3.png
- 等.
复制代码这些纹理使用特殊的布局来适应其各自的实体模型.
蘑菇牛的叠加纹理包含三个正方形面板,将从左到右用于牛背上从头到尾的三个蘑菇.
绘制标准:
直接拼合三张蘑菇材质即可 |
参考例子:
雪人的叠加纹理是一个简单的立方体布局:
参考例子:
还有一种偷懒的方法是使用一张完全透明的snowman_overlay.png并且对基础皮肤snowman.png的头的部分进行自定义.
mob.properties详解(optifine不支持)
- ###############################################################################
- # mob.properties
- ###############################################################################
- # Sample mob.properties file for use with MCPatcher's Random Mobs mod.
- #
- # This file is offered without any copyright restrictions. Please copy and
- # modify it to suit your needs.
- #
- # 然后将其放置在你材质包的mcpatcher/mob文件夹下,
- # 并确保其与textures/entity中对应生物皮肤目录同级:
- #
- # 原版皮肤:
- # assets/minecraft/textures/entity/creeper/creeper.png
- # 高级皮肤:
- # assets/minecraft/mcpatcher/mob/creeper/creeper2.png
- # assets/minecraft/mcpatcher/mob/creeper/creeper3.png
- # assets/minecraft/mcpatcher/mob/creeper/creeper4.png
- # 等.
- # 属性文件(可选):
- # assets/minecraft/mcpatcher/mob/creeper/creeper.properties
- #
- # 原版皮肤:
- # assets/minecraft/textures/entity/chicken.png
- # 高级皮肤:
- # assets/minecraft/mcpatcher/mob/chicken2.png
- # assets/minecraft/mcpatcher/mob/chicken3.png
- # assets/minecraft/mcpatcher/mob/chicken4.png
- # 等.
- # 属性文件(可选):
- # assets/minecraft/mcpatcher/mob/chicken.properties
- #
- # 此文件包含一系列的规则,从1开始编号. 每个规则都指定了一个生物将使用的皮肤列表
- # 以及在一个或多个条件下使用它们的规则. 生物生成时的x,y,z坐标(单人模式)
- # 或当其首次被客户端看到时的x,y,z坐标(多人模式)将与序列中的每个规则进行核对.
- # 第一个匹配的规则将被使用. 如果没有规则匹配,将使用默认的皮肤(例如creeper.png).
- #
- # 如果不存在某个生物的.properties文件,那么所有可用的皮肤都将用于该生物. 这是原
- # 始的随机皮肤.
- #
- # 原版含有多张纹理的生物只需要一个基础皮肤的.properties文件.
- # 换句话说,你不需要创建
- # wolf.properties
- # wolf_tame.properties
- # wolf_angry.properties
- # 仅一个wolf.properties就可以适用于所有三张皮肤,只需要每张基础皮肤拥有相同数量
- # 的替补皮肤. 同样适用于*_eyes和*_overlay.
- #
- # 所有的属性名称是区分大小写的!!
- # 所有的路径都是相对于assets/minecraft的,除非另有说明.
- ###############################################################################
- ###############################################################################
- # 规则格式: <n>从1开始.
- ###############################################################################
- # (必填) 规则范围内使用的皮肤(仅填写皮肤编号).
- skins.<n>=<要使用的皮肤列表>
- # (可选) 用于随机选取的权重列表. 权重不必和为100或任何其他特定的值.
- weights.<n>=<与皮肤列表数量相同的权重列表>
- # (可选) 将应用本规则的生物群落的列表. 生物群落名称是区分大小写的.
- # 提供原版mc的生物群落名称参考(minecraft.gamepedia.com/Data_values#Biome_IDs)
- # Ocean Plains Desert ExtremeHills Forest Taiga Swampland River Hell Sky
- # FrozenOcean FrozenRiver IcePlains IceMountains MushroomIsland
- # MushroomIslandShore Beach DesertHills ForestHills TaigaHills
- # ExtremeHillsEdge Jungle JungleHills
- # 由其他mods添加的生物群落也可以被使用(删除生物群落名称内的空格).
- biomes.<n>=<生物群落列表>
- # (可选) 将应用本规则的海拔层数范围. (取代了旧的minHeight和maxHeight属性)
- heights.<n>=<层数范围0-255>
- ###############################################################################
- # 范例:(更多范例查看Misa的资源包)
- # mob/creeper.properties:
- ###############################################################################
- # 为所有地底爬行者使用creeper10.png到creeper14.png.(55+1是河床的高度)
- # creeper13.png有7.3% (3/(10+10+10+3+10))的概率将被使用.
- skins.1=10-14
- weights.1=10 10 10 3 10
- heights.1=0-55
- # 在高海拔地区和丘陵山地使用5,7,9.
- skins.2=5 7 9
- biomes.2=ExtremeHills DesertHills ForestHills ExtremeHillsEdge JungleHills IceMountains
- heights.2=80-255
- # 再退一步,如果没有其他被匹配的规则.
- # 请记住,如果没有规则被匹配,只有基础的mob/creeper.png将被使用.
- skins.3=1-4 6 8 15-20
复制代码 |
页6
自定义鱼线拴绳
自定义拴绳和鱼线的纹理
这两条硬编码外观的线可以被替换成自定义的纹理.
- 鱼线: assets/minecraft/mcpatcher/line/fishingline.png
- 拴绳: assets/minecraft/mcpatcher/line/lead.png
复制代码可参考misa的材质包
line.properties详解
- ###############################################################################
- # line.properties
- ###############################################################################
- # Sample line.properties file for use with MCPatcher's Random Mobs mod.
- #
- # This file is offered without any copyright restrictions. Please copy and
- # modify it to suit your needs.
- #
- # 您可以通过创建以下文件来替换默认的拴绳和鱼线材质:
- # mcpatcher/line/fishingline.png
- # mcpatcher/line/lead.png
- # 并且它们每个都可以拥有一个可选的属性文件来进一步自定义纹理的外观.
- # mcpatcher/line/fishingline.properties
- # mcpatcher/line/lead.properties
- # 上述文件的属性填写可以以此文件进行参考.
- #
- # 所有的属性名称是区分大小写的!!
- # 所有的路径都是相对于assets/minecraft的,除非另有说明.
- ###############################################################################
- # (可选) 自定义线纹理的宽度.
- # 默认为0.0075(鱼线)或0.025(拴绳).
- width=<值>
- # (可选) 自定义线纹理的拼接(线纹理每隔多久沿水平方向重复贴图一次).
- # 单位约等于每米想显示的线纹理数量.
- # 默认值为每米显示24张.
- tileFactor=<值>
复制代码 |
页7
自定义颜色
MCPatcher的自定义颜色功能可以定制游戏中广泛的硬编码颜色,从光照到颗粒效果再到羊.
由于可用的自定义过于广泛,说明被分为了单独的页面.
其中许多功能是由位于assets/minecraft/mcpatcher/color.properties的属性文件来控制.
其余的则有自己的属性文件和图像文件.
自定义生物群落调色板(地形,主世界迷雾,天空,和水体)
自定义光照贴图(自然光和人工光的照明)
自定义文字颜色(告示牌,GUI,聊天颜色)
自定义物品生物颜色(药水,刷怪蛋,皮革盔甲)
杂项方块颜色(红石线,南瓜/西瓜藤)
颗粒效果颜色(岩浆/水滴,经验球,菌丝颗粒)
color.properties详解
- ###############################################################################
- # color.properties
- ###############################################################################
- # Sample color.properties file for use with MCPatcher's Custom Colors mod.
- #
- # This file is offered without any copyright restrictions. Please copy and
- # modify it to suit your needs. 然后将其放到你材质包中的mcpatcher/colormap
- # 文件夹下.
- #
- # 你只需要为那些你相改变的属性提供数值. 为方便起见,以下提供给属性的颜色值均为
- # minecraft的默认颜色值.
- #
- # 所有的属性名称是区分大小写的!!
- # 所有颜色都为16进制的RGB格式,000000-ffffff.
- # 所有的路径都是相对于assets/minecraft的,除非另有说明.
- ###############################################################################
- ###############################################################################
- # 地狱和末地颜色(分别为地狱迷雾的颜色,末地迷雾的颜色,末地天空的颜色)
- ###############################################################################
- fog.nether=330707
- fog.end=131318
- sky.end=181818
- ###############################################################################
- # 荷叶颜色
- ###############################################################################
- # 所有生物群落的荷叶都将使用这一种颜色.
- lilypad=208030
- #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- #┃ ***其他颗粒效果*** ┃
- ###############################################################################
- # 颗粒效果的底色
- ###############################################################################
- # 水的颗粒效果(溅起的水粒,气泡,水滴)的底色.
- # 生物群落调色板中水的颜色将与此值进行正片叠底处理.
- # 这个值应该符合你的水方块材质的底色. 如果你的水方块的颜色是灰色(
- # 便于你通过一个生物群落调色板来着色),则你应设置为ffffff.
- particle.water=334cff
- # 传送门颗粒效果底色. 一个随机的介于66-FF之间的值将与底色的
- # 所有三个R/G/B值进行正片叠底处理.
- particle.portal=ff4ce5
- #┗━━━━━━━━━━━━━━***其他颗粒效果***━━━━━━━━━━━━━━┛
- #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- #┃ **自定义物品生物颜色** ┃
- ###############################################################################
- # 药水及药水效果的颜色(药水以及喝过药水后你身上散发的圈圈以及喷溅颗粒的颜色)
- ###############################################################################
- # 最终颜色是这些颜色通过以每个药水效果的等级作为权重,平均后的结果.
- potion.absorption=2552a5
- potion.blindness=1f1f23
- potion.confusion=551d4a
- potion.damageBoost=932423
- potion.digSlowDown=4a4217
- potion.digSpeed=d9c043
- potion.fireResistance=e49a3a
- potion.harm=430a09
- potion.heal=f82423
- potion.healthBoost=f87d23
- potion.hunger=587653
- potion.invisibility=7f8392
- potion.jump=786297
- potion.moveSlowdown=5a6c81
- potion.moveSpeed=7cafc6
- potion.nightVision=1f1fa1
- potion.poison=4e9331
- potion.regeneration=cd5cab
- potion.resistance=99453a
- potion.saturation=f82423
- potion.waterBreathing=2e5299
- potion.weakness=484d48
- potion.wither=352a27
- # potion.water代表一个普通的水瓶
- potion.water=385dc6
- ###############################################################################
- # 刷怪蛋颜色
- ###############################################################################
- egg.shell.Creeper=0da70b
- egg.spots.Creeper=000000
- egg.shell.Skeleton=c1c1c1
- egg.spots.Skeleton=494949
- egg.shell.Spider=342d27
- egg.spots.Spider=a80e0e
- egg.shell.Zombie=00afaf
- egg.spots.Zombie=799c65
- egg.shell.Slime=51a03e
- egg.spots.Slime=7ebf6e
- egg.shell.Ghast=f9f9f9
- egg.spots.Ghast=bcbcbc
- egg.shell.PigZombie=ea9393
- egg.spots.PigZombie=4c7129
- egg.shell.Enderman=161616
- egg.spots.Enderman=000000
- egg.shell.CaveSpider=0c424e
- egg.spots.CaveSpider=a80e0e
- egg.shell.Silverfish=6e6e6e
- egg.spots.Silverfish=303030
- egg.shell.Blaze=f6b201
- egg.spots.Blaze=fff87e
- egg.shell.LavaSlime=340000
- egg.spots.LavaSlime=fcfc00
- egg.shell.Bat=4c3e30
- egg.spots.Bat=0f0f0f
- egg.shell.Witch=340000
- egg.spots.Witch=51a03e
- egg.shell.Endermite=161616
- egg.spots.Endermite=6e6e6e
- egg.shell.Pig=f0a5a2
- egg.spots.Pig=db635f
- egg.shell.Sheep=e7e7e7
- egg.spots.Sheep=ffb5b5
- egg.shell.Cow=443626
- egg.spots.Cow=a1a1a1
- egg.shell.Chicken=a1a1a1
- egg.spots.Chicken=ff0000
- egg.shell.Squid=223b4d
- egg.spots.Squid=708899
- egg.shell.Wolf=d7d3d3
- egg.spots.Wolf=ceaf96
- egg.shell.MushroomCow=a00f10
- egg.spots.MushroomCow=b7b7b7
- egg.shell.Ozelot=efde7d
- egg.spots.Ozelot=564434
- egg.shell.EntityHorse=c09e7d
- egg.spots.EntityHorse=eee500
- egg.shell.Rabbit=995f40
- egg.spots.Rabbit=734831
- egg.shell.Villager=563c33
- egg.spots.Villager=bd8b72
- ###############################################################################
- # 地图颜色
- ###############################################################################
- map.air=000000
- map.grass=7fb238
- map.sand=f7e9a3
- map.cloth=a7a7a7
- map.tnt=ff0000
- map.ice=a0a0ff
- map.iron=a7a7a7
- map.foliage=007c00
- map.snow=ffffff
- map.clay=a4a8b8
- map.dirt=b76a2f
- map.stone=707070
- map.water=4040ff
- map.wood=685332
- map.quartz=fffcf5
- map.adobe=d87f33
- map.magenta=b24cd8
- map.lightBlue=6699d8
- map.yellow=e5e533
- map.lime=7fcc19
- map.pink=f27fa5
- map.gray=4c4c4c
- map.silver=999999
- map.cyan=4c7f99
- map.purple=7f3fb2
- map.blue=334cb2
- map.brown=664c33
- map.green=667f33
- map.red=993333
- map.black=191919
- map.gold=faee4d
- map.diamond=5cdbd5
- map.lapis=4a80ff
- map.emerald=00d93a
- map.obsidian=15141f
- map.netherrack=700200
- ###############################################################################
- # 羊的颜色
- ###############################################################################
- sheep.white=ffffff
- sheep.orange=f2b233
- sheep.magenta=e57fd8
- sheep.lightBlue=99b2f2
- sheep.yellow=e5e533
- sheep.lime=7fcc19
- sheep.pink=f2b2cc
- sheep.gray=4c4c4c
- sheep.silver=999999
- sheep.cyan=4c99b2
- sheep.purple=b266e5
- sheep.blue=3366cc
- sheep.brown=7f664c
- sheep.green=667f33
- sheep.red=cc4c4c
- sheep.black=191919
- ###############################################################################
- # 染色皮甲颜色
- ###############################################################################
- armor.default=a06540
- # armor.default是指那些未染色的皮甲和那些不同颜色皮甲混搭的皮甲.
- armor.white=ffffff
- armor.orange=f2b233
- armor.magenta=e57fd8
- armor.lightBlue=99b2f2
- armor.yellow=e5e533
- armor.lime=7fcc19
- armor.pink=f2b2cc
- armor.gray=4c4c4c
- armor.silver=999999
- armor.cyan=4c99b2
- armor.purple=b266e5
- armor.blue=3366cc
- armor.brown=7f664c
- armor.green=667f33
- armor.red=cc4c4c
- armor.black=191919
- ###############################################################################
- # 狗项圈颜色
- ###############################################################################
- collar.white=ffffff
- collar.orange=f2b233
- collar.magenta=e57fd8
- collar.lightBlue=99b2f2
- collar.yellow=e5e533
- collar.lime=7fcc19
- collar.pink=f2b2cc
- collar.gray=4c4c4c
- collar.silver=999999
- collar.cyan=4c99b2
- collar.purple=b266e5
- collar.blue=3366cc
- collar.brown=7f664c
- collar.green=667f33
- collar.red=cc4c4c
- collar.black=191919
- ###############################################################################
- # 染料颜色
- # 注: 这些值的确存在于游戏中,但实际上并没有在任何地方被使用.
- ###############################################################################
- dye.black=1e1b1b
- dye.red=b3312c
- dye.green=3b511a
- dye.brown=51301a
- dye.blue=253192
- dye.purple=7b2fbe
- dye.cyan=287697
- dye.silver=287697
- dye.gray=434343
- dye.pink=d88198
- dye.lime=41cd34
- dye.yellow=decf2a
- dye.lightBlue=6689d3
- dye.magenta=c354cd
- dye.orange=eb8844
- dye.white=f0f0f0
- #┗━━━━━━━━━━━━━**自定义物品生物颜色**━━━━━━━━━━━━━┛
- #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- #┃ **自定义文字颜色** ┃
- ###############################################################################
- # 杂项文字颜色
- ###############################################################################
- # 经验等级文字的颜色
- text.xpbar=80ff20
- # "Boss Health"文字的颜色
- text.boss=ff00ff
- # 告示牌文字颜色
- text.sign=000000
- ###############################################################################
- # 聊天文字颜色
- ###############################################################################
- # 由§ + 0123456789abcdef样式代码生成的颜色
- text.code.0=000000
- text.code.1=0000aa
- text.code.2=00aa00
- text.code.3=00aaaa
- text.code.4=aa0000
- text.code.5=aa00aa
- text.code.6=ffaa00
- text.code.7=aaaaaa
- text.code.8=555555
- text.code.9=5555ff
- text.code.10=55ff55
- text.code.11=55ffff
- text.code.12=ff5555
- text.code.13=ff55ff
- text.code.14=ffff55
- text.code.15=ffffff
- text.code.16=000000
- text.code.17=00002a
- text.code.18=002a00
- text.code.19=002a2a
- text.code.20=2a0000
- text.code.21=2a002a
- text.code.22=2a2a00
- text.code.23=2a2a2a
- text.code.24=151515
- text.code.25=15153f
- text.code.26=153f15
- text.code.27=153f3f
- text.code.28=3f1515
- text.code.29=3f153f
- text.code.30=3f3f15
- text.code.31=3f3f3f
- ###############################################################################
- # 任何其他RGB值
- ###############################################################################
- # 任何文本的颜色可以被任何其它颜色替换,而无视上下文.
- text.<旧RGB值>=<新RGB值>
- #┗━━━━━━━━━━━━━━**自定义文字颜色**━━━━━━━━━━━━━━┛
- #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- #┃ **自定义生物群落调色板** ┃
- ###############################################################################
- # 自定义生物群落调色板
- ###############################################################################
- # 使用此属性你可以将自定义生物群落调色板应用于任何标准方块指定(即一个未给自己指
- # 定专色的方块). 每一个自定义颜色表(调色板)都应该有一个对应的.properties文件
- # 在~/colormap/custom文件夹中. 查看colormap.properties获取更多细节信息.
- #
- # 默认的自定义颜色表(调色板)格式:
- # Mojang式的温度+湿度颜色表:
- # palette.format=vanilla
- # MCPatcher式的网格(x=生物群落ID,y=层数高度)颜色表:
- # palette.format=grid
- # 请注意这个设置不会影响到在assets/minecraft/textures/colormap文件夹中的
- # 原版mc的树叶/草地颜色表. 它们每个颜色表同样也可以被重写,通过
- # 在~/colormap/custom文件夹中的每个单独的.properties文件.
- #┗━━━━━━━━━━━━**自定义生物群落调色板**━━━━━━━━━━━━━┛
- ###############################################################################
- # 完整文件列表
- ###############################################################################
- # 以下是自定义颜色mod使用的文件的完整列表:
- # 注: ~是简写的mcpatcher文件夹(assets/minecraft/mcpatcher)
- # ~/color.properties - 当前文件
- # ~/colormap/redstone.png - 16x1的红石线颜色(0=未充能,15=完全充能)
- # ~/colormap/pumpkinstem.png - 8x1南瓜藤颜色(0=萌芽,7=完全成熟)
- # ~/colormap/melonstem.png - 8x1西瓜藤颜色(0=萌芽,7=完全成熟)
- # ~/colormap/lavadrop.png - Nx1岩浆滴颜色(详见颗粒效果章节)
- # ~/colormap/myceliumparticle.png - 任何尺寸,随机选取像素作为菌丝颗粒效果的颜色
- # ~/colormap/xporb.png - 任何尺寸,经验球颜色的数组(详见颗粒效果章节)
- #
- # ~/colormap/swampgrass.png - 256x256的沼泽草地颜色调色板
- # ~/colormap/swampfoliage.png - 256x256的沼泽树叶颜色调色板
- # ~/colormap/oak.png - 256x256的橡树树叶颜色调色板
- # ~/colormap/pine.png - 256x256的松树树叶颜色调色板
- # ~/colormap/birch.png - 256x256的桦树树叶颜色调色板
- # ~/colormap/jungle.png - 256x256的丛林树树叶颜色调色板
- # ~/colormap/water.png - 256x256的水面颜色调色板
- # ~/colormap/underwater.png - 256x256的水体颜色调色板
- # ~/colormap/fog0.png - 256x256的主世界迷雾颜色调色板
- # ~/colormap/sky0.png - 256x256的主世界天空颜色调色板
- #
- # ~/lightmap/world0.png - Nx32或Nx64的主世界光照调色板
- # ~/lightmap/world-1.png - Nx32或Nx64的地狱光照调色板
- # ~/lightmap/world1.png - Nx32或Nx64的末地光照调色板
- # 以上均为 长x高
复制代码 |
页8
自定义生物群落调色板
在原版的Minecraft中,草地和树叶材质的不同颜色取决于周围的生物群落气候.
这通过两个文件来控制:
- assets/minecraft/textures/colormap/grass.png
- assets/minecraft/textures/colormap/foliage.png
复制代码
每个文件都是一个256x256的颜色表,将应用到草地或树叶的材质(通常是灰色).
MCPatcher极大地扩展了这个功能,让其支持其他方块和周围的天空和迷雾的颜色.
艺术家可以用这个来获取极好的效果,还原每个生物群落其本身的感觉.
此页被分成两个部分. 首先介绍颜色表图像的格式,第二部分展示了如何将他们应用到游戏中的各种元素.
原版颜色表格式:
原版Minecraft使用的格式,他是一张256x256的颜色表,其轴分别代表温度和湿度.
每个生物群落都有固定的基础温度和湿度值,对应于颜色表中的单个像素.
随着y轴坐标的变大,其在颜色表中的位置也慢慢向右下方移动.
一个由khanador撰写的论坛帖子展示了他(指颜色表)是如何工作的.
所有自定义颜色表默认使用原版格式来读取,除非你在属性文件中指定其格式.
MCPatcher的"网格"格式:
另一种可以更精确地控制每种生物群落的方法.
可以在下面的
生物群落(Grid格式)中看到详述.
其他格式:
此外,MCPatcher还提供了一个"固定"颜色表格式.
此格式不需要图像; 他仅仅是一个单一的颜色,将应用到所有不同地方的方块.
其主要目的是覆盖一某些硬编码方块的颜色,例如甘蔗.
属性文件格式详解:(重要)
一个自定义颜色表可以包含任何一张png文件,或属性文件,或两者兼而有之,这取决于你想要做什么.
所有属性都是可选的,并且实际上属性文件都可以省略,如果你不需要改变他们的任何地方.
(可选) 颜色表格式:
- format=<vanilla | grid | fixed>
复制代码
如果省略,则默认使用vanilla格式.
如果你想默认使用grid格式,你需要在assets/minecraft/mcpatcher/color.properties文件中设置全局格式:
请注意这个设置不会影响到在assets/minecraft/textures/colormap文件夹中的原版grass.png和foliage.png文件.
查看下方的"草地和树叶"章节来了解如何使用网格格式用于这些材质.
(可选) 方块及元数据值的列表:
对于用于地形(而非用于迷雾,天空,和水体)的颜色表,这将设置方块与可选元数据的列表,自定义颜色表被将应用到列表.
样本参考:
- # 等价于原版的grass.png
- blocks=grass tallgrass:1,2 reeds
- # 与上面一样,但不应用到甘蔗
- blocks=grass tallgrass:1,2
- # 等价于原版的foliage.png
- blocks=leaves:0,4,8,12 vine
- # 松树/云杉树叶
- blocks=leaves:1,5,9,13
- # 白桦树叶
- blocks=leaves:2,6,10,14
- # 丛林树叶
- blocks=leaves:3,7,11,15
- # 金合欢树叶
- blocks=leaves2:0,4,8,12
- # 深色橡树叶
- blocks=leaves2:1,5,9,13
- # 水面
- blocks=water flowing_water
复制代码
(可选) 颜色表图像:
仅用于vanilla和grid颜色表. 颜色表的路径.
(可选) 默认颜色:
对于format=fixed,这是简单的将一个固定的颜色应用到所有被匹配的方块.
如果没有赋值,则默认为白色(ffffff).(也就是颜色没有变化,这是正片叠底的算法)
对于format=vanilla或grid,这是一种用于手持方块/掉落方块/背包内方块的默认颜色.
如果没有赋值,要从一个固定位置采集默认颜色取决于方法的格式:
- format=vanilla: x=127,y=127 (位图的中心)
- format=grid: x=1,y=64 (处于海平面层数的草原生物群落)
复制代码
如何应用一个自定义颜色表:
自定义颜色表可以应用到任何一种方块或一组方块,或仅包含某些特定元数据值的方块类型.
它们也可以应用到环境颜色,如迷雾,天空,和水体.
对于基于方块的颜色表可以通过以下两种方式之一应用之: 作为在assets/minecraft/mcpatcher/color.properties中的列表,或作为assets/minecraft/mcpatcher/colormap/blocks下的单独的属性文件.
对于第一种方法,使用如下语法:
- palette.block.<颜色表图像>=<方块+可选元数据的列表>
复制代码
例如,这将为四种基本类型的树叶分配自己的颜色表:
- palette.block.~/colormap/oak.png=leaves:0,4,8,12
- palette.block.~/colormap/pine.png=leaves:1,5,9,13
- palette.block.~/colormap/birch.png=leaves:2,6,10,14
- palette.block.~/colormap/jungle.png=leaves:3,7,11,15
复制代码
这个方法有两个限制: 实际上,只有source和blocks属性可以被设置; 其他均为默认.
其次,如果玩家使用多个资源包,只有最上层的color.properties文件将被游戏读取.
另一种方法是使用位于assets/minecraft/mcpatcher/colormap/blocks下的单独属性文件.
子文件夹是允许的,这可以让你更容易地分类.
上面的例子也可以使用这个方法:
- assets/minecraft/mcpatcher/colormap/blocks/oak.properties:
- blocks=leaves:0,4,8,12
- assets/minecraft/mcpatcher/colormap/blocks/pine.properties:
- blocks=leaves:1,5,9,13
- assets/minecraft/mcpatcher/colormap/blocks/birch.properties:
- blocks=leaves:2,6,10,14
- assets/minecraft/mcpatcher/colormap/blocks/jungle.properties:
- blocks=leaves:3,7,11,15
复制代码
上面假设你有oak.png,pine.png,birch.png,和jungle.png并且在相同的目录.
单个方块
最简单的情况下,一个自定义颜色表应用到单个没有元数据值的方块,不需要属性文件.
例如,assets/minecraft/mcpatcher/colormap/blocks/sand.png将应用到沙子方块,而无需指定blocks=sand属性.
多种方块
采用相同的颜色表应用到所有石头方块和矿石方块,使用类似的属性文件:
assets/minecraft/mcpatcher/colormap/blocks/stone_and_ore.properties:
blocks=stone gold_ore iron_ore coal_ore lapis_ore diamond_ore redstone_ore lit_redstone_ore monster_egg:0 emerald_ore
如果你的颜色表图像为grid格式则添加format=grid属性.
如果颜色表也被命名stone_and_ore.png,则无需source属性.
在color.properties中可以这样写:
- palette.block.~/colormap/custom/stone.png=stone gold_ore iron_ore coal_ore lapis_ore diamond_ore redstone_ore lit_redstone_ore monster_egg:0 emerald_ore
复制代码
添加palette.format=grid属性将为所有颜色表使用grid格式的读取方式(原版的grass和foliage.png除外).
草地和树叶:
自定义颜色表将取代原版的grass.png和foliage.png.
创建一个自定义颜色表属性文件:
assets/minecraft/mcpatcher/colormap/blocks/grass.properties:
- format=grid
- # 注: blocks=grass属性是没有必要的,因为属性文件的文件名已经包含了
- yVariance=2
复制代码
assets/minecraft/mcpatcher/colormap/blocks/oak.properties:
- format=grid
- blocks=leaves:0,4,8,12
复制代码
在1.7中固定甘蔗的颜色:
从1.7开始,Minecraft将grass.png的颜色应用到甘蔗.
一个ffffff(白色)的固定颜色表将有效地将其恢复到1.6的行为.
一个256x256的全白的颜色表可以做到同样的事,但下面的方法更有效率.
做到这一点最简单的方法是创建一个只包含一行的属性文件:
assets/minecraft/mcpatcher/colormap/blocks/reeds.properties:
这样的属性文件可以工作是因为blocks属性默认为文件名(reeds)并且color属性默认为固定的颜色表ffffff.
环境颜色(迷雾,天空,和水体的颜色):
这些特殊命名的颜色表将覆盖默认的固定环境颜色:
- Overworld fog: assets/minecraft/mcpatcher/colormap/fog0.png
- Overworld sky: assets/minecraft/mcpatcher/colormap/sky0.png
- Underwater: assets/minecraft/mcpatcher/colormap/underwater.png
每一个都可以有一个相应的属性文件来指定格式或其他设置.
这些色彩表的行为就如同基于地形,那些不同之处在于,他们不关心blocks属性. |
独立属性colormap.properties格式:(前面介绍的第二种方法)(样本参考文件)
- ###############################################################################
- # colormap.properties
- ###############################################################################
- # Sample colormap.properties file for use with MCPatcher's Custom Colors mod.
- #
- # This file is offered without any copyright restrictions. Please copy and
- # modify it to suit your needs. 然后将其放到你材质包中的mcpatcher/colormap
- # 文件夹下.
- #
- # 所有的属性名称是区分大小写的!!
- # 所有颜色都为16进制的RGB格式,000000-ffffff.
- # 所有的路径都是相对于assets/minecraft的,除非另有说明.
- ###############################################################################
- ###############################################################################
- # (可选) 颜色表的格式.
- ###############################################################################
- # fixed: 固定为单个颜色,不需要图像. 在去除原版生物群落的着色时十分有用,从而
- # 让你无需创建一个256x256的全白颜色表.
- #
- # vanilla: 原版的温度+湿度的256x256颜色表. 由于这个事实的限制,不同的生物群落共
- # 享相同的基础温度+湿度值.
- #
- # grid: MCPatcher式的网格(x=生物群落ID,y=层数高度)256x256颜色表. 每一列代表
- # 一个生物群落从虚空到最高可构建高度间的颜色变化. 未使用的列应该填充
- # 一个合理的默认颜色渐变以适应由mods补充的生物群落.
- #
- # 默认的格式为vanilla,但这可以通过在~/color.properties中设置palette.format全局
- # 属性来覆盖.
- format=<fixed | vanilla | grid>
- ###############################################################################
- # (可选) 颜色表将要应用到的方块(具有可选的元数据)列表.
- ###############################################################################
- # 从1.7开始,方块的简称由数字变为了名称. 只有旧的方块支持数字ID,新方块将只有名称.
- # 例如石头方块可以被称为:
- # 1 (不推荐)
- # minecraft:stone (完整名称)
- # stone (没有前缀的名称)
- #
- # 为所有石头方块和矿石方块着色:
- # blocks=stone gold_ore iron_ore coal_ore lapis_ore diamond_ore redstone_ore
- # lit_redstone_ore emerald_ore monster_egg:0
- #
- # 方块+元数据也支持使用下面的语法:
- # blocks=sandstone double_stone_slab:1 stone_slab:1
- # 应用到砂石方块和半砖.
- #
- # 同一个方块的元数据值可以组合使用:
- # blocks=leaves:3,7,11,15
- # 应用到丛林树叶.
- #
- # 如果没有设置(或没有.properties文件),他将默认使用基于文件名的方法,例如:
- # assets/minecraft/mcpatcher/colormap/custom/stone.png -> minecraft:stone
- blocks=<方块列表 + 可选的元数据>
- ###############################################################################
- # (可选) (仅format=fixed或vanilla)颜色表图像.
- ###############################################################################
- # 路径可以是相对于.properties文件的位置. 图像应该为一张256x256的颜色表.
- # 如果没有指定source属性,将默认使用与.properties文件的文件名相同的png图像.
- source=<图像>
- ###############################################################################
- # (可选) 固定使用一种RGB颜色.
- ###############################################################################
- # 对于format=fixed,这是简单的将一个固定的颜色应用到所有被匹配的方块.
- # 如果没有赋值,则默认为白色(ffffff).(也就是颜色没有变化,这是正片叠底的算法)
- #
- # 对于format=vanilla或grid,这是一种用于手持方块/掉落方块/背包内方块的默认颜色.
- # 如果没有赋值,要从一个固定位置采集默认颜色取决于方法的格式:
- # format=vanilla: x=127,y=127 (位图的中心)
- # format=grid: x=1,y=64 (处于海平面层数的草原生物群落)
- color=<十六进制的RGB值>
- ###############################################################################
- # (仅format=grid) y轴的方差值.(y=方块层数,[y-2,y+2],随机选取象限内一值以此取色)
- ###############################################################################
- # 这增加了一个可配置的作用于颜色表y轴坐标的随机量,并先于对颜色表的采样.
- # 例如值为2.0时会从颜色表y-2到y+2处选择一个值,用于对颜色表的采样.
- # 默认为0(无方差).
- yVariance=<值>
- ###############################################################################
- # (仅format=grid) y轴的偏移量.(y=方块层数,y-64,{y<0:y=0}{y=y},使用y取色)
- ###############################################################################
- # 这将从方块的y坐标减去一个固定值,并先于对颜色表的采样.
- # 例如值为64时将使用位于颜色表y=0处的像素用于0-64层间的方块.
- # 一个在65层的方块将使用y=1处的像素,66层的使用y=2处的像素,以此类推.
- # 默认为0(无偏移量).
- yOffset=<值>
复制代码 |
生物群落(Grid格式)
自定义生物群落调色板(网格格式):
原版的颜色表格式有些缺点.
首先有些生物群落例如沙漠在颜色表的变化中只有一个像素,这意味着他们的颜色不会通过高度变化.
此外,多个生物群落公享他们的温湿度值,因此不可能给他们不同的配色方案.
即使基础温湿度值是不同的,有时在高海拔地区生物群落还是会重叠.
MCPatcher提供了一种替代方案,最先由Misa提出.
就像原版的颜色表,他在 -- 通常情况下,查看下面的小贴士 -- 是一张256x256的颜色表,但x坐标代表生物群落的ID数,y坐标代表高度.(查看Minecraft Wiki的生物群落ID列表.)
这使得生物群落之间的完全分离,让你完全控制从基岩层到最高可构建高度的颜色变化.
高度层数: (参考minecraft.gamepedia.com/Altitude)
颜色表中的每一列都代表一个生物群落.
请注意此图像是垂直"翻转"的: 世界的底部(y=0)在图像顶部而最高可构建高度(y=255)在图像底部.
海平面为y=64. 通常情况下,你会为每一列创建一些渐变.
模板:
小贴士:
向前兼容性: 在颜色表中未使用的列代表未被分配的生物群落ID,他们可以由任何未来版本的Minecraft或模组来分配.
当然你也可以创建特定模组的生物群落的配色方案,前提是你需要知道他们所使用的生物群落ID.
不过即使你不这样做,也最好是至少为未使用的列挑选一个看起来比较中性的渐变,使新的生物群落有一个合理的缺省外观.
向后兼容性: 无论你在属性文件中如何设置,在assets/minecraft/textures/colormap文件夹中的grass.png和foliage.png颜色表永远都是原版格式.
若要为草地和树叶使用网格格式,你必须在assets/minecraft/mcpatcher/colormap/blocks文件夹下创建自定义颜色表,并将其应用到相应的一种或多种方块.
对于MCPatcher用户,自定义的颜色表将取代原版的颜色表; 对于MCPatcher用户,仅原版的颜色表将被使用.
解决方法: 虽然这种格式的颜色表通常都是256x256像素,没有硬性要求要与原版格式相同:
- Minecraft1.7引入了许多罕见的生物群落变种. 例如"桦木森林M"(ID 155)是"桦木森林"(ID 27)的罕见版本. 方便的是,罕见的ID始终等于常见的ID+128. 这一事实可以被利用,如果你希望所有的稀有生物群落与相应的非罕见生物群落使用同一配色方案. 只简单地让你的颜色表为128像素宽而非256像素,MCPatcher将沿着x轴方向选择指定列用于生物群落.
- 同样,一个1像素宽的颜色表提供了一个横跨所有生物群落的基于高度的颜色渐变.
- 在y轴方向,如果你的颜色表超过了256像素,MCPatcher会很乐意使用他们,假如服务器的构建高度高于默认的话. 同样,如果你的颜色表短于了256像素,这个高度之上的所有方块都会使用与该高度相同的颜色.
- 尤其是,64像素高的颜色表允许地下的颜色变化并固定(绑定一种颜色)海平面以上的颜色.
- 192像素高的颜色表结合yOffset=64属性给你的效果正好相反: 海平面以上会有颜色变化而以下部分则固定颜色.
- 一个1像素高的颜色表允许生物群落之间的颜色差异,但没有不同高度的颜色差异.
|
页9
自定义光照
MCPatcher可以让你自定义游戏中的光照.
原版中光照是如何运作的:
每个方块会分配到两个范围0-15的亮度值,一个是天空亮度,一个是火把亮度.
一个在阳光直射下的方块具有值为15的天空亮度.
一个在树荫下并与刚才那个方块毗邻的方块具有值为14的天空亮度,以此类推.
一个深入地下的方块,且其远离任何可以看到天空的方块,则具有值为0的天空亮度.
对于火炬也是同理.
一个火把方块具有值为14(萤石则为15)的亮度值,并且每远离他一个方块的距离,亮度值就下降1.
要生成你在游戏中实际看到的光照,Minecraft使用了一张16x16的光照贴图.
其轴对应每种光源类型的16个光照水平.
如果一个方块拥有火炬亮度x和天空亮度y,则光照贴图坐标(x,y)处的点将被使用.
光照贴图不是任何游戏文件,但会在每帧画面中生效.
两个变量影响光照贴图,一天中的时间和火炬闪烁.(不是火把上的火焰而是光照忽明忽暗的效果)
Minecraft实现了黄昏/黎明间的转换和火炬闪烁,从而使整个光照贴图变暗或变亮,而不是通过调整天空/火炬的亮度值来实现这点.
自定义光照:
要使用自定义光照,你需要为每个世界创建一个光照贴图调色板:
- 末地: assets/minecraft/mcpatcher/lightmap/world1.png
- 主世界: assets/minecraft/mcpatcher/lightmap/world0.png
- 地狱: assets/minecraft/mcpatcher/lightmap/world-1.png
每个光照调色板图像可以是任意的宽度,但必须为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
自定义文字颜色
- 内容已转移至assets/minecraft/mcpatcher/color.properties.
- 以下是原版的默认颜色.
- 杂项颜色请参见 **自定义文字颜色**---杂项文字颜色 章节.
- 聊天颜色请参见 **自定义文字颜色**---聊天文字颜色 章节.
- 任何其他RGB值请参见 **自定义文字颜色**---任何其他RGB值 章节.
复制代码
页11
自定义物品生物颜色
- 内容已转移至assets/minecraft/mcpatcher/color.properties.
- 以下是原版的默认颜色.
- 药水及药水效果颜色请参见 **自定义物品生物颜色**---药水及药水效果的颜色 章节.
- 刷怪蛋颜色请参见 **自定义物品生物颜色**---刷怪蛋颜色 章节.
- 地图颜色请参见 **自定义物品生物颜色**---地图颜色 章节.
- ---根据物质的类型分配地貌颜色
- 羊的颜色请参见 **自定义物品生物颜色**---羊的颜色 章节.
- ---自定义染色羊的颜色(而非染色羊毛方块)
- 染色皮甲颜色请参见 **自定义物品生物颜色**---染色皮甲颜色 章节.
- ---颜色将应用到leather_layer_1.png和leather_layer_2.png来生成染色皮甲.
- 狗项圈颜色请参见 **自定义物品生物颜色**---狗项圈颜色 章节.
- ---自定义染色项圈的颜色.
- 染料颜色(未使用)请参见 **自定义物品生物颜色**---染料颜色 章节.
复制代码
页12
杂项方块颜色
某些方块使用特殊的着色方法,而非使用自定义生物群落调色板.
用于红石线的着色
assets/minecraft/mcpatcher/colormap/redstone.png
图像高度为1,宽度为16.
分别对应红石线的0-15的亮度等级.
例子效果
0 1 2 3 4 5 6 7 8 9 A B C D E F
|
南瓜藤与西瓜藤
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为成熟.
例子效果
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
左侧是西瓜藤,右侧是南瓜藤
|
页13
颗粒效果颜色
岩浆滴:(optifine不支持)
- assets/minecraft/mcpatcher/colormap/lavadrop.png
复制代码
这是用于岩浆滴颗粒在其下落过程中冷却的效果的位图.
图像的高度为1,宽度可以为任何值.
X轴代表颗粒的年龄以游戏刻(1/20秒)作为单位进行演变.
岩浆滴颗粒在首40刻左右通常是不可见的,因为它们一开始产生在上方的方块中,所以90像素是一个很好的宽度.
如果颗粒效果的寿命长于图像的宽度,其剩余的时间将会固定使用最后一个像素.
经验球:(optifine不支持)
- assets/minecraft/mcpatcher/colormap/xporb.png
复制代码
用于经验球. 图像可以是任意尺寸.
颜色选区将沿一个正弦波形移动从(0,0)开始到图片结束.
正弦波的速度被减慢相对于原版变慢了4倍,来允许材质包拥有一个比默认的经验球脉动较慢的脉动效果.
如果你想保持默认的速度,只需要垂直平铺你的图像高度到原来的4倍.
菌丝颗粒效果:
- assets/minecraft/mcpatcher/colormap/myceliumparticle.png
复制代码
用于菌丝方块散发的颗粒. 图像可以是任意尺寸.
每个新的颗粒将随机选取位图中的颜色.
其他颗粒效果:(optifine仅不支持"方块水滴效果")
- 内容已转移至assets/minecraft/mcpatcher/color.properties.
- 请至 ***其他颗粒效果***---颗粒效果的底色 章节查看.
复制代码
页14
连接纹理
注意:以下tiles均翻译为面,实指方块一面上的贴图. face均翻译为朝向,实指朝向哪个方位.
以下tilesheet不做翻译,实指包含47张tiles的完整图像,1.5版本材质切分之前就使用这种tilesheet.
MCPatcher提供的一个极大增强版的
Connected Textures Mod. 除了以不同的方式连接临近的方块的方法, MCPatcher还支持随机, 重复, 和固定的方法. 任何一种方法都可以有条件地使用通过方块ID,面的文件名(这个面对应材质的文件名), 元数据,朝向, 生物群落, 或高度.
CTM的属性文件和覆盖纹理都在~/ctm文件夹内. 每一个配置文件中申明了对一个方块或一个面的替换, 使用的方法, 一些覆盖纹理, 和一些可选的条件, 例如元数据和朝向. 多个属性文件会影响同一个方块或面, 但只有第一个匹配的(按字母顺序排列的文件名)会被使用. 文件在~/ctm中可以被分类到任何深度的子文件夹中. 子文件夹只是让纹理作者更方便地分类; MCPatcher不会去关心它们的名字(仅遍历属性文件?).
一个简单的玻璃方块的连接纹理需要一个属性文件和47张单独的纹理:
- ~/ctm/myglass/block20.properties:
- method=ctm
- tiles=0-46
复制代码单独的面文件必须按照以下方式排列在/ctm/myglass目录下:
上图显示了47张面的图像. 在你的纹理包中, 你必须提供47张单独的图片, 而非一张单一的完整tilesheet. |
横向连接纹理遵循以下模式. 同样, 使用4张独立的图像, 而不是一张tilesheet.
垂直连接的纹理遵循以下模式:
横向连接+垂直连接 和 垂直连接+横向连接(method=h+v and v+h respectively)将二者结合起来, 在其中一个内支持另一个. 至少需要7面.
参考这张Misa提供的模板.
关于1.7.2重复纹理显示不正常的解释
由于原版1.7.2的显示问题,对角线的纹理会进行镜像,导致重复纹理翻转,导致显示不正常.具体参考如下图片
ctm.properties详解
- ###############################################################################
- # ctm.properties
- ###############################################################################
- # Sample ctm.properties file for use with MCPatcher's extended Connected
- # Textures mod.
- #
- # This file is offered without any copyright restrictions. Please copy and
- # modify it to suit your needs.
- #
- # 对于每个方块或方块面进行CTM处理,你可以在你材质包的cpatcher/CTM文件夹下创建一
- # 个.properties文件.
- # .properties文件在mcpatcher/ctm中可以被分类到任何深度的子文件夹中,只要它们都
- # 在上级的mcpatcher/ctm的文件夹内
- #
- # 不同类型的连接方法可以用于不同的要求和限制.
- # 详情请参阅以下每种方法.
- #
- # 所有的属性名称是区分大小写的!!
- # 所有的路径都是相对于assets/minecraft的,除非另有说明.
- ###############################################################################
- ###############################################################################
- # 属性文件一般要使用到的所有方法:
- ###############################################################################
- # (可选) 将使用"此"方法的block和/或tiles的列表
- #
- # 多个.properties文件可以引用同一个block/tile,它们将会按文件名的字母顺序进行排
- # 序处理,所有基于tile的条目将先于基于block-ID的条目进行检查.
- # 首个匹配的属性文件将被使用.
- # matchTiles属性通常用于使用多张材质的方块,例如合成台.
- matchTiles=<需要进行匹配的tile名称列表>
- # 要引用一个来自原版mc的tile,只需引用其在textures\blocks\下的文件名:
- # matchTiles=dirt
- # 想引用一个MOD的tile,你需要知道它的名字:
- # matchTiles=gearbox
- # 一个CTM规则输出的tile还可以被另一条规则匹配. 则另一条规则的tile名称就是第一条
- # CTM输出的tile的纹理图像的完整路径
- # matchTiles=mcpatcher/ctm/mygrass/1.png
- # matchBlocks属性通常用于使用单张材质的方块,例如粘土.
- matchBlocks=<方块ID的列表 0-4095>
- # 以上两个属性可以省略,如果可以从文件名来推断它们:
- # mcpatcher/ctm/xxx/block<id><a-z的后缀>.properties 假设属性为:
- # matchBlocks=<id>
- # matchTiles=
- # 除非您明确地指定任一属性.
- # (可选) 如果有多个属性文件匹配相同的block,拥有最高权重的将被使用. 如果出现权重
- # 持平的情况,将对文件名进行比较. 默认权重为0.
- weight=<整数>
- # (必填) 选择一个block的替换纹理所使用的方法:
- # ctm: 标准的8向连接方法 (原玻璃CTM).
- # horizontal: 仅对左右blocks进行连接的横向连接方法 (书架).
- # vertical: 仅对上下blocks进行连接的垂直连接方法.
- # horizontal+vertical: 先进行横向连接,然后再是垂直连接.
- # vertical+horizontal: 先进行垂直连接,然后再是横向连接.
- # top: 仅在上面连接block时改变侧面纹理 (砂岩).
- # random: 随机挑选纹理.
- # repeat: 大面积地重复一个固定的图案.
- # fixed: 使用一个固定的纹理. 相当于只有一个纹理的random.
- method=<上述方法其中一种>
- # (必填) 用于替换的纹理列表. 每张替换纹理必须是一个单独的图像,就像地形和物品的
- # 材质那样. 替换纹理可以用多种方式来指定:
- # 0 -> 0.png
- # 8-11 -> 8.png, 9.png, 10.png, 11.png
- # 文件名 -> 文件名.png
- # 文件名.png -> 文件名.png
- # default -> 没有,使用默认的block/tile
- # 完整/路径/文件名.png -> 完整/路径/文件名.png
- # 无论任何情况,最终,png图像都必须与属性文件处在相同的目录下.
- # 该格式可以混合和搭配,例如:
- # tiles=0-4 5 一些/其他的/文件名.png
- tiles=<替换纹理的名称列表>
- # (可选) 连接类型. 连接到邻近方块的方法. 指定游戏应该如何判决两个方块是否应该
- # 进行连接化处理.
- # block: 如果此方块与邻近方块的ID相同则应用连接化处理.
- # tile: 如果此方块与邻近方块的材质相同则应用连接化处理.
- # material: 如果此方块与邻近方块的物质(石头,泥土,等.)相同则应用连接化处理.
- # 默认为block/tile当属性文件的匹配基于block/tile时.
- connect=<block | tile | material>
- # (可选) 朝向. 限制仅在方块处于某些朝向时使用效果.
- # bottom: 底面 (负y).
- # top: 顶面 (正y).
- # north: 北面 (负z).
- # south: 南面 (正z).
- # east: 东面 (正x).
- # west: 西面 (负x).
- # sides: 简写的东南西北.
- # all: 所有面.
- # 注: 在 非标准方块^1 上,此属性将被忽略.
- # 1.参考minecraft.gamepedia.com/Solid_block greyminecraftcoder.blo
- # gspot.com/2013/07/rendering-non-standard-blocks.html
- faces=<组合使用: north south east west top bottom sides all>
- # (可选) 元数据. 限制仅在方块含有特定的元数据值时使用效果.
- # 可以是介于0-31间的任意单个数值或数值列表.
- metadata=<介于0-31间的数值列表>
- # (可选) 生物群落和海拔层数的限制. 限制仅在某些生物群落或高度范围内时使用效果.
- # 从minecraft.gamepedia.com/Data_values#Biome_IDs查看有效生物群落的名称列表.
- biomes=<生物群落名称列表>
- heights=<层数范围0-255>
- # (可选) 用于更好的玻璃mod的渲染通道. 指定替换纹理应使用哪个渲染通道.
- # 否则它将使用默认的固体方块渲染通道.
- # 在renderpass.properties中查看有效值.
- renderPass=<通道>
- # 注: 由于渲染器的限制,指定渲染通道需要基于方块ID(要么通过命名文件名为block<id>
- # .properties,要么使用matchBlocks=而非matchTiles=)的CTM,而不是基于tile的.
- #
- # 想要创建彩色玻璃,你需要两套纹理: 一个用于玻璃外框另一个用于叠加玻璃主体.
- # 下面是一个例子,假设纹理0-46是玻璃外框47-93是叠加层.
- #
- # mcpatcher/ctm/glass/glass1.properties:
- # matchBlocks=glass
- # method=ctm
- # tiles=0-46
- # renderPass=backface
- #
- # mcpatcher/ctm/glass/glass2.properties:
- # matchBlocks=glass
- # method=ctm
- # tiles=47-93
- # renderPass=overlay
- #
- # mcpatcher/ctm/glass/glass_pane1.properties:
- # matchBlocks=glass_pane
- # method=ctm
- # tiles=0-46
- #
- # mcpatcher/ctm/glass/glass_pane2.properties:
- # matchBlocks=glass_pane
- # method=ctm
- # tiles=47-93
- # renderPass=overlay
- ###############################################################################
- # 以下将详解CTM连接的方法. 每个.properties文件应该仅包含这部分其中的一个.
- ###############################################################################
- ###############################################################################
- # 标准连接纹理
- ###############################################################################
- method=ctm
- # (必填) 47张纹理的列表.
- tiles=<47张纹理的列表>
- # (可选) 连接到相邻的方块块时是否显示的接缝上的内边缘.
- innerSeams=false
- ###############################################################################
- # 横向连接纹理
- ###############################################################################
- method=horizontal
- # (必填) 4张纹理的列表.
- tiles=<4张纹理的列表>
- ###############################################################################
- # 垂直连接纹理
- ###############################################################################
- method=vertical
- # (必填) 4张纹理的列表.
- tiles=<4张纹理的列表>
- ###############################################################################
- # 顶部连接纹理
- ###############################################################################
- method=top
- # (必填) 只需要一张用于方块侧面的纹理.
- tiles=<单张纹理>
- ###############################################################################
- # 随机纹理
- ###############################################################################
- 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=<与纹理列表数量相同的权重列表>
- # (可选) 按要求均匀方块的每个面.
- # 仅用于标准的六面方块(六面使用同一张纹理的方块).
- # none: 所有6面都不相同. random方法默认使用这个.
- # opposite: 双向均匀; 相对的2面具有相同的纹理,但每一对之间的纹理不同.
- # all: 所有6面使用相同的纹理.
- symmetry=<none | opposite | all>
- # (可选) 相关方块之间的纹理链接(注意这里是链接而非连接).
- # 如果为true,MCPatcher会为多段方块的所有部分使用相同的随机数种子. 例如,大型草丛
- # 的上半部分和下半部分.
- # 这使得您创建的每套随机纹理可以保持在多段方块上的连续性. 如果属性为false,则两
- # 部分将被“搅乱”. 即,独立选取.
- #
- # 注: 想要它正常工作,你需要多个linked=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>
- ###############################################################################
- # 重复图案纹理
- ###############################################################################
- method=repeat
- # (必填) 重复图案的宽度.
- width=<图案的宽度>
- # (必填) 重复图案的高度.
- height=<图案的高度>
- # (必填) 拼合后刚好等于宽*高尺寸的纹理列表.
- tiles=<拼合后刚好等于宽*高尺寸的纹理列表>
- # (可选) 按要求均匀方块的每个面.
- # 仅用于标准的六面方块(六面使用同一张纹理的方块).
- # none: 对所有6面进行重复图案处理. repeat方法默认使用这个.(由于1.7.2mc拐角纹理
- # 翻转的影响,其中三面图案会错位)
- # opposite: 双向均匀; 相对的2面具有相同的纹理,这意味着南面和东面的图案将会镜像
- # 并翻转来自北面和西面的图案.
- # (你可以使用这里附带的样本材质,然后制作一个8x8x8的圆石方块,对相对的面进行相加
- # ,看看规律)
- symmetry=<none | opposite>
- ###############################################################################
- # 固定纹理
- ###############################################################################
- method=fixed
- # (必填) 单张纹理.
- tiles=<单张纹理>
复制代码 |
页15
更好的玻璃
更好的玻璃mod扩展了连接纹理,为其添加完整的alpha通道支持,用于玻璃和玻璃板.
彩色玻璃使用两个纹理,一个用于框架另一个为玻璃部分.
由于游戏渲染器的限制, 当玻璃的一部分处于另外一种半透明材质例如冰的后面时,那部分将会消失看不见.
但仍然保持框架可见,这是一个像样的折中.
- ~/ctm/myglass/block20.properties:
- method=ctm
- tiles=0-46
- renderPass=2
- ~/ctm/myglass/block20a.properties:
- method=ctm
- tiles=47-93
- renderPass=3
- ~/ctm/myglass/block102.properties:
- method=ctm
- tiles=0-46
- ~/ctm/myglass/block102a.properties:
- method=ctm
- tiles=47-93
- renderPass=3
复制代码renderPass属性指定方块应在什么情况下显示. 每个渲染过程具有不同的属性:
- 0: 正常, 固体方块. 几乎所有的方块都使用这个通道. 只能开/关透明度.
- 1: 现有的半透明方块(水,冰等)(其实说白了就是合并的通道2和3).
更好的玻璃增加了两个新的渲染通道: - 2: 与#0通道相同,但禁用了背面剔除(backface culling). 同样的, 只能开/关透明度. 使用这个渲染通道可以使所有六个面框架可见.
- 3: 支持完整alpha通道. 当其在水等来自通道#1的图层后面渲染时将被隐藏. 它的混合方法可以通过在renderpass.properties中改变.
通道渲染将按如下顺序发生: 0, 2, 1, 3. 需要注意的是玻璃方块使用渲染通道2的外框,但玻璃面板不使用. 如果对玻璃板使用2的话, 你会看到深度冲突(z-fighting), 因为游戏把玻璃板的两侧放在同一坐标.
你可能已经猜到了,更好的玻璃可以通过添加适当的条目及其属性的文件将用于支持CTM的任何方块.
一个限制是属性必须基于方块的ID, 而不是面的名称(这个面对应材质的文件名). 同时请记住, 渲染通道将应用于所有使用相同的方块ID的方块.
渲染通道2替换渲染通道0, 所以一旦你进行分配, 例如, 分配石半砖至渲染通道2, 那么你必须有CTM规则覆盖所有在渲染通道2的石半砖(方块ID44). 否则, 其他石半砖将是不可见的.
在optifine的客户端使用带更好的玻璃材质的材质包并不会像tt所说的那样导致正常ctm无法显示.
并且所有optifine不支持的高级材质存在于材质包也不会引起正常材质的显示不正常,而仅仅是无法显示这部分高级材质而已.
效果参考
renderpass.properties详解
- ###############################################################################
- # renderpass.properties
- ###############################################################################
- # Sample renderpass.properties file for use with MCPatcher's Better Glass mod.
- #
- # This file is offered without any copyright restrictions. Please copy and
- # modify it to suit your needs.
- #
- # 此文件可以被完全省略,但如果存在则应该在assets/minecraft/mcpatcher文件夹下.
- #
- # 所有的属性名称是区分大小写的!!
- # 所有的路径都是相对于assets/minecraft的,除非另有说明.
- ###############################################################################
- ###############################################################################
- # 关于渲染通道的一般信息.
- ###############################################################################
- # 从1.8开始,原版mc赋予每个方块总共4种渲染通道.
- # 按顺序,它们分别是(按由上至下的顺序渲染,也就是最下面的通道为顶层通道,反之亦然)
- # solid: 普通的固体方块.
- # (由于设定视线无法穿透固体块,背面材质是不显示的)
- # cutout_mipped: 经渐进过滤处理(mipmapping)的支持开/关透明度的层(即只有两种状
- # 态,完全透明和完全不透明).
- # cutout: 未经渐进过滤处理(mipmapping)的支持开/关透明度的层(这类通道一
- # 般用于显示玻璃的框架).
- # translucent: 拥有完整Alpha支持的透明度层.
- # 而在1.8之前, solid, cutout_mipped,和 cutout 是一个称为
- # "render pass 0"的通道,而半透明通道称为"render pass 1".
- #
- # MCPatcher增加了两个额外的渲染通道. 整体的顺序是
- # solid:
- # cutout_mipped:
- # cutout:
- # backface: 与cutout相同,但禁用了背面剔除(backface culling). 以前叫做渲
- # 染通道2. 通过ctm属性文件分配方块使用该通道,取代它们默认的通
- # 道.
- # translucent:
- # overlay: 额外的可自定义混合选项(blending options)的半透明层.
- # 以前叫做渲染通道3. 分配方块使用该通道进行二次渲染.
- # 除了它们默认的渲染通道.(实际效果可参考通道3.png)
- ###############################################################################
- # 渲染通道属性
- ###############################################################################
- # (可选) 叠加渲染通道所使用的混合方法. 这将动态应用到所有正在使用那些渲染通道的
- # 所有方块. 默认为Alpha混合. 查看sky.properties获取有效混合方法的完整列表.
- blend.overlay=<方法>
- # (可选) 是否启用光照贴图用于纹理在叠加渲染通道. 特别是基于颜色(透明部分变为
- # 000000黑色,半透明部分也与黑色叠加)的混合,这可能不是你所希望的.
- # 默认值为方法为Alpha混合时为true,为RGB混合时为false.
- enableLightmap.overlay=<true | false>
- # (可选) 是否应用方块着色器在叠加渲染通道 (包含自定义颜色贴图).
- # 默认为false.
- enableColormap.overlay=<true | false>
- # (可选) 是否启用背面剔除(backface culling)在特定的渲染通道.
- # true: 背面剔除开. 仅渲染面对玩家视线的方块面.
- # false: 背面剔除关. 渲染背面.
- # 默认为true. <通道> 是cutout, cutout_mipped, translucent, overlay中的任何一种.
- backfaceCulling.<通道>=<true | false>
- # 想要完全禁用背面剔除(backface culling),使用
- # backfaceCulling.cutout_mipped=false
- # backfaceCulling.cutout=false
- # backfaceCulling.translucent=false
- # 并且确保在ctm属性文件中没有renderPass选项.
- #
- # 想要禁用它仅在某些方块上,使用
- # renderPass=backface
- # 在每个基于方块ID的ctm属性文件中,
- # 并且确保renderpass.properties中没有backfaceCulling选项.
- #
- # 对于半透明方块,使用
- # renderPass=overlay
- # 在每个基于方块ID的ctm属性文件中.并且使用
- # backfaceCulling.overlay=false
- # 在renderpass.properties中.
复制代码 |
页16
更好的天空
厌倦了默认的星空? MCPatcher支持完全自定义的天空盒子!
多个天空盒子可以分层次地在一起使用几种混合的方法,并设置为在一天中的某些时间淡入和淡出.
每层的天空都与一个sky<n>.properties文件一一对应,它们只能放在~/sky/world0/目录中.
每个sky<n>.properties都必须指定一个天空盒子纹理(默认是: ~/sky/world0/sky<n>.png),和一些其他的条目,将在后面介绍.
天空盒子纹理是一个可旋转的正方体,而你身处其中.天空盒子纹理可以是任何尺寸的图片,但必须为两行三列,且每面为相同大小的正方形.
具体如何绘制请参考如下样本:
深色部分只有在飞到很高的高空时才能看得到,但对于会旋转的天空盒子.例如星空则必须绘制
|
sky.properties详解
- ###############################################################################
- # sky.properties
- ###############################################################################
- # Sample sky.properties file for use with MCPatcher's Better Skies mod.
- #
- # This file is offered without any copyright restrictions. Please copy and
- # modify it to suit your needs.
- #
- # 所有的属性名称是区分大小写的!!
- # 在属性文件中指定一个纹理文件的路径可以使用下列任何语法:
- #
- # 相对于目录assets/minecraft:
- # 路径/文件名 -> assets/minecraft/路径/文件名
- #
- # 相对于目录assets/minecraft/mcpatcher:
- # ~/路径/文件名 -> assets/minecraft/mcpatcher/路径/文件名
- #
- # 相对于属性文件的路径:
- # ./路径/文件名 -> (属性文件所在目录)/路径/文件名
- # 在其他命名空间(namespace)的路径:
- # 命名空间:路径/文件名 -> assets/命名空间/路径/文件名
- #
- # 将文件放置
- # ~/sky/world0/sky1.properties
- # ~/sky/world0/sky2.properties
- # ... 等.
- # 到你的材质包中. 每个属性文件都代表着一层的天空. MCPatcher将继续加载,直到找不
- # 到.properties文件为止. 属性文件的加载顺序是,他们将在游戏中渲染的先后顺序.
- # 也就是说sky1为底图层(参考misasky.zip)
- #
- # 此外,两个特殊的属性文件将被应用到太阳和月亮,如果它们存在的话. 这主要是为了让
- # 你用太阳和月亮覆盖混合方法.(其实是为防止不必要的混合,比如星星在月亮的图层上层
- # ,这显然是违反常识的)
- # ~/sky/world0/sun.properties (替代纹理sun.png)
- # ~/sky/world0/moon_phases.properties (替代纹理moon_phases.png)
- # 而不是一张完整的天空盒子(skybox)图片,替换纹理应为sun.png或moon_phases.png.
- # 另外请注意,天空盒子尺寸越大,越考验机子的处理能力.
- #
- # 注: "world0"路径指的是主世界(overworld). 如果存在其他世界的天空 (下界和末地不
- # 要使用标准的天空渲染方法),它们的文件应在~/sky/world<世界序号>内.
- # (world0主世界world-1下界world1末地)
- ###############################################################################
- ###############################################################################
- # 天空属性
- ###############################################################################
- # (可选) 替换纹理的文件名. 它可以在你的材质包的任何位置,并且多个属性文件可以共
- # 享一张相同的替换纹理. 如果未指定,与属性文件处于相同目录的sky<n>.png将被使用.
- source=<纹理>
- # (必填) 淡入/淡出时间. 所有时间均为 hh:mm 24小时格式. 供参考:
- # 日出 = 6:00 = /time set 0
- # 正午 = 12:00 = /time set 6000
- # 日落 = 18:00 = /time set 12000
- # 午夜 = 0:00 = /time set 18000
- # 在混合时将控制淡入淡出的明度.(这里指的应该是alpha通道的明度,也就是图层整体透
- # 明度)
- # 介于开始淡入(startFadeIn)和结束淡入(endFadeIn)之间为: 0升到1
- # 介于结束淡入(endFadeIn)和开始淡出(startFadeOut)之间为: 固定为1
- # 介于开始淡出(startFadeOut)和结束淡出(endFadeOut)之间为: 1降到0
- # 介于结束淡出(endFadeOut)和开始淡入(startFadeIn)之间为: 固定为0
- # 请注意,您不需要指定startFadeOut; 它是由其他值来确定的独特值.
- startFadeIn=<hh:mm>
- endFadeIn=<hh:mm>
- endFadeOut=<hh:mm>
- # (可选) 混合方法. 这里的"上一层"可以指默认的天空或通过sky<n-1>.properties定义
- # 的上一个自定义天空.
- # 支持的混合方法有
- # add: 将当前天空位图与上一层相加.(ps中叫线性减淡)
- # E=top+bottom,大于255则取255
- # subtract: 将当前天空位图与上一层相加后减去255.(ps中叫线性加深)
- # if((top+bottom)<0){E=0}else{E=top+bottom-255}
- # multiply: 将当前天空位图RGBA值与上一层RGBA值相乘后除以255.(ps中叫正片叠底)
- # E=(top*bottom)/255
- # dodge: (ps中叫颜色减淡)
- # E=bottom-(255-top)(255-bottom)/top
- # burn: (ps中叫颜色加深)
- # E=bottom+(top*bottom)/(255-top)
- # screen: (ps中叫滤色)
- # E=255-(255-bottom)(255-top)/255
- # replace: 用当前图层完全覆盖上一层.
- # 此方法毫无淡入淡出,一切都将来得非常突兀; 如果由淡入淡出计算出的明
- # 度值 > 0,则所有像素点都将被使用.
- # if(alpha>0){E=top}else{E=bottom}
- # overlay: RGB值 > 128则提亮, < 128则变暗.(ps中叫叠加)
- # E=255-(255-top)(255-bottom)/255
- # alpha: 给alpha图像使用的方法.(貌似没啥区别,上面的方法也是支持透明图层的)
- # (就是ps中的正常透明度模式)
- # Alpha透明混合处理(参考en.wikipedia.org/wiki/Alpha_compositing的Alpha blending)
- # E=alpha*top+(1-alpha)bottom
- # 公式参考来源:http://wenku.baidu.com/view/275f9c4769eae009581bec56.html
- # 默认的方法是add.
- blend=add
- # (可选) 旋转. 是否启用位图旋转在一天的时间中.(想象一下穿在烧烤棒上的天空盒子)
- # 默认为true. 转动的速度和方向也可以被控制.
- rotate=true | false
- # (可选) 转速必须是默认的每天一个360°周期的倍数. 值为0.5则每两天一个周期. 不合
- # 理的值在用于让每一天的云彩出现在不同的位置时将会非常有用.
- # 注: 这不会影响淡入淡出,因为它只能发生在一个24小时周期内.
- speed=1.0
- # (可选) 旋转轴.(烧烤棒子233) 如果一个玩家正在朝指定方向上观察,他将会发现视线内
- # 的天空盒子正在缓慢地绕旋转轴以顺时针方向旋转.
- # 默认为沿南部轴线旋转 (东升西落).(什么是南部轴线? 当你看着南面,并且视线内天空
- # 是顺时针旋转时,旋转轴就是南部轴线.其他同理)
- # 以下有六个主要方向的对应向量供参考. 然而,?旋转轴可以是除0 0 0以外的任意向量.
- # 无需使用相同的值.
- # 上 = 0 -1 0
- # 下 = 0 1 0
- # 北 = 0 0 -1
- # 南 = 0 0 1
- # 西 = -1 0 0
- # 东 = 1 0 0
- axis=0.0 0.0 1.0
复制代码 |
页17
自定义物品材质
CTM用于方块, CIT则用于物品. 自定义物品支持damage值,堆叠数量,和NBT数据. 还可以为不同的附魔创建不同的效果.
所有与CIT相关的文件均在~/cit文件夹. 类似CTM,文件可以被进一步分类到任何深度的子文件夹. 一个可选的cit.properties文件将指定CIT的全局行为,特别是定义对多个自定义附魔效果的处理方式.
CIT的大多数行为通过~/cit文件夹中的许多属性文件来定义. 每一个属性文件定义一个类型(物品, 附魔, 铠甲);一些基于物品ID,damage,等来对物品进行纹理替换的条件.; 和一个或更多的替换纹理. 如果有多个属性文件匹配相同的物品,一个具有最高权重的属性文件将优先被使用.
- type=<item |enchantment |armor>
- items=<item IDs>
- damage=<damage values>
- stackSize=<stack sizes>
- enchantmentIDs=<list of enchantment IDs>
- enchantmentLevels=<list of enchantment levels>
- nbt.<expression>=<NBT value>
- weight=<priority relative to other CIT files>
- texture=<replacement texture>
复制代码 (这些属性大多数都是可选的.)
CIT type=item定义一个简单的纹理替换. 它使用自定义纹理而非取代在textures/items中的默认材质. 替换纹理可以使用Mojang的.mcmeta格式动画. 对于拥有多个材质(弓,药水,刷怪蛋)的物品,在单个属性文件中指定所有所需的替换纹理:
- # 错误 – 向后拉的状态将会显示相同的纹理
- texture=my_special_bow_standby
- # 正确 – 针对弓每个状态有单独的纹理
- texture.bow_standby=my_special_bow_standby
- texture.bow_pulling_0=my_special_bow_pulling_0
- texture.bow_pulling_1=my_special_bow_pulling_1
- texture.bow_pulling_2=my_special_bow_pulling_2
复制代码
CIT type=enchantment会取代预设闪烁效果. 不同的附魔可以根据附魔的类型或级别或同时以上两种条件给予其不同的纹理. 如果一个物品有多种附魔,效果可以被混合到一起或循环效果. 如果发现一个被附了魔的物品没有进行自定义附魔效果,将会使用默认的enchanted_item_glint.png. 这可以通过设置useGlint=false在全局cit.properties文件中来禁用.
CIT type=armor取代了在第三人称视角及在其他玩家眼中盔甲显示的纹理. 每种盔甲类型有两张纹理,除了皮革有四张. 使用与弓的例子相同的语法来替换多个纹理:
- # 钻石
- texture.diamond_layer_1=...
- texture.diamond_layer_2=...
- # 皮革
- texture.leather_layer_1=...
- texture.leather_layer_1_overlay=...
- texture.leather_layer_2=...
- texture.leather_layer_2_overlay=...
复制代码
还有药剂替换纹理的替代方法. 这不是复杂的基于damage值和药水类型的处理方法,而是一个简单的基于文件名的替换方法. 使用此方法不需要任何属性文件,只要有路径正确的png文件. 请参见为模板cit_single.properties文件底部的细节.
(资源包格式后不建议使用此种方法,水下呼吸药水的替换不会生效)
cit_single.properties详解
- ###############################################################################
- # cit_single.properties
- ###############################################################################
- # Sample properties file for use with MCPatcher's Custom Item Textures mod.
- #
- # This file is offered without any copyright restrictions. Please copy and
- # modify it to suit your needs.
- #
- # 对于每个你想通过自定义纹理来覆盖的物品,使用此模板在材质包的mcpatcher/cit文件
- # 夹下创建一个.properties文件.
- # .properties文件在mcpatcher/cit中可以被分类到任何深度的子文件夹中,只要它们都
- # 在上级的mcpatcher/cit的文件夹内.
- #
- # 每个属性文件指定了一个列表,其中包含需要匹配的物品ID或物品名,替换纹理,和一组用
- # 于指定耐久值,堆叠数量,或NBT标签的可选规则.
- #
- # 所有的属性名称是区分大小写的!!
- # 所有的路径都是相对于assets/minecraft的,除非另有说明.
- ###############################################################################
- ###############################################################################
- # 属性文件一般要使用到的所有类型:
- ###############################################################################
- # (可选) 纹理替换式.
- # item: 简单的物品材质替换. 适用于GUI中的物品,手持的物品,
- # 和世界中的物品.(掉落物,物品框内的物品,但不会用于投掷物实体)
- # 如果有多个属性文件匹配相同的物品,则只有第一个(先按weight进行排序,
- # 再按文件名进行排序)将被使用.
- #
- # enchantment: 叠加附魔效果纹理(替换misc/glint.png). (1.6资源包格式后位于assets
- # /minecraft/textures/misc/enchanted_item_glint.png)
- # 如果有多个属性文件匹配相同的物品,它们将使用全局属性cit.propertie
- # s文件中指定的规则来进行混合.
- #
- # armor: 盔甲纹理置换. 适用于穿着在玩家和生物身上的铠甲模型. 如果有多个属
- # 性文件匹配相同的物品,则只有第一个(先按weight进行排序,再按文件名
- # 进行排序)将被使用.
- #
- # 默认使用的类型是item. 每种类型都有附加属性可在此模板的后面章节中定义.
- type=<item | enchantment | armor>
- # (对于enchantment类型可选,其他类型必须)将被应用替换纹理的物品列表.
- items=<物品ID的列表>
- # (可选) 替换纹理. 可以为完整路径也可以仅为文件名:
- # mytextures/excalibur.png -> mytextures/excalibur.png
- # excalibur -> mcpatcher/cit/excalibur.png
- # 纹理格式还包含了根据不同类型的动画处理方式. 详细查看下面的"特定类型"章节.
- #
- # 如果texture属性为空,MCPatcher将使用properties文件的文件名:
- # mcpatcher/cit/excalibur.properties -> mcpatcher/cit/excalibur.png
- texture=<替换纹理>
- # (可选) damage值列表. 仅在物品的damage值为某个值或在在某个范围内时使用替换纹理.
- #
- # 对于含耐久值的物品,一个全新的物品的damage值为0并且会随着它的使用而增加.
- # 各物品的最大耐久值各不相同,请参考:
- # http://www.minecraftwiki.net/wiki/Item_durability
- #
- # 对于其他物品,damage值代表不同的属性例如药水类型或羊毛颜色.
- # 查看http://www.minecraftwiki.net/wiki/Data_values来了解更多细节.
- damage=<damage值 0-65535>
- # 一个可选的位元掩码将在对符合资格的damage值列表进行确认前被应用到物品的damage值.
- # (学习这部分内容需要对二进制编码有一定的了解,"0101"看不懂的请果断跳过)
- # (damageMask中为0的位元使用通配,为1则使用对应的damage值位元)
- # 例如:
- # 匹配任何火抗药水:
- # damage=3 (0000 0000 0000 0011b)
- # damageMask=15 (0000 0000 0000 1111b)
- # 匹配任何饮用的火抗药水:
- # damage=3 (0000 0000 0000 0011b)
- # damageMask=16399 (0100 0000 0000 1111b)
- # 仅匹配饮用的火抗I药水:
- # damage=3 (0000 0000 0000 0011b)
- # damageMask=16431 (0100 0000 0010 1111b)
- # 仅匹配飞溅的火抗II药水:
- # damage=16419 (0100 0000 0010 0011b)
- # damageMask=16431 (0100 0000 0010 1111b)
- # ┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- # ┃ ┌───┬────────┐ ┃
- # ┃ (4) │ (1-1) (1) │ ┃
- # ┃ │ │ ┌──┴──┤ ┃
- # ┃ 0 * 0 0 0 0 0 0 0 * * 0 * * * * bin ┃
- # ┃ │ │ ┃
- # ┃ (3)─┘ └─(2) ┃
- # ┣┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┫
- # ┃(1): 药水效果 00-0F 通过正常途径获得的药水┃
- # ┃(1-1): 药水名称 00-3F 目前所有的药水┃
- # ┃(2): 药水等级 0为一级,1为二级 ┃
- # ┃(3): 持续时间 0为未延长,1为延长 ┃
- # ┃(4): 是否喷溅 0为饮用,1为喷溅 ┃
- # ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛
- # 对于制作药水的简单方法,请在本文章的末尾查看查看.
- damageMask=<位元掩码>
- # (可选) 堆叠数量的列表. 仅在堆叠数量为一个值或在一个范围内时使用替换纹理.
- stackSize=<堆叠数量 0-65535>
- # (可选) 附魔ID和附魔等级的列表.
- # 提供参考,原版的附魔ID有:
- # 0: 保护
- # 1: 火焰保护
- # 2: 摔落保护
- # 3: 爆炸保护
- # 4: 弹射物保护
- # 5: 水下呼吸
- # 6: 水下速掘
- # 7: 荆棘
- # 16: 锋利
- # 17: 亡灵杀手
- # 18: 节肢杀手
- # 19: 击退
- # 20: 火焰附加
- # 21: 抢夺
- # 32: 效率
- # 33: 精准采集
- # 34: 耐久
- # 35: 时运
- # 48: 力量
- # 49: 冲击
- # 50: 火矢
- # 51: 无限
- enchantmentIDs=<附魔ID 0-255>
- enchantmentLevels=<附魔等级 0-255>
- # 示例:
- # 匹配任意等级的精准采集:
- # enchantmentIDs=33
- # 匹配三级或更高的火矢或火焰附加:
- # enchantmentIDs=20 50
- # enchantmentLevels=3-
- # 匹配8-10级的任何附魔:
- # enchantmentLevels=8-10
- # (可选) 基于NBT的规则. 仅在NBT标签为一个特定值时使用替换纹理.
- # 如果提供了多个规则,它们都必须匹配.
- # 使用例如NBTExplorer的工具来查看各种物品的NBT标签.
- nbt.<标签>=<值>
- # 目前,仅有下面的NBT类型被支持:
- # - 字符串,整型,短整型,长整型,双精度浮点型,单精度浮点型 - 仅匹配精确值
- # - 复合 - 可以匹配一个特定标签或任何标签(*).
- # - 列表 - 可以匹配一个特定的索引(从0开始)或任何索引(*).
- #
- # 示例:
- # 匹配物品的显示名称:
- # nbt.display.Name=My Sword
- #
- # 匹配含有特殊格式的显示名称的物品:
- # 注: 为了获得最佳兼容性,请使用转义序列'\u00a7',而不是§:
- # ("\u00a7"是"§"的unicode码)
- # nbt.display.Name=\u00a74\u00a7oMy Sword (§4§oMy Sword)
- #
- # 匹配物品的lore标签(仅首行):
- # nbt.display.Lore.0=My Lore Text
- #
- # 匹配物品的lore标签(所有行):
- # nbt.display.Lore.*=My Lore Text
- #
- # 字符串可以用多种方式来匹配:
- # - 精确值
- # nbt.display.Name=Letter to Herobrine
- # 匹配实际字符串"Letter to Herobrine"而不是其他的.
- #
- # - 使用通配符 ? 和 *
- # nbt.display.Name=pattern:Letter to *
- # 匹配
- # Letter to Herobrine
- # Letter to a creeper
- # 但不匹配
- # letter to Herobrine
- #
- # - 通配符,不区分大小写
- # nbt.display.Name=ipattern:Letter to *
- # 匹配
- # Letter to Herobrine
- # Letter to a creeper
- # letter to Herobrine
- #
- # - Java正则表达式
- # (参考http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
- # nbt.display.Name=regex:Letter (to|from) .*
- # 匹配
- # Letter to Herobrine
- # Letter from Herobrine
- # 但不匹配
- # letter to Herobrine
- # A Letter to Herobrine
- #
- # - Java正则表达式,不区分大小写
- # nbt.display.Name=iregex:Letter (to|from) .*
- # 匹配
- # Letter to Herobrine
- # Letter from Herobrine
- # letter to Herobrine
- # 但不匹配
- # A Letter to Herobrine
- #
- # 注: 任何反斜杠都必须翻倍.
- # 在正则表达式或通配符中的反斜杠必须翻倍.
- # 正确:
- # nbt.display.name=regex:\\d+
- # nbt.display.name=regex:\\\\
- # nbt.display.name=/\\/\\
- # 错误:
- # nbt.display.name=regex:\d+
- # nbt.display.name=regex:\\
- # nbt.display.name=/\/\
- ###############################################################################
- # 特定类型属性
- ###############################################################################
- ###############################################################################
- # 物品
- ###############################################################################
- type=item
- # 纹理格式:
- # 物品的替换纹理将覆盖原始的"物品".png,因而遵循与正常物品材质相同的规则.
- # 特别是,这意味着动画必须使用Mojang的.mcmeta文件体系用于帧的顺序和速度.
- texture=<替换纹理>
- # (可选) 替换状态材质.
- # 对于有多张材质的物品,这使你可以分别为每张材质指定替换纹理.
- # 例如,原版弓有根四张反映其状态的材质:
- # bow_standby, bow_pulling_0, bow_pulling_1, bow_pulling_2.
- # 要替换全部四张,你可以使用:
- # texture.bow_standby=my_special_bow_standby
- # texture.bow_pulling_0=my_special_bow_pulling_0
- # texture.bow_pulling_1=my_special_bow_pulling_1
- # texture.bow_pulling_2=my_special_bow_pulling_2
- # 药水同样也有两张材质. 要替换它们,请使用:
- # texture.potion_bottle_drinkable=...
- # texture.potion_overlay=...
- # -或-
- # texture.potion_bottle_splash=...
- # texture.potion_overlay=...
- # 如果没有texture.<文件名>属性匹配,通用的texture属性将被使用.
- texture.<文件名>=<替换纹理>
- # (可选) 如果有多个属性文件匹配相同的物品,拥有最高权重的将被使用.
- # 如果出现权重持平的情况,将对文件名进行比较. 默认权重为0.
- weight=<整数>
- ###############################################################################
- # 附魔效果
- ###############################################################################
- type=enchantment
- # 纹理格式:
- # 附魔效果纹理可以为分辨率. 想要动画化一个附魔效果纹理,
- # 则在anim/*.properties中使用如下方法
- # to=<附魔效果纹理的完整路径>
- texture=<附魔效果纹理>
- # (可选) 使用指定的混合方法施加附魔效果纹理到其下方的物品材质.
- # 查看sky.properties来获取有效的方法列表. 默认为add.
- blend=<混合方法>
- # (可选) 附魔效果纹理的滚屏速度.
- # 默认值为0(不滚屏).
- speed=<值>
- # (可选) 附魔效果纹理相对于物品的角度. 如果speed属性不为0,附魔效果纹理将
- # 以这个方向进行滚屏.
- # 默认值为0.
- rotation=<0-360 度>
- # (可选) 为一个附魔效果纹理指定一个唯一的层和特别的排序,如果不这样多个效果将会
- # 互相重叠. 如果两个或更多的效果使用同一层,权重会决定哪个将被显示(另一个不显示).
- # 默认的层为0(最底层).
- layer=<整数>
- # (可选) 同一个层内多种效果的相对优先级.
- # 对于已匹配的效果,只有在层内拥有最高权重的效果才会被显示.
- # 换句话说,
- # - layer属性决定了从哪个效果开始渲染的顺序.
- # - weight属性决定了每层内哪个效果将被显示.
- # 如果两个效果拥有相同的weight和layer,将使用文件名进行对比.
- # 默认的权重为0.
- weight=<整数>
- # (可选,仅用于cycle方法的附魔效果) 附魔效果在一个周期内的持续时间(s).
- # 默认为1秒.
- duration=<秒>
- ###############################################################################
- # 盔甲模型
- ###############################################################################
- type=armor
- # 纹理格式:
- # 纹理应该与相应的盔甲材质格式相匹配. 想要动画化盔甲模型,
- # 则在anim/*.properties中使用如下方法
- # to=<替换纹理的完整路径>
- # (必填) 替换纹理. 你需要对textures/models/armor中某种类型盔甲
- # 的所有材质创建替换纹理.
- # 对于钻石盔甲:
- # texture.diamond_layer_1=my_diamond_armor_1
- # texture.diamond_layer_2=my_diamond_armor_2
- # 对于有四层的皮盔甲:
- # texture.leather_layer_1=...
- # texture.leather_layer_1_overlay=...
- # texture.leather_layer_2=...
- # texture.leather_layer_2_overlay=...
- texture.<文件名>=<替换纹理>
- # (可选) 如果有多个属性文件匹配相同的盔甲,则拥有最高权重的将被使用.
- # 如果出现权重持平的情况,将对文件名进行比较. 默认权重为0.
- weight=<整数>
- ###############################################################################
- # 药水(1.5之后就未曾更新过,无法替换水肺药水)
- ###############################################################################
- # http://www.minecraftwiki.net/wiki/Data_values#Potions
- # 用于替代药水damage值清单,你可以使用基于文件名的方式为药水指定替换纹理.
- # 请注意,这里所描述的一切都可以通过cit的.roperties文件来完成;
- # 这只是一个更快捷方法.
- #
- # 以下是用于药水的两个目录:
- # mcpatcher/cit/potion/normal - 饮用药水
- # mcpatcher/cit/potion/splash - 喷溅药水
- #
- # 在任一目录下,创建<药水效果名称>.png文件. 并确保没有.properties文件.
- # absorption.png
- # blindness.png
- # confusion.png
- # damageBoost.png (*)
- # digSlowDown.png
- # digSpeed.png
- # fireResistance.png (*)
- # harm.png (*)
- # heal.png (*)
- # healthBoost.png
- # hunger.png
- # invisibility.png (*)
- # jump.png
- # moveSlowdown.png (*)
- # moveSpeed.png (*)
- # nightVision.png (*)
- # poison.png (*)
- # regeneration.png (*)
- # resistance.png
- # saturation.png
- # waterBreathing.png (*?)
- # weakness.png (*)
- # wither.png
- # 文件名应与自定义颜色的color.properties中的potion.*属性使用的名称相同.
- # 注意大小写. 并且仅限标志有(*)可在游戏中获得的药水. 其他的只能通过编辑器来创建.
- #
- # 替换png将被自动用于此种药水类型; 无需属性文件.
- # 请注意这从标准药水渲染过程中同时替换了potion.png/potion_splash.png
- # 与potion_contents.png两者. 所以替换图像中必须包含药水的有色液体.
- # 1.6资源包格式开始叫potion_bottle_drinkable.png/potion_bottle_splash.png
- # 和potion_overlay.png
- #
- # 同样,你可以为不同的"无效果"的药水创建替换纹理.
- # 这些药水都只有饮用版本,并且依然仅限标志有(*)实际存在于游戏中的药水.
- # 其余的都是存于游戏代码中而非正常游戏中,在这类列出只是出于完整性的考虑.
- # acrid.png
- # artless.png
- # awkward.png (*)
- # bland.png
- # bulky.png
- # bungling.png
- # buttered.png
- # charming.png
- # clear.png
- # cordial.png
- # dashing.png
- # debonair.png
- # diffuse.png
- # elegant.png
- # fancy.png
- # flat.png
- # foul.png
- # gross.png
- # harsh.png
- # milky.png
- # mundane.png (*)
- # odorless.png
- # potent.png
- # rank.png
- # refined.png
- # smooth.png
- # sparkling.png
- # stinky.png
- # suave.png
- # thick.png (*)
- # thin.png
- # uninteresting.png
- #
- # 如果你宁愿只有一个单一的纹理用于所有"无效果"的药水,
- # (生效范围为除[空瓶/水瓶/已指定纹理的粗制药水和平凡药水/有(*)标识的有效药水]
- # 之外的所有可饮用药水,所以并不建议使用备用纹理)
- # 可以创建一个备用纹理:
- # mcpatcher/cit/potion/normal/other.png
- #
- # 还可以提供两个额外的纹理(仅限饮用):
- # mcpatcher/cit/potion/normal/water.png - 水瓶(物品 373:0)
- # mcpatcher/cit/potion/normal/empty.png - 空瓶(物品 374)
- # 以上可用的饮用药水的替换纹理总计11+3+2=16张
- # 以上可用的喷溅药水的替换纹理总计11+0+0=11张
复制代码 |
cit.properties详解
- ###############################################################################
- # cit.properties
- ###############################################################################
- # Sample cit.properties file for use with MCPatcher's Custom Item Textures mod.
- #
- # This file is offered without any copyright restrictions. Please copy and
- # modify it to suit your needs.
- #
- # 这个文件用于配置自定义物品纹理mod的全局属性,
- # 并且应在材质包中的mcpatcher/cit文件夹下.
- # 对于单独物品的纹理,请参考cit_single.properties.
- #
- # 所有的属性名称是区分大小写的!!
- # 所有的路径都是相对于assets/minecraft的,除非另有说明.
- ###############################################################################
- # (可选) 指定如何将多个效果应用到同一物品.
- # 根据所选的方法,多种效果可以使用从0(完全透明)到1(不透明)间的不同强度来渲染.
- # average: 根据附魔等级进行平均.
- # 强度 = 附魔等级/总和(附魔等级)
- #
- # layered: 类似于average,但总和被最大值代替.
- # 强度 = 附魔等级/最大的(附魔等级)
- #
- # cycle: 依次应用每个效果并循环往复. 每种效果的持续时间可以经由duration属性来
- # 设置.
- # 如果[group]值存在将允许多组效果进行独立循环.(别问我,我也不知道这啥)
- #
- # 需要注意的是"average"和"layered与cap=1"是等效的.
- # 并且都将只显示物品上"占主导地位"的附魔效果.
- method=<average | layered | cycle>
- # (可选) 为average/layered方法指定最高可显示层数.
- # 最上面的层的优先级高于最底部的层由每种效果所在的层数确定.
- cap=<记数>
- # (可选) 在一个循环周期内从一个效果过渡到另一个效果的速度.
- # 这并不影响显示时的实际效果的持续时间 -- 就使用附魔效果的duration属性而言.
- # 默认为0.5秒.
- fade=<秒>
- # (可选) 是否使用默认的glint.png附魔效果纹理.
- # 如果为true,当没有比配的自定义附魔效果时,glint.png将被使用.
- # 如果设置为false,将完全不显示默认的glint.png附魔效果纹理.
- # 注:1.6资源包格式后叫enchanted_item_glint.png
- # 这对于没有具体的附魔但有附魔效果的物品非常重要 -- 例如药水和金苹果.
- # 默认为true.
- useGlint=<true | false>
复制代码 |
页18