<Shape type="d9e621f7-957f-4b77-b1ae-20dcd0da7751" name="Head">
部件形状定义
type(类型):后面的东西可以不用改,我猜测此类型就是长方体,也是构成模型的基础图形(我目前还没有发现有别的type)
name(名称):该部件的名称,影响在展开图中的部件名称显示,也就是图中红框内显示的Head部分。
<Animation>
<AnimationAngles>0,0,0</AnimationAngles>
<AnimationDuration>0,0,0</AnimationDuration>
<AnimationType>0,0,0</AnimationType>
</Animation>
动画(?)
直译为动画,目前没发现有什么用处。保持全0就行了。
<IsDecorative>False</IsDecorative>
<IsFixed>False</IsFixed>
是否装饰、是否固定
也是没发现有什么用处,保持全False。
<IsMirrored>False</IsMirrored>
是否镜像
是填True,否填False。
影响该部件的材质预览时是否镜像,众所周知1.7玩家皮肤的左腿就是通过右腿镜像得到的。
<IsSolid>True</IsSolid>
是否固体
是填True,否填False。
这项的意思就是该部件是不是实心的,一般情况下,皮肤的第一层为实心,第二层不是。
也是影响皮肤预览的显示,实心的时候,如果皮肤有空白的地方,则该处显示为全黑;而非实心的状态下,皮肤的空白则显示为透明。
例子如下(这是个没有任何东西的皮肤,但是显示为全黑)
<Offset>-4,-8,-4</Offset>
偏移
分别为X,Y,Z三个方向的偏移。
这项的功能是定义部件原点,而偏移指的是部件原点(自己设定的)到方块【左前上顶点】的偏移量,也就是【左前上顶点】在以部件原点为原点的坐标系中的坐标,一般为负数。(用矢量说的话就是从部件原点到方块左前上顶点的矢量)
这个值是自己设定的,主要是影响下一行的<Position>,只要方便计算就行了。
例如上面的【-4,-8,-4】,指的是以头部的底面中心为部件原点,将位于部件原点的一点向-X移动4,向-Y移动8,最后向-Z移动4,就会到达方块的左前上顶点。
<Position>0,0,0</Position>
位置
分别为X,Y,Z三个方的坐标。
这项的功能是定义该部件在系统坐标系中的位置,这三个坐标指的是该部件的部件原点在系统坐标系中的坐标。
例子里的意思就是:将头部的部件原点(自己选定的底面中心),和系统原点重合。
<Rotation>0,0,0</Rotation>
旋转
分别为绕X旋转的角度,绕Y旋转的角度,绕Z旋转的角度,单位为度(°)
这项的功能是使部件绕着部件原点旋转,注意这里的旋转是有先后顺序的,先X,再Y,最后Z。
旋转的方向在坐标系定义的时候已经说过了。
<Size>8,8,8</Size>
大小
分别为X,Y,Z三个方向的长度(都是正数)
这里的大小指的是你所定义的长方体部件的大小,分别为XYZ三个方向的长度。
注意这里是可以接受输入【0】的,但是2D图上还是会展开,只不过只有前后两个面。
例如这里的【8,8,8】指的是一个8x8x8的立方体,也就是头,而4x12x4的手臂就写作【4,12,4】
注意,如果定义size时,将Z设为0,即该部件为一个平面结构时,此时如果只画正面,反面空白,又不需要透明化的话,请注意将<IsSolid>设为True,否则预览的时候会鬼畜,如下图所示:
<TextureOffset>0,0</TextureOffset>
材质偏移
分别为X,Y方向的偏移量
这一项是定义该部件的展开图在材质中的位置,每一个部件的展开图都是6个或者2个面,以该展开图的左上角为原点,计算该点在系统坐标系中的位置,填进去就行了。
例子如下,红框内为头部第二层的展开图,以左上角绿点为原点,该点在以黑点为原点的系统坐标系中的位置是(32,0),所以该项写为:<TextureOffset>32,0</TextureOffset>
<Scale>0</Scale>
缩放(比例)
就是这个部件的放大情况(应该不是简单的放大系数),目前已知的就是玩家皮肤的第二层该项均为0.5,可以参考使用。
<Part>Head</Part>
部分(非常重要)
这项规定了你所定义的部件属于哪个部分,注意的是这项不能随便填写,按照我上面的改法(程序主体基本不变),该项只能填写以下字段:
Head(头),Helmet(头第二层),Chest(身体),ChestArmor(身第二层),RightArm(右臂),RightArmArmor(右臂第二层),LeftArm(左臂),LeftArmArmor(左臂第二层),RightLeg(右腿),RightLegArmor(右腿第二层),LeftLeg(左腿),LeftLegArmor(左腿第二层)
如果这一项填写了非以上字段的其他词,会导致模型无法识别。
这一项影响的是皮肤预览的显示控制部分,也就是图中红框的部分。
一个【部分】可以包括多个部件,一个【部分】所包含的部件数应该没有限制。
比如我将1.7的皮肤模型内的【部分】全部改为【Head】,得到的结果是可以用一个按钮控制全图的显示。
顺便说一下各个Parts可以在MCSkin3D的左上角单独控制是否显示(我才发现的)。如下图:
(以我做的女仆模型为示例)
</Shape>
结束符
没什么好说的
到此为止关于程序的说明就结束了,掌握了一个部件的定义,接下来就是不断重复这一段过程,直至将整个的模型都完成。
如果空间感好的人可以直接撸代码,空间感不好的人可能要画个示意图再计算了。