本帖最后由 535700475 于 2020-3-8 23:07 编辑
看了BBS里两位dalao的教程,感觉不是很懂
https://www.mcbbs.net/thread-803870-1-1.html
https://www.mcbbs.net/forum.php? ... &page=2#pid15647028
就是如何用 Optifine 和材质包 达到自定义材质
BBS里也没用很详细的教程
可以的话 能不能给个例子?
就是 材质包+Optifine 的成功自定义怪物材质的例子
看了BBS里两位dalao的教程,感觉不是很懂
https://www.mcbbs.net/thread-803870-1-1.html
https://www.mcbbs.net/forum.php? ... &page=2#pid15647028
就是如何用 Optifine 和材质包 达到自定义材质
BBS里也没用很详细的教程
可以的话 能不能给个例子?
就是 材质包+Optifine 的成功自定义怪物材质的例子
这个是高版本有的功能吗,感觉之前都没见过
看起来你需要的是 随机实体材质 random_entities 相关的功能
你还可以参考官方的文档
https://github.com/sp614x/optifine/blob/master/OptiFineDoc/doc/random_entities.properties
复制代码
随手尝试了一下
上面的这个.1 表示是第一组
textures.1=1 2 表示会随机的使用 1号和2号材质(其中1号就是原版的材质 2号是creeper2.png)
weights.1=1 2 表示 1号材质的概率是1 2号材质的概率是2(不过你可能用不到)
name.1=GREEN 表示需要名字为GREEN 才会应用这组规则(你要和插件配合 大概通过名字会比较简单)
textures.2=3 第二组只有3这个材质
name.2=RED 第二组需要名字为RED才会生效
TestPack.zip
(2.54 KB, 下载次数: 21)
你还可以参考官方的文档
https://github.com/sp614x/optifine/blob/master/OptiFineDoc/doc/random_entities.properties
- textures.1=1 2
- weights.1=1 2
- name.1=GREEN
- textures.2=3
- name.2=RED
随手尝试了一下
上面的这个.1 表示是第一组
textures.1=1 2 表示会随机的使用 1号和2号材质(其中1号就是原版的材质 2号是creeper2.png)
weights.1=1 2 表示 1号材质的概率是1 2号材质的概率是2(不过你可能用不到)
name.1=GREEN 表示需要名字为GREEN 才会应用这组规则(你要和插件配合 大概通过名字会比较简单)
textures.2=3 第二组只有3这个材质
name.2=RED 第二组需要名字为RED才会生效

据我所知,Optifine实现替换原版模型又根据name匹配,难度高
如果不修改原版模型,仅替换贴图+匹配name是可以的(我没这模型,我自己也不会做,目前mcbbs也没有)
推荐使用imiPet搭配iNewReflex插件+Mythicmobs,是可以实现自定义模型怪物,包括动作
如果不修改原版模型,仅替换贴图+匹配name是可以的(我没这模型,我自己也不会做,目前mcbbs也没有)
推荐使用imiPet搭配iNewReflex插件+Mythicmobs,是可以实现自定义模型怪物,包括动作
本帖最后由 SQwatermark 于 2020-3-10 08:59 编辑
一个例子:https://www.planetminecraft.com/texture_pack/transmobifier-v1-0-50-custom-mob-skins-custom-mobs-using-nametags/下载下来自己摸索摸索的话,大概就能懂了
简要说明下这个材质包做了什么:
random文件夹:提供了一些材质,并且告诉了optifine该在如何使用这些材质
cem文件夹:修改了一些生物的模型,注意,这种修改是无条件限制的,你没办法根据生物的名字来确定生物的模型
cit文件夹:修改了特定命名牌的材质
接下来讲解这个材质包是如何添加一只考拉的:
第一步
我们来看看这个文件夹:random\entity\pig\,圈起来的是考拉的材质
让我们打开pig.properties,这个文件的名字告诉了optifine,这里面的一切设置,都是用于猪的
来翻译一下圈起来的这段话:
猪的第6种材质是pig54.png,如果猪被命名为koala的话,猪就会使用这种材质。
你可能会困惑猪的第一种材质是什么,这可能是材质包作者对文档的理解有误造成的,你在制作的时候,大可以从1开始计数
你可能会困惑iregex:(koala|.* p5)是什么意思,这其实是一个正则表达式,你可以从这里学一下正则表达式的语法,尤其是要使用中文时,应该使用Unicode字符编码,例如:regex:(\u00a7.)*(\\\\+\\\\d+?(\u00a7.)*\\\\s*(\u00a7.)*)?\u829d\u9ebb\u9985\u6c64\u5706
如果你对正则表达式感到实在是头大,写上name.6=koala也是可以的,同样,中文需要使用Unicode编码
当你掌握了自定义生物的材质,大部分自定义生物的功能已经可以实现了
下面是进阶内容
第二步
如果你用铁砧将命名牌命名为koala,命名牌的材质会改变,出现一只考拉的脑袋,这是自定义物品材质的功能
可以看看cit\transmobifier\pig nametags\文件夹,不过这一部分和自定义生物本身没多大关系,就不详述了
第三步
当你在游戏中将一只猪命名为koala时,你会发现,考拉有一对大大的耳朵,而原版的猪是没有的,其实作者是修改了猪的模型
让我们打开cem文件夹,里面和猪有关的是这几个文件:
其中pig.jem修改了猪的模型,具体来说,它为猪的模型添加了两个零件,详见此处
而red_panda_ears.jpm和red_panda_tail.jpm正是这两个零件的模型文件
不知道如何建模......了解下blockbench或者cubikstudio吧
red_panda_ears的第四行写着"texture": "textures/entity/pig/red_panda_parts",这说明了这两个零件的材质,我们打开这个文件夹,竟然发现red_panda_parts.png是一张完全透明的空白图片!这并不是什么奇怪的事,仔细想想,没有改名字的小猪,总不能也长者一对大耳朵和一条毛茸茸的大尾巴吧?所以这张图片默认是空的。那么如何在小猪被命名为koala时长出考拉的耳朵呢?(尾巴是给浣熊用的)
重新回到random\entity\pig\
我相信如果前面的部分可以看懂的话,这里也不难理解了。
一个例子:https://www.planetminecraft.com/texture_pack/transmobifier-v1-0-50-custom-mob-skins-custom-mobs-using-nametags/下载下来自己摸索摸索的话,大概就能懂了
简要说明下这个材质包做了什么:
random文件夹:提供了一些材质,并且告诉了optifine该在如何使用这些材质
cem文件夹:修改了一些生物的模型,注意,这种修改是无条件限制的,你没办法根据生物的名字来确定生物的模型
cit文件夹:修改了特定命名牌的材质
接下来讲解这个材质包是如何添加一只考拉的:
第一步
我们来看看这个文件夹:random\entity\pig\,圈起来的是考拉的材质

