⊙v⊙
本帖最后由 ⊙v⊙ 于 2022-11-19 10:49 编辑

Optifine拥有比原版更优秀的贴图/模型修改能力。

虽不可能列出Optifine的所有功能和用法,但会尽可能详解部分内容。
如果希望提及没在此贴中提到的功能,可在下方留言,我会考虑加进贴子里哦~
希望各位能运用到制作中,创造出更优质的地图~



更完整的内容
你可以在这些地方查看作者提供的使用文本。
[Mod教程] [Doc] |高清修复OptiFine| 官方帮助文档翻译
官方在Github上存放的使用文本
也可以看这贴,但要注意mcpatcher和optifine非同一个东西,并推荐使用optifine,因为mcpatcher貌似停更了。
[教程] [] [给点打赏呗~]hukk的mcpatcher&optifine高级材质教程系列[1.6+]





〓〓〓事前注意

〓〓〓NBT匹配



〓〓〓CIT - 替换物品的贴图(或模型)

〓〓〓附魔相关

〓〓〓实体贴图(random_entities)

〓〓〓根据匹配替换CEM实体模型(非random_entities做法)

〓〓〓仿发光

〓〓〓拥有玩家皮肤的盔甲架





真想把cem也给说了...无奈又懒又没动力
CEM教程有大佬写了,第一章

在画这个末影人的时候找到了一个不错的在线绘制网站
https://minecraft.novaskin.me/resourcepacks


SevenC
很实用的教程,做地图很方便。

Hydrophoton
伪发光是高版本才有的吗?1.12可以,1.7试了好像不行

⊙v⊙
Hydrophoton 发表于 2018-7-9 05:03
伪发光是高版本才有的吗?1.12可以,1.7试了好像不行

optifine这玩意不好说,感觉就是调用原版里的东西给玩家用
就是说尽量保证你的optifine版本为最新...

1.7.2的话最新版本为OptiFine 1.7.2 HD U F7
1.7.10的话最新版本为OptiFine 1.7.10 HD U E7

如果还是不行的话可能就是那个版本下做不出来吧
毕竟optifine看着像是尽量给每个主流mc版本都保持最新

flash0tt
自定义实体贴图+CEM其实是可以做到一定程度的自定义实体模型的

haoduoyinliugou
很实用,简洁易懂的教程,希望带佬更更新

浅梦l
设置怪物名字的时候好像不支持中文啊,有中文就没有效果了

⊙v⊙
浅梦l 发表于 2018-12-3 03:29
设置怪物名字的时候好像不支持中文啊,有中文就没有效果了

那就要把文本内的中文转换为unicode。
比如你要怪物名字为时换皮,
的unicode是\u76ae
Unicode转换
  1. skins.1=2
  2. name.1=\u76ae
复制代码

浅梦l
⊙v⊙ 发表于 2018-12-4 12:51
那就要把文本内的中文转换为unicode。
比如你要怪物名字为皮时换皮,
皮的unicode是%u76ae

没有用的emm,转u码试过了...

浅梦l
浅梦l 发表于 2018-12-4 13:27
没有用的emm,转u码试过了...

特殊符号比如'['之类的也需要转码吗
我想让名字为§a[Lv.5]§e史莱姆 的怪物有一个不同的皮肤要怎样做呢

⊙v⊙
浅梦l 发表于 2018-12-3 19:32
特殊符号比如'['之类的也需要转码吗
我想让名字为§a[Lv.5]§e史莱姆 的怪物有一个不同的皮肤要怎样做呢 ...

没试过的话哪敢随便告诉你...
保险起见这个§也要转。
§a[Lv.5]§e史莱姆
§ >   \u00a7
史 >   \u53f2
莱 >   \u83b1
姆 >   \u59c6

浅梦l
⊙v⊙ 发表于 2018-12-4 13:50
没试过的话哪敢随便告诉你...
保险起见这个§也要转。
§a[Lv.5]§e史莱姆

好的谢谢,我再尝试一下

zykool
牛啊  支持  请问怎么读取自定义怪物的模型为obj格式的

我只说真话
不错很好看顶一下

BlackCB.
novaskin倒是挺好的,就是没梯子用不了
我试试开google helper可不可以

