本帖最后由 FHC红石 于 2017-3-7 23:41 编辑 

 :在一些大型地图中,常常会在地图中内置资源包(即地图绑定资源包)来实现自定义材质的效果
:在一些大型地图中,常常会在地图中内置资源包(即地图绑定资源包)来实现自定义材质的效果
 :对啊对啊,这种效果真是超棒的呢
:对啊对啊,这种效果真是超棒的呢
 :但是1.8以后,不仅可以内置资源包,还可以修改模型
:但是1.8以后,不仅可以内置资源包,还可以修改模型
 :对,我们玩的不是同一个游戏
:对,我们玩的不是同一个游戏
 :但是今天呢,我们不讲复杂的模型怎么做
:但是今天呢,我们不讲复杂的模型怎么做
我们来讲一些简单又实用的模型怎么做,这些模型在地图中可能只是一个小细节
但却可以给你的地图加很多分,还可以装B(雾
 :首先你需要模型制作软件:http://tieba.baidu.com/p/3479151222
:首先你需要模型制作软件:http://tieba.baidu.com/p/3479151222
 :你可以在上面的帖子中熟悉下这个软件的基本操作,然后我们就可以开始带你装逼带你飞了
:你可以在上面的帖子中熟悉下这个软件的基本操作,然后我们就可以开始带你装逼带你飞了







 :在一些大型地图中,常常会在地图中内置资源包(即地图绑定资源包)来实现自定义材质的效果
:在一些大型地图中,常常会在地图中内置资源包(即地图绑定资源包)来实现自定义材质的效果
 :对啊对啊,这种效果真是超棒的呢
:对啊对啊,这种效果真是超棒的呢
 :但是1.8以后,不仅可以内置资源包,还可以修改模型
:但是1.8以后,不仅可以内置资源包,还可以修改模型
 :对,我们玩的不是同一个游戏
:对,我们玩的不是同一个游戏
 :但是今天呢,我们不讲复杂的模型怎么做
:但是今天呢,我们不讲复杂的模型怎么做
我们来讲一些简单又实用的模型怎么做,这些模型在地图中可能只是一个小细节
但却可以给你的地图加很多分,还可以装B(雾
 :首先你需要模型制作软件:http://tieba.baidu.com/p/3479151222
:首先你需要模型制作软件:http://tieba.baidu.com/p/3479151222
 :你可以在上面的帖子中熟悉下这个软件的基本操作,然后我们就可以开始带你装逼带你飞了
:你可以在上面的帖子中熟悉下这个软件的基本操作,然后我们就可以开始带你装逼带你飞了
 
  :可能很多人都认为,模型就是做出一些什么很特别的高大上的东西,比如某现代材质做个电脑什么的
:可能很多人都认为,模型就是做出一些什么很特别的高大上的东西,比如某现代材质做个电脑什么的
 :当然一个普通的地图不需要太复杂的模型,当然啦,dalao请走开
:当然一个普通的地图不需要太复杂的模型,当然啦,dalao请走开
 := =现在很多地图作者,都想自定义方块,比如上面贴什么材质,侧面贴什么材质,比如我和阶段制作的跑步机跑酷地图中的这些方块
:= =现在很多地图作者,都想自定义方块,比如上面贴什么材质,侧面贴什么材质,比如我和阶段制作的跑步机跑酷地图中的这些方块  每个面都可以贴上我想要的材质
每个面都可以贴上我想要的材质
但是问题是怎么让材质是贴在我想要的面上的呢
 :
:在材质后面加上_up或者_side什么的应该就行了吧
 :↑以上纯属误导
:↑以上纯属误导
正确的姿势还是要修改模型,让我们打开模型软件
 :然后看着上面的模型教程就能自己做个模型了,简单吧2333
:然后看着上面的模型教程就能自己做个模型了,简单吧2333
 :当然这只是简单模型嘛,做一些自定义方块还是足够的
:当然这只是简单模型嘛,做一些自定义方块还是足够的
但是呢,对于一些方块的自定义模型,其实有更简单的方法
如果有去看游戏的模型文件,会发现一般不会有那么多的代码
为什么呢?
 :其实还有一种简单的方法,就是利用方块的父类(就是方块中的爸爸)【我当然是他们的爷爷23333】
:其实还有一种简单的方法,就是利用方块的父类(就是方块中的爸爸)【我当然是他们的爷爷23333】
 :父类(parent)就是这个模型引用某个模型作为他的爸爸,而他是儿子
:父类(parent)就是这个模型引用某个模型作为他的爸爸,而他是儿子
所以儿子要长得像爸爸,所以模型是一样的,只是材质不一样(就是说他们穿的衣服是不一样的)
那么我们如何利用父类来自定义方块呢?
 :来个例子吧,比方说我要把绿宝石块改成另一种书架
:来个例子吧,比方说我要把绿宝石块改成另一种书架
(贴图方式依然是上下一样,侧面一样,但材质不一样)
 :好,我们打开绿宝石块的模型json文件
:好,我们打开绿宝石块的模型json文件
(有些人可能会说为什么我的json代码很乱,试着把它们复制到word里看看)
可以看到他的父类是"block/cube_all",即\assets\minecraft\model\block文件夹里的cube_all,这也是大部分方块所用的,就是6面同一个材质,textures就是要使用的材质
all是父类中设置的材质的变量(材质的名字),然后在子类中说明all所对应的是什么材质,然后在父类的模型上贴上材质作为方块
blocks/emerald_block即是材质的路径(即\assets\minecraft\textures\blocks\emerald_block)
 :然后是不是把绿宝石的父类改成书架就好了?像这样?
:然后是不是把绿宝石的父类改成书架就好了?像这样?
"parent":"block/bookshelf"
 :当然是……不能啦,别忘了书架有两种材质
:当然是……不能啦,别忘了书架有两种材质
所以让我们打开书架的模型json文件看看
可以看到书架也有父类(说明他也是个儿子)
其实把代码直接复制到绿宝石块的json里就可以了,然后把材质的路径改成你想要的即可,当然如果你的父类一定要用bookshelf也是可以的(如果你想让他也做爸爸的话)
在填写材质路径时要注意,文件夹与文件之间是用/而不是\
(巧记:MC中的指令是/开头的,所以方块路径直接也是用/)
 :现在我知道了,一个方块可以有好多个爸爸啊2333
:现在我知道了,一个方块可以有好多个爸爸啊2333
 :是啊,如果你去打开cube_column的json,会发现他的爸爸是cube,再打开cube,会发现他的爸爸是block,不过cube规定的是模型的样子,block规定的是方块的物品形式的模型,如手上、GUI、第三人称等的物品的旋转、位移和大小
:是啊,如果你去打开cube_column的json,会发现他的爸爸是cube,再打开cube,会发现他的爸爸是block,不过cube规定的是模型的样子,block规定的是方块的物品形式的模型,如手上、GUI、第三人称等的物品的旋转、位移和大小
 :6666都是爸爸
:6666都是爸爸
 :总结:父类会让模型代码简洁且容易阅读
:总结:父类会让模型代码简洁且容易阅读 
 
 :先看看效果图吧 有凹凸的
:先看看效果图吧 有凹凸的

没有凹凸的

真正的书架??
 如果你有去问答版,可以看到版头图片上的书架是有凹凸感的,不在同一平面上,这对于某些建筑党来说是非常棒的效果
如果你有去问答版,可以看到版头图片上的书架是有凹凸感的,不在同一平面上,这对于某些建筑党来说是非常棒的效果  现在我们来实现这个东西
现在我们来实现这个东西
 :先打开软件,按N创建新元素,按T把6个面都设置成可见
:先打开软件,按N创建新元素,按T把6个面都设置成可见
 :然后设置视角-网格-网格尺寸-0.5
:然后设置视角-网格-网格尺寸-0.5
就是说我们最小的移动距离为0.5格
(因为我们只要凸出0.5格就够了,如果你要突出1格可以不设置)
 :然后贴上书架的材质
:然后贴上书架的材质
 :贴的时候要注意,赋予材质后,要点一下粉红色框中的材质,这样才会确定UV
:贴的时候要注意,赋予材质后,要点一下粉红色框中的材质,这样才会确定UV 并且四个角出现4个点可以设置贴的大小,如果没有去确定UV,那么贴的材质可能会出错
并且四个角出现4个点可以设置贴的大小,如果没有去确定UV,那么贴的材质可能会出错 贴完之后,把其中的两个对立的面拉长0.5格,当然你在三视图中拉长也行
贴完之后,把其中的两个对立的面拉长0.5格,当然你在三视图中拉长也行
 这样在其他方块中就会突出0.5格了,但是只有2个方向,我们要把4个方向都做了,再新建一个元素,操作和上面一样
这样在其他方块中就会突出0.5格了,但是只有2个方向,我们要把4个方向都做了,再新建一个元素,操作和上面一样
 :不过在操作过程中如果你是先拉长后贴材质就会出现这样的问题,很简单,把粉红色框拉成和材质一样的大小
:不过在操作过程中如果你是先拉长后贴材质就会出现这样的问题,很简单,把粉红色框拉成和材质一样的大小

 :然后就做成了这样,让我们放到游戏里试试吧
:然后就做成了这样,让我们放到游戏里试试吧
 :完美啊
:完美啊
 :不,如果你仔细观察上面,就会发现材质有点不对劲
:不,如果你仔细观察上面,就会发现材质有点不对劲
 :为什么呢
:为什么呢
 :原因很简单,从平面来看,一个材质是在纵向被拉长,一个是横向,两个重叠在一起,像素没有对到一起,但MC两个都要显示,所以两个重在一起显示的先后就出现了问题
:原因很简单,从平面来看,一个材质是在纵向被拉长,一个是横向,两个重叠在一起,像素没有对到一起,但MC两个都要显示,所以两个重在一起显示的先后就出现了问题
 :不过其实这也不是件坏事
:不过其实这也不是件坏事
如果多摆一点,在上面走路,就想地震了一样,加上tp @a ~ ~0.1 ~就成了真正的伪地震23333(GIF效果可能不是很好,自行游戏中尝试)
 :好啦,我们现在还是来修复这个
:好啦,我们现在还是来修复这个BUG特性吧
首先,把两个元素移开,可以看到两个方向不同的长方形 那么怎样让像素对上呢?
那么怎样让像素对上呢?
以z轴负半轴的方向来看,我们先选中比较高的长方形
因为两边比较窄,所以我们把材质中的两边去掉0.5格 选中另一个
选中另一个
是左右长,上下窄,就把上下各去掉0.5格 这样拼在一起像素就能对上了,别忘了修改底下的材质
这样拼在一起像素就能对上了,别忘了修改底下的材质
同样的,你还可以做突出更多一点的,更明显一点
但记住上面的也要跟着修改,比如我突出1格,上面的材质就要两边缩进1格
 :简直66666
:简直66666
 :不过还是会有一点点小BUG,因为模型是凸出去的,所以如果多个这样的书架摆在一起,就会有重叠的模型,重叠的材质
:不过还是会有一点点小BUG,因为模型是凸出去的,所以如果多个这样的书架摆在一起,就会有重叠的模型,重叠的材质
不过有个小技巧可以避免,把地毯的模型中的材质改成木板,盖上去就完美了
 :强无敌
:强无敌
 :接着,我们来玩一些高能的东西,打开模型制作器
:接着,我们来玩一些高能的东西,打开模型制作器
把模型拉大一点,但不要超过3×3×3个方块,因为MC模型就支持这么大
 :不要问我为什么不能再大,如果你不想游戏崩溃的话(雾
:不要问我为什么不能再大,如果你不想游戏崩溃的话(雾
 :然后,我们就能做出放大的方块和可穿透的墙
:然后,我们就能做出放大的方块和可穿透的墙
可以去看看尼玛乄骑士的帖子,不过他主要讲的是代码
我们现在用软件就可以实现了
 :更大的门?就是你的某建筑地图中的那个门?贼6啊!
:更大的门?就是你的某建筑地图中的那个门?贼6啊!
 :对的,很多人应该之前都很好奇是怎么做到的
:对的,很多人应该之前都很好奇是怎么做到的
现在学了模型,应该知道了吧
 :就是把门的模型改大?666
:就是把门的模型改大?666
 :首先,如果你之前做完了书架,那么把网格调回1.0,因为我们现在不用那么小的移动距离
:首先,如果你之前做完了书架,那么把网格调回1.0,因为我们现在不用那么小的移动距离
然后,直接打开门的父类修改,你甚至可以给门加上把手2333
父类共4个,上下各两个,分别是door_bottom_rh.json
door_bottom.json
door_top_rh.json
door_top.json
或者你自己做一个也行,就是要注意方向了
如果方向错了,可能开门变关门,关门变开门(黑科技Get√)
 :把模型拉大,使长宽为原来的1.5倍
:把模型拉大,使长宽为原来的1.5倍
但是网格只有16×16,怎么确定我弄的是不是24×25呢?
 :教大家一个小技巧,把方块往下移动8个格子,再把他拉高,就成了24×16了,另一边同理
:教大家一个小技巧,把方块往下移动8个格子,再把他拉高,就成了24×16了,另一边同理




 :不过还是有点麻烦啊
:不过还是有点麻烦啊
 :没事,后面会教大家更简单的方法
:没事,后面会教大家更简单的方法
然后设置面的可见,贴上材质,把文件名改成你要替换的门的文件名
 :效果很棒,但是,为什么开门后旁边会黑啊
:效果很棒,但是,为什么开门后旁边会黑啊
 :原理很简单,这个方块的侧面被旁边的草方块遮挡了,所以不见光,所以整个面都是黑的
:原理很简单,这个方块的侧面被旁边的草方块遮挡了,所以不见光,所以整个面都是黑的
 :但这样就很难看啊了啊
:但这样就很难看啊了啊
 :教大家一种非常取巧的方法,我们都知道玻璃是透光的所以我们可以把玻璃之类的透明方块的材质换成其他方块的材质,就不会出现这种情况了
:教大家一种非常取巧的方法,我们都知道玻璃是透光的所以我们可以把玻璃之类的透明方块的材质换成其他方块的材质,就不会出现这种情况了
如果方块比较复杂,你可以考虑用模型(大雾 还有一个需要注意的地方,由于只是模型扩大,但是碰撞箱没有变,玩家可以从中间穿过,可以探测关门时放置屏障在中间,开门时放置空气即可,具体线路做法可以参考我之前的建筑地图
还有一个需要注意的地方,由于只是模型扩大,但是碰撞箱没有变,玩家可以从中间穿过,可以探测关门时放置屏障在中间,开门时放置空气即可,具体线路做法可以参考我之前的建筑地图
 :透明方块有什么用呢?
:透明方块有什么用呢?
 :如果萤石什么的是透明的,就可以隐藏萤石来照明了,更美观
:如果萤石什么的是透明的,就可以隐藏萤石来照明了,更美观
还可以作伪屏障,还是可以敲掉的伪屏障2333
 :那么我们现在就开始吧
:那么我们现在就开始吧
 (黑科技请移步这里)
(黑科技请移步这里)
 :话说为什么不能把材质直接改成透明的
:话说为什么不能把材质直接改成透明的
 :会出问题啊,你问Notch啊,只有玻璃一类的才能用透明材质
:会出问题啊,你问Notch啊,只有玻璃一类的才能用透明材质
 :(笑而不语)
:(笑而不语)
 :现在打开模型制作软件,按N新建一个元素
:现在打开模型制作软件,按N新建一个元素
随便选择一个面按T设置为可见(如果所有面都不可见则无法保存)
在三视图中把他拉到最小,拉到只有一个点为止
然后保存,放到游戏里就是一个真正透明的方块了,当然他和普通方块一样有碰撞箱 代码:
代码: :求助,这怎么办
:求助,这怎么办
 :恭喜你遇到了一个非常麻烦的问题
:恭喜你遇到了一个非常麻烦的问题
就是这个透明方块一接触其他不透明方块,就会直接透过去
因为正常情况下两个方块相贴面看不见,不渲染
 :解密地图新技能Get
:解密地图新技能Get
 :现在让我们来解决这个问题
:现在让我们来解决这个问题
首先,我们来了解下cullface
如果模型中写上了这个,那么两个方块贴在一起时,写了cullface 面相贴不渲染
 :没毛病啊,为什么要我们知道这个,相贴的面看不见渲染了干嘛
:没毛病啊,为什么要我们知道这个,相贴的面看不见渲染了干嘛
 :但是对于透明的方块就不一样了因为是透明的,所以相接的面要渲染,才不会出现透过去的情况
:但是对于透明的方块就不一样了因为是透明的,所以相接的面要渲染,才不会出现透过去的情况
 :所以只要把萤石的模型json中添加cullface就好了?
:所以只要把萤石的模型json中添加cullface就好了?
 :我会让你们这么容易解决吗(滑稽)
:我会让你们这么容易解决吗(滑稽)
 :但是,那样只修改了萤石的材质能不能看见,但是萤石没有材质啊,我们是要让其他方块的材质都看得见啊
:但是,那样只修改了萤石的材质能不能看见,但是萤石没有材质啊,我们是要让其他方块的材质都看得见啊
 :突然无言以对
:突然无言以对
 :所以你们要把所有方块都改成接触可见,然后就会卡的要死
:所以你们要把所有方块都改成接触可见,然后就会卡的要死
打开cube,然后把所有的"cullface": "up"什么的都删掉,然后就可以了
 因为大部分方块的父类都是cube,草方块什么的除外,要草方块等其他方块就再另外改
因为大部分方块的父类都是cube,草方块什么的除外,要草方块等其他方块就再另外改 举个例子,这是原来的cube文件,然后要删掉所有的红色字体,前面的逗号也要删掉,它是用来分隔多个东西的,就像指令中的每个NBT之间要有逗号是一样的
举个例子,这是原来的cube文件,然后要删掉所有的红色字体,前面的逗号也要删掉,它是用来分隔多个东西的,就像指令中的每个NBT之间要有逗号是一样的
就变成了这样 :当然这是一种方法,但是可以让游戏变卡(黑科技Get√)
:当然这是一种方法,但是可以让游戏变卡(黑科技Get√)
我们总不可能把萤石放在各种方块上吧,如果我们只是把萤石放到几种方块上
那么我们只要让那几种方块的接触面显示就好了,就不会卡成狗了
 :但是一个个改好麻烦啊
:但是一个个改好麻烦啊
 :我们可以用父类啊
:我们可以用父类啊
先看看那个方块的父类是什么,然后把他的父类文件复制一份,名字随便改下,在那个方块的父类里的名字也改成同样的,在他的父类文件里看他的父类又是什么,再复制一份,重复上面的操作,一般来说最后会到cube的json,然后复制一份把文件名改掉,把里面的"cullface": "up"什么的去掉就好,这种方法主要是针对这些方块都用了同种父类的模型,如果都不同的话,还是建议一个个修改
 :如果一个个修改就用软件把这个模型再做一遍?
:如果一个个修改就用软件把这个模型再做一遍?
 :只能这样咯
:只能这样咯
 :其实道理和上面的一样了,但是要注意的是,最好设置破坏的帖子的材质,不然破坏后的粒子效果就是紫黑色的了,以及方块掉落要关掉,不然这伪屏障玩家就得到了啊(PS.还可以把语言文件中的那个方块名字改成屏障,然后在冒险模式下给个可以敲掉这个方块的工具,上面显示,可以破坏:屏障,简直6666)关闭方块掉落↓
:其实道理和上面的一样了,但是要注意的是,最好设置破坏的帖子的材质,不然破坏后的粒子效果就是紫黑色的了,以及方块掉落要关掉,不然这伪屏障玩家就得到了啊(PS.还可以把语言文件中的那个方块名字改成屏障,然后在冒险模式下给个可以敲掉这个方块的工具,上面显示,可以破坏:屏障,简直6666)关闭方块掉落↓

 :GUI什么的,大部分地图作者为了地图的气氛,都会修改GUI的材质,但是GUI怎么修改都是那么大,都是在那个位置
:GUI什么的,大部分地图作者为了地图的气氛,都会修改GUI的材质,但是GUI怎么修改都是那么大,都是在那个位置
 :所以你们别想通过修改代码来增大GUI或者添加GUI
:所以你们别想通过修改代码来增大GUI或者添加GUI
 :但是我见到有地图在物品栏旁边添加了显示分数的GUI
:但是我见到有地图在物品栏旁边添加了显示分数的GUI
 :你玩的是假的地图
:你玩的是假的地图
 :但我看见的是真的GUI
:但我看见的是真的GUI
 :我现在来教你怎么做真的GUI吧
:我现在来教你怎么做真的GUI吧
 :GUI又不是模型,怎么做?
:GUI又不是模型,怎么做?
 :所以我说是伪GUI啊,用物品的模型来实现的
:所以我说是伪GUI啊,用物品的模型来实现的
 :物品的模型= =??
:物品的模型= =??
 :我们可以把物品的模型做大点,然后再设置在玩家物品栏中的时候放大4倍,完美
:我们可以把物品的模型做大点,然后再设置在玩家物品栏中的时候放大4倍,完美
 :于是物品的模型就超出了他所在的框?
:于是物品的模型就超出了他所在的框?
 :对,就这么简单
:对,就这么简单
现在让我们在物品栏右边添加一个显示资源点被占领的GUI
假设这个地图有红队和蓝队,他们要占领对方的资源点,假设地图共4个资源点ABCD
 :等下?4个资源点不是要4个物品,不得把玩家的物品栏占了4格
:等下?4个资源点不是要4个物品,不得把玩家的物品栏占了4格
 :不用,我们可以放在一个物品的材质里啊,就是需要穷举所有情况
:不用,我们可以放在一个物品的材质里啊,就是需要穷举所有情况
 :假设红队占领资源点为0,蓝队占领资源点为1,则有以下几种情况
:假设红队占领资源点为0,蓝队占领资源点为1,则有以下几种情况
ABCD
0000红红红红
0001红红红蓝
0010红红蓝红
0011红红蓝蓝
……
1110蓝蓝蓝红
1111蓝蓝蓝蓝
 :然后开始做模型
:然后开始做模型
 :老套路,打开模型软件按N新建元素
:老套路,打开模型软件按N新建元素
 :然后,在N的方向上把方块压成平面
:然后,在N的方向上把方块压成平面
 :城里套路深,我要回农村啊
:城里套路深,我要回农村啊
 :然后往东和往上的方向拉大(N是北),弄成正方形,原来的4倍(因为玩家看物品默认是南面对着玩家,所以修改上和东)
:然后往东和往上的方向拉大(N是北),弄成正方形,原来的4倍(因为玩家看物品默认是南面对着玩家,所以修改上和东) 就成了这样
就成了这样 或者这样,都行,只要是在这个方向上就行
或者这样,都行,只要是在这个方向上就行 然后设置可见面,贴上任意材质(到时候我们要把他作为父类)
然后设置可见面,贴上任意材质(到时候我们要把他作为父类)
 :又是正方形?有比之前简单的方法吗?
:又是正方形?有比之前简单的方法吗?
 :没事,你做成长方形就长方形,我们一会修改代码把它变成正方形
:没事,你做成长方形就长方形,我们一会修改代码把它变成正方形
 :做完后代码是这样的,怎么修改
:做完后代码是这样的,怎么修改
 :先稍微讲下"from": [0,0,16],"to":[31,26,16]表示了方块模型的起始末位置坐标,三个数字分别表示xyz坐标,然后我们看看软件中,是这样规定xyz轴的
:先稍微讲下"from": [0,0,16],"to":[31,26,16]表示了方块模型的起始末位置坐标,三个数字分别表示xyz坐标,然后我们看看软件中,是这样规定xyz轴的
所以我们要让xy坐标大小相同才行
 :所以把"to": [31,26,16]中的31和26改成32就行了?(一个方块16,两个方块32,4倍面积两倍边长)
:所以把"to": [31,26,16]中的31和26改成32就行了?(一个方块16,两个方块32,4倍面积两倍边长)
 :对,这样就是正方形了,不信你可以放到软件中看看
:对,这样就是正方形了,不信你可以放到软件中看看
然后我们要修改他在物品栏里的大小,先给这个模型随便放一个材质然后在倒数第二行的方括号后面加上英文逗号
回车新建一行,把这一段复制到这一行(关于具体意思,见:http://www.mcbbs.net/thread-491597-1-1.html)
就变成了这样这样就把模型放大了4倍
然后放入资源包中,打开游戏
我们就可以大概确定下新的GUI要怎么放了
 :不如这样吧
:不如这样吧
 :可以啊,然后打开PS做材质吧
:可以啊,然后打开PS做材质吧

 :但是总共有20张材质,20个模型,我哪来20个没用的物品/方块啊
:但是总共有20张材质,20个模型,我哪来20个没用的物品/方块啊
 :但是1.9有黑科技啊:http://www.mcbbs.net/thread-479128-1-1.html
:但是1.9有黑科技啊:http://www.mcbbs.net/thread-479128-1-1.html
可以只用1个物品实现多个材质,因为损伤值(数据值的不同)
 :效果很棒啊
:效果很棒啊


 :现在,还有最后两个小问题要解决一下
:现在,还有最后两个小问题要解决一下
1、去掉绿色的耐久条:http://www.mcbbs.net/thread-623008-1-1.html(见:关于耐久与损伤条) 2、去掉这一格的GUI材质:把这一格的GUI的材质去掉,让玩家以为这里什么都没有,更逼真的伪GUI
2、去掉这一格的GUI材质:把这一格的GUI的材质去掉,让玩家以为这里什么都没有,更逼真的伪GUI 其实是地图,里面列举了本教程所有的东西
其实是地图,里面列举了本教程所有的东西
下载地址:http://pan.baidu.com/s/1c29qWVm 资源包模型格式:http://www.mcbbs.net/thread-491597-1-1.html
 资源包模型格式:http://www.mcbbs.net/thread-491597-1-1.html
基础模型教程:http://tieba.baidu.com/p/3479151222
中文wiki模型介绍:http://minecraft-zh.gamepedia.com/模型
英文wiki模型介绍:http://minecraft.gamepedia.com/Model模型教程-Epicwork:https://tieba.baidu.com/p/3968851546模型教程:https://tieba.baidu.com/p/3968851546随机贴图教程:https://tieba.baidu.com/p/4422385353TRP的模型教程:http://www.mcbbs.net/thread-333455-1-1.html【TRP】模型材质的文件解析与注意事项:http://www.mcbbs.net/thread-373015-1-1.html【模型教程】BDcraft Cubik Pro教程:http://www.mcbbs.net/thread-676433-1-1.html如果有什么不懂的欢迎大家私聊我或者直接在下面提问哦~▔▔▔▔▔

 :在一些大型地图中,常常会在地图中内置资源包(即地图绑定资源包)来实现自定义材质的效果
:在一些大型地图中,常常会在地图中内置资源包(即地图绑定资源包)来实现自定义材质的效果 :但是1.8以后,不仅可以内置资源包,还可以修改模型
:但是1.8以后,不仅可以内置资源包,还可以修改模型 :但是今天呢,我们不讲复杂的模型怎么做
:但是今天呢,我们不讲复杂的模型怎么做我们来讲一些简单又实用的模型怎么做,这些模型在地图中可能只是一个小细节
但却可以给你的地图加很多分,还可以装B(雾
 :你可以在上面的帖子中熟悉下这个软件的基本操作,然后我们就可以开始带你装逼带你飞了
:你可以在上面的帖子中熟悉下这个软件的基本操作,然后我们就可以开始带你装逼带你飞了





如果有什么不懂的欢迎大家私聊我或者直接在下面提问哦~
▔▔▔▔▔
来自群组: InfinityStudio
2021.12 数据,可能有更多内容


 :对啊对啊,这种效果真是超棒的呢
:对啊对啊,这种效果真是超棒的呢
 :对,我们玩的不是同一个游戏
:对,我们玩的不是同一个游戏
我们来讲一些简单又实用的模型怎么做,这些模型在地图中可能只是一个小细节
但却可以给你的地图加很多分,还可以装B(雾
 :首先你需要模型制作软件:http://tieba.baidu.com/p/3479151222
:首先你需要模型制作软件:http://tieba.baidu.com/p/3479151222


 :当然一个普通的地图不需要太复杂的模型,当然啦,dalao请走开
:当然一个普通的地图不需要太复杂的模型,当然啦,dalao请走开

但是问题是怎么让材质是贴在我想要的面上的呢
 :
:
正确的姿势还是要修改模型,让我们打开模型软件
 :然后看着上面的模型教程就能自己做个模型了,简单吧2333
:然后看着上面的模型教程就能自己做个模型了,简单吧2333
但是呢,对于一些方块的自定义模型,其实有更简单的方法
如果有去看游戏的模型文件,会发现一般不会有那么多的代码
为什么呢?
 :其实还有一种简单的方法,就是利用方块的父类(就是方块中的爸爸)【我当然是他们的爷爷23333】
:其实还有一种简单的方法,就是利用方块的父类(就是方块中的爸爸)【我当然是他们的爷爷23333】
所以儿子要长得像爸爸,所以模型是一样的,只是材质不一样(就是说他们穿的衣服是不一样的)
那么我们如何利用父类来自定义方块呢?
 :来个例子吧,比方说我要把绿宝石块改成另一种书架
:来个例子吧,比方说我要把绿宝石块改成另一种书架(贴图方式依然是上下一样,侧面一样,但材质不一样)

(有些人可能会说为什么我的json代码很乱,试着把它们复制到word里看看)
{
"parent":"block/cube_all",
"textures": {
"all":"blocks/emerald_block"
}
}
"parent":"block/cube_all",
"textures": {
"all":"blocks/emerald_block"
}
}
可以看到他的父类是"block/cube_all",即\assets\minecraft\model\block文件夹里的cube_all,这也是大部分方块所用的,就是6面同一个材质,textures就是要使用的材质
all是父类中设置的材质的变量(材质的名字),然后在子类中说明all所对应的是什么材质,然后在父类的模型上贴上材质作为方块
blocks/emerald_block即是材质的路径(即\assets\minecraft\textures\blocks\emerald_block)
 :然后是不是把绿宝石的父类改成书架就好了?像这样?
:然后是不是把绿宝石的父类改成书架就好了?像这样?"parent":"block/bookshelf"

所以让我们打开书架的模型json文件看看
{
"parent":"block/cube_column",
"textures": {
"end":"blocks/planks_oak",
"side":"blocks/bookshelf"
}
}
"parent":"block/cube_column",
"textures": {
"end":"blocks/planks_oak",
"side":"blocks/bookshelf"
}
}
可以看到书架也有父类(说明他也是个儿子)
其实把代码直接复制到绿宝石块的json里就可以了,然后把材质的路径改成你想要的即可,当然如果你的父类一定要用bookshelf也是可以的(如果你想让他也做爸爸的话)
在填写材质路径时要注意,文件夹与文件之间是用/而不是\
(巧记:MC中的指令是/开头的,所以方块路径直接也是用/)
 :现在我知道了,一个方块可以有好多个爸爸啊2333
:现在我知道了,一个方块可以有好多个爸爸啊2333
 :6666都是爸爸
:6666都是爸爸




没有凹凸的

真正的书架??


 :先打开软件,按N创建新元素,按T把6个面都设置成可见
:先打开软件,按N创建新元素,按T把6个面都设置成可见
就是说我们最小的移动距离为0.5格
(因为我们只要凸出0.5格就够了,如果你要突出1格可以不设置)

 :然后贴上书架的材质
:然后贴上书架的材质





 :不过在操作过程中如果你是先拉长后贴材质就会出现这样的问题,很简单,把粉红色框拉成和材质一样的大小
:不过在操作过程中如果你是先拉长后贴材质就会出现这样的问题,很简单,把粉红色框拉成和材质一样的大小



 :完美啊
:完美啊

 :为什么呢
:为什么呢

 :不过其实这也不是件坏事
:不过其实这也不是件坏事如果多摆一点,在上面走路,就想地震了一样,加上tp @a ~ ~0.1 ~就成了真正的伪地震23333(GIF效果可能不是很好,自行游戏中尝试)


首先,把两个元素移开,可以看到两个方向不同的长方形

以z轴负半轴的方向来看,我们先选中比较高的长方形
因为两边比较窄,所以我们把材质中的两边去掉0.5格

是左右长,上下窄,就把上下各去掉0.5格

同样的,你还可以做突出更多一点的,更明显一点
但记住上面的也要跟着修改,比如我突出1格,上面的材质就要两边缩进1格
 :简直66666
:简直66666
不过有个小技巧可以避免,把地毯的模型中的材质改成木板,盖上去就完美了


把模型拉大一点,但不要超过3×3×3个方块,因为MC模型就支持这么大
 :不要问我为什么不能再大,如果你不想游戏崩溃的话(雾
:不要问我为什么不能再大,如果你不想游戏崩溃的话(雾
可以去看看尼玛乄骑士的帖子,不过他主要讲的是代码
我们现在用软件就可以实现了

 :更大的门?就是你的某建筑地图中的那个门?贼6啊!
:更大的门?就是你的某建筑地图中的那个门?贼6啊!

现在学了模型,应该知道了吧
 :就是把门的模型改大?666
:就是把门的模型改大?666
然后,直接打开门的父类修改,你甚至可以给门加上把手2333
父类共4个,上下各两个,分别是door_bottom_rh.json

door_bottom.json

door_top_rh.json

door_top.json

或者你自己做一个也行,就是要注意方向了
如果方向错了,可能开门变关门,关门变开门(黑科技Get√)
 :把模型拉大,使长宽为原来的1.5倍
:把模型拉大,使长宽为原来的1.5倍但是网格只有16×16,怎么确定我弄的是不是24×25呢?






 :不过还是有点麻烦啊
:不过还是有点麻烦啊
然后设置面的可见,贴上材质,把文件名改成你要替换的门的文件名
 :效果很棒,但是,为什么开门后旁边会黑啊
:效果很棒,但是,为什么开门后旁边会黑啊

 :但这样就很难看啊了啊
:但这样就很难看啊了啊
如果方块比较复杂,你可以考虑用模型(大雾



 :如果萤石什么的是透明的,就可以隐藏萤石来照明了,更美观
:如果萤石什么的是透明的,就可以隐藏萤石来照明了,更美观还可以作伪屏障,还是可以敲掉的伪屏障2333


 :话说为什么不能把材质直接改成透明的
:话说为什么不能把材质直接改成透明的
 :(笑而不语)
:(笑而不语)
随便选择一个面按T设置为可见(如果所有面都不可见则无法保存)
在三视图中把他拉到最小,拉到只有一个点为止
然后保存,放到游戏里就是一个真正透明的方块了,当然他和普通方块一样有碰撞箱

代码:
- {
 
-     "__createdwith": "opl's Model Creator",
 
-     "ambientocclusion": false,
 
-     "elements": [
 
-    {
 
-       "from": [9,9,8],
 
-       "to": [9,9,8],
 
-       "faces": {
 
-         "north": {
 
-        "texture": "missingtexture"
 
-         }
 
-       }
 
-    }
 
-     ]
 
- }
 :求助,这怎么办
:求助,这怎么办

就是这个透明方块一接触其他不透明方块,就会直接透过去
因为正常情况下两个方块相贴面看不见,不渲染
 :解密地图新技能Get
:解密地图新技能Get
首先,我们来了解下cullface
如果模型中写上了这个,那么两个方块贴在一起时,写了cullface 面相贴不渲染
 :没毛病啊,为什么要我们知道这个,相贴的面看不见渲染了干嘛
:没毛病啊,为什么要我们知道这个,相贴的面看不见渲染了干嘛
 :所以只要把萤石的模型json中添加cullface就好了?
:所以只要把萤石的模型json中添加cullface就好了? :我会让你们这么容易解决吗(滑稽)
:我会让你们这么容易解决吗(滑稽)
 :突然无言以对
:突然无言以对 :所以你们要把所有方块都改成接触可见,然后就会卡的要死
:所以你们要把所有方块都改成接触可见,然后就会卡的要死打开cube,然后把所有的"cullface": "up"什么的都删掉,然后就可以了



{
"parent": "block/block",
"elements": [
{ "from": [ 0, 0, 0 ],
"to": [ 16, 16, 16 ],
"faces": {
"down":{ "texture": "#down", "cullface": "down" },
"up": { "texture": "#up", "cullface": "up" },
"north": { "texture": "#north", "cullface": "north" },
"south": { "texture": "#south", "cullface": "south" },
"west":{ "texture": "#west", "cullface": "west" },
"east":{ "texture": "#east", "cullface": "east" }
}
}
]
}
"parent": "block/block",
"elements": [
{ "from": [ 0, 0, 0 ],
"to": [ 16, 16, 16 ],
"faces": {
"down":{ "texture": "#down", "cullface": "down" },
"up": { "texture": "#up", "cullface": "up" },
"north": { "texture": "#north", "cullface": "north" },
"south": { "texture": "#south", "cullface": "south" },
"west":{ "texture": "#west", "cullface": "west" },
"east":{ "texture": "#east", "cullface": "east" }
}
}
]
}
就变成了这样
代码:
- {
 
-     "parent": "block/block",
 
-     "elements": [
 
-    {   "from": [ 0, 0, 0 ],
 
-       "to": [ 16, 16, 16 ],
 
-       "faces": {
 
-         "down":{ "texture": "#down" },
 
-         "up":    { "texture": "#up" },
 
-         "north": { "texture": "#north" },
 
-         "south": { "texture": "#south" },
 
-         "west":{ "texture": "#west" },
 
-         "east":{ "texture": "#east" }
 
-       }
 
-    }
 
-     ]
 
- }

我们总不可能把萤石放在各种方块上吧,如果我们只是把萤石放到几种方块上
那么我们只要让那几种方块的接触面显示就好了,就不会卡成狗了
 :但是一个个改好麻烦啊
:但是一个个改好麻烦啊
先看看那个方块的父类是什么,然后把他的父类文件复制一份,名字随便改下,在那个方块的父类里的名字也改成同样的,在他的父类文件里看他的父类又是什么,再复制一份,重复上面的操作,一般来说最后会到cube的json,然后复制一份把文件名改掉,把里面的"cullface": "up"什么的去掉就好,这种方法主要是针对这些方块都用了同种父类的模型,如果都不同的话,还是建议一个个修改
 :如果一个个修改就用软件把这个模型再做一遍?
:如果一个个修改就用软件把这个模型再做一遍?


代码:
- /gamerule doTileDrops false



 :所以你们别想通过修改代码来增大GUI或者添加GUI
:所以你们别想通过修改代码来增大GUI或者添加GUI :但是我见到有地图在物品栏旁边添加了显示分数的GUI
:但是我见到有地图在物品栏旁边添加了显示分数的GUI :你玩的是假的地图
:你玩的是假的地图 :但我看见的是真的GUI
:但我看见的是真的GUI

 :GUI又不是模型,怎么做?
:GUI又不是模型,怎么做?
 :物品的模型= =??
:物品的模型= =??
 :于是物品的模型就超出了他所在的框?
:于是物品的模型就超出了他所在的框?
现在让我们在物品栏右边添加一个显示资源点被占领的GUI
假设这个地图有红队和蓝队,他们要占领对方的资源点,假设地图共4个资源点ABCD
 :等下?4个资源点不是要4个物品,不得把玩家的物品栏占了4格
:等下?4个资源点不是要4个物品,不得把玩家的物品栏占了4格
 :假设红队占领资源点为0,蓝队占领资源点为1,则有以下几种情况
:假设红队占领资源点为0,蓝队占领资源点为1,则有以下几种情况ABCD
0000红红红红
0001红红红蓝
0010红红蓝红
0011红红蓝蓝
……
1110蓝蓝蓝红
1111蓝蓝蓝蓝

 :老套路,打开模型软件按N新建元素
:老套路,打开模型软件按N新建元素
 :城里套路深,我要回农村啊
:城里套路深,我要回农村啊



 :又是正方形?有比之前简单的方法吗?
:又是正方形?有比之前简单的方法吗?


{
"__createdwith": "opl'sModel Creator",
"ambientocclusion": false,
"elements": [
{
"from": [0,0,16],
"to": [31,26,16],
"faces": {
"south": {
"texture":"missingtexture"
}
}
}
]
}
"__createdwith": "opl'sModel Creator",
"ambientocclusion": false,
"elements": [
{
"from": [0,0,16],
"to": [31,26,16],
"faces": {
"south": {
"texture":"missingtexture"
}
}
}
]
}

所以我们要让xy坐标大小相同才行


代码:
- {
 
-     "__createdwith": "opl's Model Creator",
 
-     "ambientocclusion": false,
 
-     "elements": [
 
-    {
 
-       "from": [0,0,16],
 
-       "to": [32,32,16],
 
-       "faces": {
 
-         "south": {
 
-        "texture": "blocks/bookshelf"
 
-         }
 
-       }
 
-    }
 
-     ]
 
- }
回车新建一行,把这一段复制到这一行(关于具体意思,见:http://www.mcbbs.net/thread-491597-1-1.html)
代码:
-     "display": {
 
-    "thirdperson_lefthand": {
 
-       "rotation": [ 0, 45, 25 ],
 
-       "translation": [ 0, 4, 2 ],
 
-       "scale": [ 0, 0, 0 ]
 
-    },
 
-    "thirdperson_righthand": {
 
-       "rotation": [ 180, 90, -35 ],
 
-       "translation": [ 0, 0, -3.5 ],
 
-       "scale": [ 0, 0, 0 ]
 
-    },
 
-    "firstperson_lefthand": {
 
-       "rotation": [ 0, 45, 25 ],
 
-       "translation": [ 0, 4, 2 ],
 
-       "scale": [ 0, 0, 0 ]
 
-    },
 
-    "firstperson_righthand": {
 
-       "rotation": [ 0, 45, 25 ],
 
-       "translation": [ 0, 4, 2 ],
 
-       "scale": [ 0, 0, 0 ]
 
-    },
 
-    "gui": {
 
-       "rotation": [ 0, 0, 0 ],
 
-       "translation": [ 24, 24, 0 ],
 
-       "scale": [ 4, 4, 4 ]
 
-    }
 
- }
代码:
- {
 
-     "__createdwith": "opl's Model Creator",
 
-     "ambientocclusion": false,
 
-     "elements": [
 
-    {
 
-       "from": [0,0,16],
 
-       "to": [32,32,16],
 
-       "faces": {
 
-         "south": {
 
-        "texture": "blocks/bookshelf"
 
-         }
 
-       }
 
-    }
 
-     ],
 
-     "display": {
 
-    "thirdperson_lefthand": {
 
-       "rotation": [ 0, 45, 25 ],
 
-       "translation": [ 0, 4, 2 ],
 
-       "scale": [ 0, 0, 0 ]
 
-    },
 
-    "thirdperson_righthand": {
 
-       "rotation": [ 180, 90, -35 ],
 
-       "translation": [ 0, 0, -3.5 ],
 
-       "scale": [ 0, 0, 0 ]
 
-    },
 
-    "firstperson_lefthand": {
 
-       "rotation": [ 0, 45, 25 ],
 
-       "translation": [ 0, 4, 2 ],
 
-       "scale": [ 0, 0, 0 ]
 
-    },
 
-    "firstperson_righthand": {
 
-       "rotation": [ 0, 45, 25 ],
 
-       "translation": [ 0, 4, 2 ],
 
-       "scale": [ 0, 0, 0 ]
 
-    },
 
-    "gui": {
 
-       "rotation": [ 0, 0, 0 ],
 
-       "translation": [ 24, 24, 0 ],
 
-       "scale": [ 4, 4, 4 ]
 
-    }
 
-     }
 
- }
然后放入资源包中,打开游戏
我们就可以大概确定下新的GUI要怎么放了







可以只用1个物品实现多个材质,因为损伤值(数据值的不同)





1、去掉绿色的耐久条:http://www.mcbbs.net/thread-623008-1-1.html(见:关于耐久与损伤条)


下载地址:http://pan.baidu.com/s/1c29qWVm

基础模型教程:http://tieba.baidu.com/p/3479151222
中文wiki模型介绍:http://minecraft-zh.gamepedia.com/模型
英文wiki模型介绍:http://minecraft.gamepedia.com/Model模型教程-Epicwork:https://tieba.baidu.com/p/3968851546模型教程:https://tieba.baidu.com/p/3968851546随机贴图教程:https://tieba.baidu.com/p/4422385353TRP的模型教程:http://www.mcbbs.net/thread-333455-1-1.html【TRP】模型材质的文件解析与注意事项:http://www.mcbbs.net/thread-373015-1-1.html【模型教程】BDcraft Cubik Pro教程:http://www.mcbbs.net/thread-676433-1-1.html如果有什么不懂的欢迎大家私聊我或者直接在下面提问哦~▔▔▔▔▔

看不懂   来水一下
终于懂模型是啥意思了
e.这个。。。。。。
我有一个问题..
透明方块不是有屏障了么qaq
透明方块不是有屏障了么qaq
感觉自己的建筑突然又有救了
FHC果然大佬=w=
这种方法在地图制作中的确很有用,不过可能还有一些扩展——比如配合链接纹理实现浮雕、配合随机材质实现小玩意儿,还有通过不同附加值单独材质来实现建筑时放置小方块
这种方法在地图制作中的确很有用,不过可能还有一些扩展——比如配合链接纹理实现浮雕、配合随机材质实现小玩意儿,还有通过不同附加值单独材质来实现建筑时放置小方块
Smokey_Days 发表于 2017-3-5 07:16
FHC果然大佬=w=
这种方法在地图制作中的确很有用,不过可能还有一些扩展——比如配合链接纹理实现浮雕、配 ...
纹理我还不太会搞
然后随机材质已经有教程了,不过BBS好像没有,我看看要不要放到我帖子里
不同附加值只有物品有,方块有附加值一般是方向什么的,最好不要改
或者用盔甲架来实现也是可以的
:效果很棒,但是,为什么开门后旁边会黑啊
:原理很简单,这个方块的侧面被旁边的草方块遮挡了,所以不见光,所以整个面都是黑的
:但这样就很难看啊了啊
:教大家一种非常取巧的方法,我们都知道玻璃是透光的所以我们可以把玻璃之类的透明方块的材质换成其他方块的材质,就不会出现这种情况了
如果方块比较复杂,你可以考虑用模型(大雾
FHC红石 发表于 2017-3-5 10:16
纹理我还不太会搞
然后随机材质已经有教程了,不过BBS好像没有,我看看要不要放到我帖子里
不同附加值只 ...
盔甲架+刷怪笼?2333
这倒是个不错的主意。
只不过检测NBT&刷怪笼要消耗一些资源
FHC的日常对话教程系列
一看这对话教程就是FHC的
一看这对话教程就是FHC的
制作透明方块部分的第一个图挂了嗯
        MCBBS有你更精彩~
C.N.Mruizhi!
咋水a啊??
看得我直挠头

怎么感觉听不懂……难道是我理解力太差了?
厉害厉害~~~~~
加油加油
学到了,谢谢
牛啊作者
看起来好棒的样子
我突然感觉我做歪的建筑又行了
感谢大佬感谢大佬
感谢楼主分享
感谢大佬分享qwq
感谢大佬的分享qwq
额忘记了,又来看一遍qwq
懂了!!
材质很好好看 喜欢支持楼主大大
要继续加油!期待你的新作品啊!
特别好看的资源包QWQ
感谢大佬的分享~
喔噢~likey!作者大大牛逼!我好喜欢o !xx谢谢你们的努力,mc有你更精彩!您值得我们的尊敬,感谢,!!
感谢版主哥哥的分享啊
虽然我没有看懂但还是得收藏一下,以后可以经常看看了解一下
        MCBBS有你更精彩~
MCBBS有你更精彩~