Wiki:http://minecraft.gamepedia.com/Models
模型包模型文件:
- //模型包模型文件
- {
- "__comment": "Information about this texture pack.",
- "parent": "blocks/xxx",
- //继承父类模型,有此项就不应设置elements
- "ambientocclusion": true,
- //环境光遮蔽
- "inventoryRender3D": false,
- //背包渲染3D?Wiki上并没有这条
- "textures": {
- //贴图材质
- "textureName": "blocks/xxx",
- //自定义材质
- "particle": "blocks/xxx"
- //方块破碎粒子效果材质
- },
- "elements": [{
- //模型的元素,立方体
- "__comment": "Information about this model part.",
- "from": [ x1, y1, z1 ],
- //立面点左上 Top/Up(横向移动) - Front/South - Left/West(横向移动)
- "to": [ x2, y2, z2 ],
- //立面点右下 水平于N指向轴 - 高度 - 垂直于N指向轴
- //注意整个模型的坐标范围需要控制在-16~32之间,可小数
- "shade": false,
- //定义渲染的阴影(是否锋利?)
- "rotation": {
- //元素的旋转
- "origin": [ x, y, z ],
- //旋转点
- "rescale": true,
- //重新调整大小与方块的大小一致
- "axis": "x/y/z",
- //旋转某轴
- "angle": 45
- //旋转度数,只允许使用-45/-22.5/0/22.5/45这些度数
- },
- "faces": {
- //贴图
- //六面体,up/down/north/south/west/east
- //xy从贴图左上开始的坐标,hw为高宽的坐标
- //rotation 旋转贴图,值为0/90/180/270
- //cullface 平面剔除:指定当此方向有方块接触该方块时,该方向的贴图去除
- //tintindex 色彩索引:使用硬编码色彩索引来使材质上色
- //texture 贴图名称,在textures里定义
- //uvlock 材质是否固定后不随方块的旋转而旋转。但是wiki上这条只在模型数据那个文件里才出现。
- "down": { "uv": [ x, y, h, w ], "rotation": 0 , "cullface": "west", "tintindex": 0, "texture": "#textureName", "uvlock": true },
- "up": { "uv": [ x, y, h, w ], "texture": "#textureName" },
- "north": { "uv": [ x, y, h, w ], "texture": "#textureName" },
- "south": { "uv": [ x, y, h, w ], "texture": "#textureName" },
- "west": { "uv": [ x, y, h, w ], "texture": "#textureName" },
- "east": { "uv": [ x, y, h, w ], "texture": "#textureName" }
- }
- },]
- }
复制代码
模型包模型数据:
- //模型包模型数据
- {
- "variants": {
- //确定改方块所有变种的主观属性
- "snowy=false": [
- //当该方块的特定值=某值时,使用此属性,[]内的值可以多项
- { "model": "grass_normal", "x": 0, "y": 90, "uvlock": false, "weight": 1 }
- //model:对应的方块模型文件,文件位置来于 assets/minecraft/models/blocks
- //x:旋转模型,值为0/90/180/270
- //y:旋转模型,值为0/90/180/270
- //uvlock:材质是否固定后不随方块的旋转而旋转
- //weight:这条属性被使用的权重,1为100%则一定使用,如要做成像mcpatcher的随机贴图功能一类的,就需要改变这个权重
- //另外这个权重只在多属性中使用,因为多属性中一定要满100%才行
- ],
- "snowy=true": { "model": "grass_snowed", "x": 0, "y": 0, "uvlock": false }
- //也可以为单属性的
- }
- }
- //Wiki上的例子:
- "snowy=false": [
- { "model": "grass_normal" },
- { "model": "grass_normal", "y": 90 },
- { "model": "grass_normal", "y": 180 },
- { "model": "grass_normal", "y": 270 }
- ],
- //中,由于多属性的部分使用了相同的模型,故自动分配了四条属性各25%的几率出现,所以现在放草方块可以看出不一样方向的花纹了~
复制代码
模型包物品模型:
- //模型包物品模型
- {
- "parent": "builtin/generated",
- //从assets/minecraft/models读取文件
- //仍旧是父类,和方块模型不同的是,填写"builtin/generated",可以设置各layer#贴图,
- //填写"builtin/entity",目前只能用于箱子,末影箱,头颅和旗帜
- //"builtin/compass"和"builtin/clock"分别是给指南针和时钟使用的
- "textures": {
- //贴图材质
- "layer0": "items/spawn_egg",
- //layer#:0是最底下那层,可以定义多层贴图在一层上,例如刷怪蛋和皮革装备(药水和附魔书等不是!)
- "layer1": "items/spawn_egg_overlay"
- //另:layer#必须要和parent: "builtin/generated"一同使用
- "textureName": "blocks/xxx",
- //自定义材质
- "particle": "blocks/xxx"
- //例如吃食物的粒子效果,屏障的粒子效果等,若不填默认使用layer0的材质
- },
- "elements": [{
- //模型的元素,立方体,这部分和模型文件里的元素部分略有减少,如和原版一样仅扁平单层模型则不需要写此项
- "__comment": "Information about this model part.",
- "from": [ x1, y1, z1 ],
- //立面点左上 Top/Up(横向移动) - Front/South - Left/West(横向移动)
- "to": [ x2, y2, z2 ],
- //立面点右下 水平于N指向轴 - 高度 - 垂直于N指向轴
- //注意整个模型的坐标范围需要控制在-16~32之间,可小数
- "rotation": {
- //元素的旋转
- "origin": [ x, y, z ],
- //旋转点
- "axis": "x/y/z",
- //旋转某轴
- "angle": 45
- //旋转度数,只允许使用-45/-22.5/0/22.5/45这些度数
- },
- "faces": {
- //贴图
- //六面体,up/down/north/south/west/east
- //xy从贴图左上开始的坐标,hw为高宽的坐标
- //rotation 旋转贴图,值为0/90/180/270
- //cull 指不可见元素是否需要渲染
- //tintindex 色彩索引:使用硬编码色彩索引来使材质上色
- //texture 贴图名称,在textures里定义
- "down": { "uv": [ x, y, h, w ], "rotation": 0 , "cull": "false", "tintindex": 0, "texture": "#textureName" },
- "up": { "uv": [ x, y, h, w ], "texture": "#textureName" },
- "north": { "uv": [ x, y, h, w ], "texture": "#textureName" },
- "south": { "uv": [ x, y, h, w ], "texture": "#textureName" },
- "west": { "uv": [ x, y, h, w ], "texture": "#textureName" },
- "east": { "uv": [ x, y, h, w ], "texture": "#textureName" }
- }
- },],
- "display": {
- //显示相关
- "thirdperson": {
- //第三人称
- "rotation": [ x, y, z ],
- //旋转角度
- "translation": [ x, y, z ],
- //移动位置
- "scale": [ x, y, z ]
- //缩放大小
- },
- "firstperson": { ... },
- //第一人称
- "gui": { ... },
- //在界面(Graphical User Interface)中显示
- "head": { ... },
- //戴在头上的样子(按E打开背包查看,如果想调整F5视角请修改第三人称)
- "ground": { ... },
- //地面上物品
- "fixed": { ... },
- //指物品展示框中的样子
- },
- //http://www.mcbbs.net/thread-432724-1-1.html 新闻贴
- "overrides": [
- //重写的部分
- {
- "predicate": {
- "damaged": 1,
- //表示damage值发生变化
- "damage": 0.3
- //损坏物品的damage值
- },
- "model": "item/carrot_on_a_stick_02"
- //对应damage值所使用的模型(子模型可继承父模型来实现)
- },
- {
- "predicate": {
- "pulling": 1,
- //拉弓,同damaged标签
- "pull": 0.65
- //拉弓程度,同damage标签
- },
- "model": "item/bow_pulling_0"
- },
- {
- "predicate": {
- "cast": 1
- //鱼鳔投掷出去,同damaged标签
- "damaged": 1,
- "damage": 0.3
- //根据damage值来显示不同的鱼竿模型,同理?
- },
- "model": "item/fishing_rod_cast"
- },
- {
- "predicate": {
- "angle": 0.484375
- //指南针的方向,同damage标签
- },
- "model": "item/compass_00"
- },
- {
- "predicate": {
- "time": 0.0078125
- //钟的时间,同damage标签
- },
- "model": "item/clock_01"
- },
- //1.9之后:
- {
- "predicate": {
- "damaged": 1,
- //表示damage值发生变化
- "damage": 0.65,
- //损坏物品的damage值(0-1,浮点数)
- "stack_size": 64
- //物品堆叠数量?
- },
- "model": "item/任何物品"
- //或者"block/任何物品"也行哦
- },
- ]
- }
复制代码 |