Rainxiao
很漂亮的材质包感谢分享

FuMeng_
666感谢楼主

uiopjklkk
请问下可以做到不同的附魔效果么 就是附魔后被附魔武器上冒的那个紫光 可以通过这个方法制作出更多的附魔效果么

⊙v⊙
uiopjklkk 发表于 2019-7-31 05:10
请问下可以做到不同的附魔效果么 就是附魔后被附魔武器上冒的那个紫光 可以通过这个方法制作出更多的附魔效 ...

教程已更新

可以做到特定nbt物品的特定附魔使用不同的效果

uiopjklkk
⊙v⊙ 发表于 2019-8-1 09:28
教程已更新

可以做到特定nbt物品的特定附魔使用不同的效果

有一些地方有点不大明白,问一下
①那个drop.png文件是放在哪个文件里,是和.proerties一个文件里么
②您写的那个代码是可以直接复制使用的嘛
③我用的1.9.4的客户端,使用的是支持194的高清修复,可以做到附魔的这个嘛
我研究了半天了还是没法实现,跪求大大帮助!

uiopjklkk
⊙v⊙ 发表于 2019-8-1 09:28
教程已更新

可以做到特定nbt物品的特定附魔使用不同的效果

大大 有个私人请求 可以要你个联系方式QQ之类的吗 我想详细的问您一下 可以给报酬的

⊙v⊙
uiopjklkk 发表于 2019-8-1 01:10
有一些地方有点不大明白,问一下
①那个drop.png文件是放在哪个文件里,是和.proerties一个文件里么
②您 ...

texture=drops.png
如果像这么写,就是和properties同一位置下。

贴内代码都是亲自测试过的。

1.9.4的话可能properties要保存到mcpatcher下而非optifine
如果optifine是版本最新,那有可能是没有这功能。毕竟1.9是多少年前的东西了...

低热皮皮虾
辛苦了 谢谢

chasing6
敢问大佬这款支持1.12.2吗?

张扬20020415
可以说是很到位了

Kylin_lei
感谢大佬的教学,有收获了

Cherry_Egoist

感谢楼主的教程

3-甲氧基苯甲醛
请问楼主,在.properties文件中可以锁定物品种类和附魔来改变贴图或模型,那么如何选择“没有附魔”的武器或工具呢?比如说我给“拥有任意锋利附魔等级的金剑”写了个

type=item
matchItems=golden_sword
model=texasswordsharpness
enchantmentLevels=0-255
enchantments=sharpness

我要如何选择“没有任何附魔的金剑”呢?

⊙v⊙
本帖最后由 ⊙v⊙ 于 2021-12-16 18:58 编辑
3-甲氧基苯甲醛 发表于 2021-12-16 17:49
请问楼主,在.properties文件中可以锁定物品种类和附魔来改变贴图或模型,那么如何选择“没有附魔”的武器 ...

其实也可以用nbt=进行匹配
如下,将在拥有至少任意一个附魔时匹配。
nbt.Enchantments.0=*
可能需要这样写 nbt.Enchantments=*


然后讲道理,使用代表反选的感叹号就可以做到
如下,将在没有任何附魔时匹配。
nbt.Enchhantments.0=!*
可能需要这样写 nbt.Enchantments=!*

如果上面使用!的方法不凑效的话,这锅作者背

3-甲氧基苯甲醛
⊙v⊙ 发表于 2021-12-17 12:54
其实也可以用nbt=进行匹配
如下,将在拥有至少任意一个附魔时匹配。
nbt.Enchantments.0=*

请问楼主,使用您的办法进行实测后,发现在.properties里加入nbt.Enchantments=!*这样一句之后会使得选择器把所有金剑都选上(包括已经附魔的),因此作者背锅(bushi)