让我们打开pig.properties,这个文件的名字告诉了optifine,这里面的一切设置,都是用于猪的

来翻译一下圈起来的这段话:
猪的第6种材质是pig54.png,如果猪被命名为koala的话,猪就会使用这种材质。
你可能会困惑猪的第一种材质是什么,这可能是材质包作者对文档的理解有误造成的,你在制作的时候,大可以从1开始计数
你可能会困惑iregex:(koala|.* p5)是什么意思,这其实是一个正则表达式,你可以从这里学一下正则表达式的语法,尤其是要使用中文时,应该使用Unicode字符编码,例如:regex:(\u00a7.)*(\\\\+\\\\d+?(\u00a7.)*\\\\s*(\u00a7.)*)?\u829d\u9ebb\u9985\u6c64\u5706
如果你对正则表达式感到实在是头大,写上name.6=koala也是可以的,同样,中文需要使用Unicode编码
当你掌握了自定义生物的材质,大部分自定义生物的功能已经可以实现了
下面是进阶内容
第二步
如果你用铁砧将命名牌命名为koala,命名牌的材质会改变,出现一只考拉的脑袋,这是自定义物品材质的功能
可以看看cit\transmobifier\pig nametags\文件夹,不过这一部分和自定义生物本身没多大关系,就不详述了
第三步
当你在游戏中将一只猪命名为koala时,你会发现,考拉有一对大大的耳朵,而原版的猪是没有的,其实作者是修改了猪的模型
让我们打开cem文件夹,里面和猪有关的是这几个文件:

其中pig.jem修改了猪的模型,具体来说,它为猪的模型添加了两个零件,详见此处

而red_panda_ears.jpm和red_panda_tail.jpm正是这两个零件的模型文件
不知道如何建模......了解下blockbench或者cubikstudio吧
red_panda_ears的第四行写着"texture": "textures/entity/pig/red_panda_parts",这说明了这两个零件的材质,我们打开这个文件夹,竟然发现red_panda_parts.png是一张完全透明的空白图片!这并不是什么奇怪的事,仔细想想,没有改名字的小猪,总不能也长者一对大耳朵和一条毛茸茸的大尾巴吧?所以这张图片默认是空的。那么如何在小猪被命名为koala时长出考拉的耳朵呢?(尾巴是给浣熊用的)
重新回到random\entity\pig\

我相信如果前面的部分可以看懂的话,这里也不难理解了。
GiNYAi 发表于 2020-3-8 23:03
看起来你需要的是 随机实体材质 random_entities 相关的功能
你还可以参考官方的文档
https://github.com/ ...
太强大了!十分感谢! 之前研究了好久都弄不好……
蟹蟹!
SQwatermark 发表于 2020-3-9 17:55
一个例子:https://www.planetminecraft.com/texture_pack/transmobifier-v1-0-50-custom-mob-skins-custom ...
十分不好意思啊……!
刚刚采纳的时候没看到你的回复……
辛苦你了!!
GiNYAi 发表于 2020-3-8 23:03
看起来你需要的是 随机实体材质 random_entities 相关的功能
你还可以参考官方的文档
https://github.com/ ...
有没有办法 做到 直接使用mod里的生物材质图片 来应用到游戏里?
因为这为你发的这个方法只能在该生物的模型的基础上替换贴图……
童鞋鞋 发表于 2020-3-9 12:29
据我所知,Optifine实现替换原版模型又根据name匹配,难度高
如果不修改原版模型,仅替换贴图+匹配name是可 ...
是啊…… 替换原版模型 太难了
SQwatermark 发表于 2020-3-9 17:55
一个例子:https://www.planetminecraft.com/texture_pack/transmobifier-v1-0-50-custom-mob-skins-custom ...
有没有办法 做到 直接使用mod里的生物材质图片 来应用到游戏里?
535700475 发表于 2020-3-9 20:59
有没有办法 做到 直接使用mod里的生物材质图片 来应用到游戏里?
同样的模型应该可以 照搬贴图
而mod的生物模型大多是直接写死在代码里的(和mc 本身一样)
没有办法直接使用吧