前言
迟来的教程帖,本以为将至的1.16没有人接锅optifine,
没想到峰回路转,所以感觉这篇教程应该不算四九入国军,就发出来供大家参考一二。
下面说正题。
本帖介绍自定义材质的概念以及应用、以及为什么需要optfine。
(当然,会做材质包的大佬可以无视本帖,毕竟本帖是个人向&入门向)
你是否厌倦了普通的物品材质?
你是否觉得材质包的道具剑斧千篇一律?
你是否馋隔壁inf的道具模型想在自己装备上也整一把专属的材质?
你是否担心自己珍贵的纪念品被误当做普通方块放置比如被做成潮涌核心之类的白给?
如果你是个刚开始接触MC材质建模的新手,那么这个帖子对你可能会有参考价值。
1.自定义材质的效果
如图显示,
可以自定义材质,将你重视的纪念品/惯用道具修改材质,
和普通道具区分开,既方便寻找,也避免白给
像武士刀,拿在手上都感觉手感更好了呢
2.自定义材质的制作
(Blockbench方向)
本篇不介绍2D贴图的修改,看完本帖的基本上都能自己尝试。
既然要追求极致,当然要贯彻到呸,当然要用3D的模型更好。
如果你想把手中的物品添加一个3D材质,首先你需要一个3D建模工具,(不想做模型的同学可以请大佬代做)
比如Blockbench、Cubik Studio等等,Magicvoxel也是大佬们常用的建模工具
因为这里是个人向,就介绍我常用的工具Blockbench了
那么如何使用Blockbench制作3D材质呢,如果你懒得自己摸索,下面会简单介绍一下BB的工作流程
1.开始工程
打开Blockbench,新建一个项目,
我们在主页面选择这里
2.预设参数
这里是参数,
项目名称自己定义,一般前几个其他的选默认就行,
下面的贴图是关联你应用的贴图大小,比较推荐32x32,如果你要用高清贴图的按个人需求进行调整
3.开始建模
这边大纲下面可以添加方块,我们就是通过方块的堆砌完成一个个模型的制作的
每个单位方块都可以调节大小或平移,默认调整的单位为一格单位,如果需要1一下的微调,按住ctrl就可以了
按空格可以切换移动和缩放模式,在建模区域的界面左上角也可以切换模式,包括旋转
除了手动拖拽,也可以在右上角通过直接修改数据的方式,调整方块的大小位置属性
你也可以对方块进行分组,比如我做一个自定义的双刃剑,需要剑刃和剑柄分开上贴图、统一移动等等,都可以通过分组来解决
有一些雷同的结构,比如长杆状等等形状,可以通过生成副本进行复制(按住ctrl可以多选)
批量处理,省时省力
好了加了一点点细节,例子的建模部分就差不多了
4.应用贴图
界面左下角有贴图部分,可以新建或导入贴图
如果导入贴图可能会跳出这个界面
这个其实不要紧,可以无视
出现此提示是因为贴图文件都是放在textures路径中,也就是说如果你的图片在名为textures的文件夹里就不会报这个提示
因为我们这边只需要看看模型的效果,到时候模型、贴图还是需要拿出来放在材质包的响应路径,所以不用管它
唯一比较麻烦的是第二次打开工程会显示贴图文件未找到个,然后材质读不出贴图
手动把文件夹的图片拖拽到这里基本上就恢复正常了。
如下图,选中你需要增加贴图的方块,把贴图往上拖就可以完成贴图
想让目标方块应用贴图哪一部分的颜色,通过手动拖动贴图上的选区,修改大小和位置,框中对应区域就可以了
5.贴图修改
右上角画板模式可以对贴图进行编辑,对贴图修改或增加颜色等等
点击编辑模式可以切换回来
贴图上色完成
6.模型修改
右上角还有一个显示调整模式
这里是调整你的模型在MC里的状态,比如拿在手上、丢在地上、背包里、展示框里的样子
第一第三人称等等一应俱全,按需自行调整即可,没什么好说的。
完事就可以Ctrl+S进行保存了,模型会保存为json文件。
====================================
这边选择前置光照,否则你的模型在MC中的物品栏会显示偏暗
如果你的bb版本过低,没有光照选项,你可以手动修改保存的json文件,增加这样一条属性:
====================================
值得一提的是几个特殊物品:弓、弩、盾
因为这几个东西在MC里面是有特殊状态的,普通的一个建模是无法解决的。
在手持状态的弓弩盾和一般物品没有区别,
但是蓄力状态的弓需要额外模式下单独建模,其中弓有物品弓、上弦阶段一、上弦阶段二、上弦阶段三共计4种状态,
后3种模型在第一视角需要选择这里的第二个图标
,
表示是拉弓的模型
弩有物品弩、上弦阶段一、上弦阶段二、上弦阶段三、箭矢在弦、火箭在弦共计6种状态
后5种模型在第一视角需要选择第三个图标,表示为拉弩的模型
盾只有持盾和举盾两种状态,不需要在建模软件区分模式,我们会在后面材质包应用里进行关联,简单给这两种状态分别建个模就行
虽然弓弩盾看起来要建很多模,但事实上你可以复制一下保存的json文件,然后只调整显示调整模式里面的内容
至于三叉戟就算了吧,那玩意好像只支持贴图修改,3D模型不管是MC自带的CustomModel还是Optifine的自定义模型都不支持的
(一个交通工具换什么模型,走大街上拿把帅气的砍刀就行要啥自行车)
下一步骤就是如何把模型置入MC中
3.自定义材质的应用
1.制作材质包
如果不想从0开始建立材质包,你可以用现成材质包框架进行增删调整
随便下载某个材质包后解压,把除了目录文件夹以外的文件都删掉
2.目录介绍
和自定义材质相关的目录如下
有关材质的内容全部都放在assets\minecraft路径下。
①models
models用于存放原生的材质内容(即不依赖optifine的材质内容),
举个例子,隔壁inf的物品材质都是在models文件夹下,item目录管理材质的物品本体,custom管理自定义材质
这个路径下MC会根据物品的Tag(CustomModelData)找到对应材质,CustomModelData的Tag用指令和命令方块赋予物品
本帖介绍服务器材质的使用,暂时不举这边的例子
②textures
存放贴图,对应①中的模型,也是服务器公用材质包或个人地图材质包使用,本帖举例用不到
③optifine
这边就是存放我们自定义材质的地方了,optifine允许你在不切换已有材质包的情况下,让不同物品显示出不同的特殊材质
optifine\cit里面放置配置文件
optifine\customs里面放置模型文件
optifine\textures里面放置贴图文件
3.路径调整
1.首先,在optifine\cit中创建一个配置文件,比如这把双刃剑:
文件名没有要求,随便取个像样的名字就行;
2.把贴图文件放进optifine\textures路径
3.把模型json文件放进optifine\customs路径
然后打开这个json文件,把相对应的贴图路径部分修改一下,路径不需要加贴图扩展名
4.游戏适配
现在物品模型和贴图都扔进材质包了,如何在服务器里让MC读取材质包并显示呢?
①优先级
首先需要说明一下,不管有没有应用optfine的自定义材质,MC会优先读取物品的CustomModelData这一Tag然后找对应的材质,
也就是说在assets\minecraft\models里的材质会优先应用。
比方说,你在安装有inf材质包的情况下,利用optifine的功能修改inf物品的材质,最终显示的还是inf材质包里的模型,因为它优先
但如果这个物品没有CustomModelData,比如毛线服务器的各种纪念品是没有这个Tag的,你就可以利用optifine的功能了、
②配置文件
我们需要一个管理某物品会显示某材质的配置文件,放在assets\minecraft\optifine\cit目录下,下面的内容说明这个配置文件应该如何配置
③读取名字应用材质
可以通过修改物品名称的方式关联上自定义的材质,配置文件中这么修改
type=item
items=minecraft:diamond_sword
model=optifine/customs/double_sword
nbt.display.Name=pattern:*【...】*
注:此处【...】内容为需要定位的物品名称的Unicode编码
弓的话是这样的:
type=item
items=minecraft:bow
model=optifine/customs/bow_MK12
model.bow_pulling_0=optifine/customs/bow_MK12_1
model.bow_pulling_1=optifine/customs/bow_MK12_2
model.bow_pulling_2=optifine/customs/bow_MK12_3
nbt.display.Name=pattern:*MK12*
=================================================
弩的话是这样的:
type=item
items=minecraft:crossbow
model=optifine/customs/crossbowA_arrow
model.crossbow_pulling_0=optifine/customs/crossbowA_pulling_0
model.crossbow_pulling_1=optifine/customs/crossbowA_pulling_1
model.crossbow_pulling_2=optifine/customs/crossbowA_pulling_2
model.crossbow_arrow=optifine/customs/crossbowA_arrow
model.crossbow_firework=optifine/customs/crossbowA_firework
nbt.display.Name=pattern:*A*
=================================================
盾的话是这样的:
type=item
items=minecraft:shield
model=optifine/customs/custom_shield
model.shield_blocking=optifine/customs/custom_shield_block
nbt.display.Name=pattern:*myshield*
下面逐行说明:
第一行是物品类型,一般是item,也有arms和elytra参数,本帖用不到
第二行是说明该物品的原型,当然填写id也可以
最后一行前是说明物品(及子状态)对应模型材质的路径,模型名不需要加扩展
最后一行是物品名称的条件,等于或含有某字段
这里是部分字段匹配,(比如名字含有“MK12”的弓以及名字含有“A”的弩会被修改)
如果需要完全匹配,则等号后面直接加字段内容,不需要“pattern”等字样
任何非字母数字的字符请转化为Unicode
④读取nbt应用材质
如果你不想修改名称,也可以通过物品独特的nbt来关联自定义材质
比如咸鱼切的材质,用nbt的模式进行适配,配置文件就这么写:
type=item
items=minecraft:iron_sword
model=optifine/customs/xianyuqie
nbt.display.Lore.*=pattern:*\u4e5d\u4e5d\u516d*
最后一行中的内容是咸鱼切nbt的一部分“九九六”的unicode转码
除了最后一行和读取名字应用材质基本一致
这里例子也是部分字段匹配,任意行nbt含有特定字段的物品会显示自定义材质
需要完全匹配,同读取名字对应方法
如果需要某行nbt匹配,等号左边nbt.display.Lore.0为首行Lore,nbt.display.Lore.1为次行,以次类推
任何非字母数字的字符请转化为Unicode
⑤测试效果
在应用材质包的情况下F3+T重新加载资源即可
常见问题
1.如果出现手中物体没有任何改变的问题,检查自己配置文件中的items是不是搞错了,比如本体铁剑的物体你配成了钻剑
2.检查配置文件中的display字段匹配是否出错
3.检查自己材质包的路径是否有误,比如多或少某层目录,或者assets创成了asset之类
4.如果发现自己物品确实变形了,但贴图变成了紫黑相近的贴图丢失状态,检查模型json文件关于材质的路径是否正确
5.同上,但模型变成的是黑色,关闭光影以后检查是不是问题4
4.自定义材质的展示
咸鱼切
浆果刀
碧蓝航线系列(斩舰刀&标枪&金高平)
你甚至可以自己在MC穿舰装拍照
感觉碧蓝武器这坑没法填完,索性授人以渔
至于V4存档,在做了在做了