此外还有一个问题,当我有两个.properties文件并指向同一个物品(金剑)的时候,其中一个选择的是“带有任意锋利等级的金剑”[注1],另一个选择的是“带有任意等级的锋利和耐久的金剑”[注2],最终实测下来的结果是两个只保留任意一个的话都能正常使用并加载相应的模型,如果两个.properties文件都存在的话会导致对“锋利5耐久3的金剑”生效的是前者而不是后者[注3],也就是说它会调用“锋利”的模型而不会调用“锋利和耐久”的模型,因此希望楼主能详细讲解一下.properties生效的优先级以及<规则.1><规则.2>这种规则优先级的使用方法(就是您帖子里“实体贴图”里提到的方法),以及当物品拥有多个附魔时如何选择该物品[注4],谢谢!

[注1]
type=item
matchItems=golden_sword
model=texassword1
enchantmentLevels=0-255
enchantments=sharpness

[注2]
type=item
matchItems=golden_sword
model=texassword2
enchantmentLevels=0-255
enchantments=sharpness
enchantments=unbreaking

[注3]如上两段代码,如果只有一个.properties且里面的代码是[注2]的代码,最终在“锋利5耐久3的金剑”上生效的是texassword2,如果只有一个.properties且里面的代码是[注1]的代码,最终生效的是texassword1,如果有两个.properties且分别是[注1]和[注2]里的内容,最终生效的是[注1]里的代码,表现出来的模型是texassword1

[注4]假设有7个物品,其上的附魔分别为“a”,“b”,“c”,“a,b”,“a,c”,“b,c”,“a,b,c”如何编写.properties才能使得这七个物品分别对应七个不同的模型呢?

⊙v⊙
那可以试试这个
  1. type=item
  2. matchItems=golden_sword
  3. model=texassword1
  4. enchantments=!protection !fire_protection !feather_falling !blast_protection !projectile_protection !respiration !aqua_affinity !thorns !depth_strider !frost_walker !binding_curse !sharpness !smite !bane_of_arthropods !knockback !fire_aspect !looting !sweeping !efficiency !silk_touch !unbreaking !fortune !power !punch !flame !infinity !luck_of_the_sea !lure !mending !vanishing_curse
复制代码


或者这个
  1. type=item
  2. matchItems=golden_sword
  3. model=texassword1
  4. enchantments=!*
复制代码





cit物品这边可以给里面加上权重,默认是0
多个properties匹配时会选用高权重的properties
比如
weight=1




见上,对匹配要求越多的properties写上越高的权重。
如果可以,建议直接匹配自定义nbt

3-甲氧基苯甲醛

明白了!谢谢楼主



最后一个问题,properties里多项条件的逻辑貌似是“或”逻辑吧?那么有什么办法能切换到“且”逻辑呢?就是从“附魔有锋利耐久的金剑”转换成“附魔有耐久锋利的金剑”。

⊙v⊙
本帖最后由 ⊙v⊙ 于 2021-12-17 00:00 编辑

这个好像比较麻烦,要用回之前的nbt=
哎之前写的几个nbt检测=前面好像漏了id,这里补上

嗯记得是这样,这里的(A|B)代表
配合nbt匹配,第一条判断是否符合其中一个附魔,然后第二条判断另一个附魔是否为 或 中的另一个

  1. type=item
  2. matchItems=golden_sword
  3. model=texassword1
  4. nbt.Enchantments.0.id=(minecraft:sharpness|minecraft:fortune)
  5. nbt.Enchantments.1.id=(minecraft:sharpness|minecraft:fortune)
复制代码



然而这样会有一个小问题,那就是匹配这里是看到的那个数字,为附魔nbt标签列表里面的顺序。
换句话说,上面这样写是在判断该物品的第一和第二个附魔是否为(A|B)中的一个,
在物品持有多于需要判断的附魔数量时,就会存在检测不到的情况。

比如这里有一个物品,依次拥有附魔,sharpness、smite、fortune。
在properties判断的时候由于第二个附魔为smite而非fortune,所以不匹配。(尽管该物品的确拥有fortune)

3-甲氧基苯甲醛

明白了!谢谢楼主!

最情劫难渡
学到了学到了

沐熙呀i
感谢大佬分享 非常好用 太棒了

DoerMCZZ
你不说我都不知道有这些功能

Mcqqcy
楼主辛苦     

RASY-存
感谢大佬  感觉这个很深奥 代码我看着就有点发晕

mu123123
很实用呢!感谢作者大大!

炫彩世界
特别实用,特别感谢