【我的世界4D皮肤】第1课 将Alex转换成4D格式

在预备课中我们已经了解了4D皮肤的运作原理,在这一课中我们将会着重讲述编辑前的转换工作和json的文件结构

准备工作

  • 从多玩我的世界盒子下载任意一个皮肤,如下图,不要点使用!


    源桃,作者:我自己
  • Alex的材质文件,如下图,请右键保存,并重命名为alex.png
    alex.png
  • alex.json
{
    "geometry.humanoid": {

        "bones": [{
                "name": "body",
                "pivot": [0.0, 24.0, 0.0],
                "cubes": [{
                    "origin": [-4.0, 12.0, -2.0],
                    "size": [8, 12, 4],
                    "uv": [16, 16]
                }]
            },
            {
                "name": "head",
                "pivot": [0.0, 24.0, 0.0],
                "cubes": [{
                    "origin": [-4.0, 24.0, -4.0],
                    "size": [8, 8, 8],
                    "uv": [0, 0]
                }]
            },
            {
                "name": "leftArm",
                "reset": true,
                "mirror": false,
                "pivot": [5.0, 21.5, 0.0],
                "cubes": [{
                    "origin": [4.0, 11.5, -2.0],
                    "size": [3, 12, 4],
                    "uv": [32, 48]
                }]
            },

            {
                "name": "rightArm",
                "reset": true,
                "pivot": [-5.0, 21.5, 0.0],
                "cubes": [{
                    "origin": [-7.0, 11.5, -2.0],
                    "size": [3, 12, 4],
                    "uv": [40, 16]
                }]
            },

            {
                "pivot": [-6, 14.5, 1],
                "neverRender": true,
                "name": "rightItem",
                "parent": "rightArm"
            },
            {
                "name": "rightLeg",
                "pivot": [-1.9, 12.0, 0.0],
                "cubes": [{
                    "origin": [-3.9, 0.0, -2.0],
                    "size": [4, 12, 4],
                    "uv": [0, 16]
                }]
            },
            {
                "name": "leftLeg",
                "reset": true,
                "mirror": false,
                "pivot": [1.9, 12.0, 0.0],
                "cubes": [{
                    "origin": [-0.1, 0.0, -2.0],
                    "size": [4, 12, 4],
                    "uv": [16, 48]
                }]
            }
        ]
    }
}
操作方法
  1. 在mt管理器左栏依次打开/mctools/skin,然后将其设为首页(右上角的菜单里有)以方便以后操作,在右栏里找到alex.png(就是刚刚下载的皮肤,需要重命名),长按选择移动,然后alex.png就到了左栏里。
  2. 激活左栏,点击最下方的加号,输入alex.json,然后选择左下角的“文件”
  3. 打开刚建立的alex.json,将上方提供的代码全部粘贴到里面,点击右上角的菜单,选“保存”,然后返回,此时文件夹会出现alex.json.bak,删掉即可。
    这些工作完成后,应该会有alex.jsonalex.png,和刚刚下载的皮肤,一般是一串数字.png
  4. 记住你刚刚下载的皮肤的那串数字,然后将你刚刚下载的皮肤删掉。
  5. alex.pngalex.json选中,长按压缩,压缩包名字为刚刚下载的皮肤的那串数字,格式为zip。

在mt管理器中向右拖动文件可进入多选模式,此时一个文件会被选中,点击其他文件可以选定,类似于ctrl的作用,如果再拖其他文件可以将中间的所有文件全部选中,类似于Shift键的作用。

  1. 打开“多玩我的世界盒子”,然后选择“我”>本地资源>皮肤,找到刚刚下载的皮肤,点击皮肤(不是启用皮肤)选择3D预览,如果刚刚的步骤没有错误,你就可以看到Alex被载入了。


    看着很正常的Alex其实已经被转换成了4D格式
  • 如果你只看到了黑色背景,没有任何模型,请检查Json复制是否完整或者Json是否在压缩包内
  • 如果连黑色背景都没有出现,请检查压缩包名字是否正确。

Json的文件结构

  • geometry.humanoid:是一个对象,在导入时需要考虑其名字以免发生冲突,这个以后再讲;
    • bones:储存了全部的模型信息,其子类为方块组,方块组允许有多个,比如头,身体,左手,右手,左腿,右腿是其中的6个方块组
      • name :方块组的名字,特定的名字可以决定方块组的运动方式,比如head可以使方块组跟随鼠标旋转,而leftLeg/rightLeg在走动是会使方块组前后摆动。
      • pivot:方块组的转动轴,转动方式与name有关系。
      • mirror:可选参数,使用布尔值来使模型左右翻转。
      • cubes:方块组中含有的方块,一个方块组可以有多个方块,默认的皮肤一个方块组只有一个方块。
        • origin:方块在空间的相对位置,其表示的是左下面向我们的那个点的坐标(如图)
          origin表示的坐标
        • size:方块的绝对大小,注意这里的大小必须要与材质上的大小一致(比如材质中的头是8x8x8,如果你想要更大的头(如10x10x10)你需要把材质中的头也改成10x10x10,否则贴图会错位
        • uv:方块对应材质文件的位置,单位为像素
        • inflate:可选参数,方块的相对大小,与材质的尺寸无关,输入负值为缩小,正值为扩大,其计算方式是“绝对尺寸的边长+2 x [inflate值]”,因为是以边长而不是以比例计算,所以在缩放是要注意尺寸以免变形,此属于高级修改,将会在以后讲述

建议各位萌新们结合上节课介绍的两种json编辑器来熟悉json的结构,如果感兴趣,可以尝试修改上面的数值,来查看皮肤的变化。

json在线格式化与查错

点我回到上一节|点我进入下一节

你可能感兴趣的:(【我的世界4D皮肤】第1课 将Alex转换成4D格式)