
Anyway: I think I've discovered a bug in the DirectX8Exporter found in Blender V2.48a
I have an armature and a bone and then another bone extruded from that first bone (we'll call them boneOne and boneTwo). I then have two cubes; one cube is parented to boneOne and has all of its vertices assigned to boneOne, the other cube is likewise parented and assigned to boneTwo. Now, when I export my creation, the bones are only applied to boneOne, but not boneTwo :\
In my model I have quite a few more bones and meshes than in the above example, but the idea is the same. Here is the resulting .x file I get when I've exported my object (I've replaced stuff that's not really relevant with '...'):
Code: Select all
xof 0303txt 0032
template VertexDuplicationIndices {
<b8d65549-d7c9-4995-89cf-53a9a8b031e3>
DWORD nIndices;
DWORD nOriginalVertices;
array DWORD indices[nIndices];
}
template XSkinMeshHeader {
<3cf169ce-ff7c-44ab-93c0-f78f62d172e2>
WORD nMaxSkinWeightsPerVertex;
WORD nMaxSkinWeightsPerFace;
WORD nBones;
}
template SkinWeights {
<6f0d123b-bad2-4167-a0d0-80224f25fabb>
STRING transformNodeName;
DWORD nWeights;
array DWORD vertexIndices[nWeights];
array float weights[nWeights];
Matrix4x4 matrixOffset;
}
Frame RootFrame {
FrameTransformMatrix {...}
Frame spineBone {
FrameTransformMatrix {...}
Frame rightCollarBone {
FrameTransformMatrix {...}
Frame rightShoulderBone {
FrameTransformMatrix {...}
Frame rightArmBone {
FrameTransformMatrix {...}
Frame rightGunBone {
FrameTransformMatrix {...}
}
}
}
}
Frame leftCollarBone {
FrameTransformMatrix {...}
Frame leftShoulderBone {
FrameTransformMatrix {...}
Frame leftArmBone {
FrameTransformMatrix {...}
Frame leftGunBone {
FrameTransformMatrix {...}
}
}
}
}
Frame rightHipBone {
FrameTransformMatrix {...}
Frame rightLegBone {
FrameTransformMatrix {...}
}
}
Frame leftHipBone {
FrameTransformMatrix {...}
Frame leftLegBone {
FrameTransformMatrix {...}
}
}
Frame cameraFPSBone {
FrameTransformMatrix {...}
}
} // End of the Bone spineBone
Frame cameraFPS {
FrameTransformMatrix {...}
Mesh {
...
MeshMaterialList {...} //End of MeshMaterialList
MeshNormals {...} //End of MeshNormals
XSkinMeshHeader {
1;
3;
14;
}
SkinWeights {
"cameraFPSBone";
36;
1,
18,
30,
33,
12,
20,
23,
31,
6,
9,
14,
17,
32,
34,
2,
4,
11,
35,
0,
3,
19,
21,
24,
13,
15,
22,
26,
29,
7,
16,
28,
5,
8,
10,
25,
27;
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000,
1.000000;
1.000000,0.000000,-0.000000,0.000000,
-0.000000,-0.999800,-0.022300,0.000000,
-0.000000,0.022300,-0.999800,0.000000,
0.000000,0.034300,0.769700,1.000000;;
}
} // End of XSkinMeshHeader
} // End of the Object cameraFPS
Frame rightGun {
FrameTransformMatrix {...}
Mesh {
...
MeshMaterialList {...} //End of MeshMaterialList
MeshNormals {...} //End of MeshNormals
} // End of the Mesh rightGun
Frame leftGun {
FrameTransformMatrix ...}
Mesh {...} // End of the Mesh leftGun
Frame leftArm {
FrameTransformMatrix {...}
Mesh {...} // End of the Mesh leftArm
Frame rightArm {
FrameTransformMatrix {...}
Mesh {...} // End of the Mesh rightArm
Frame leftShoulder {
FrameTransformMatrix {...}
Mesh {...} // End of the Mesh leftShoulder
Frame rightShoulder {
FrameTransformMatrix {...}
Mesh {...} // End of the Mesh rightShoulder
Frame leftLeg {
FrameTransformMatrix {...}
Mesh {...} // End of the Mesh leftLeg
Frame rightLeg {
FrameTransformMatrix {...}
Mesh {...} // End of the Mesh rightLeg
Frame spine {
FrameTransformMatrix {...}
Mesh {...} // End of the Mesh spine
} // End of the Root Frame
If you'd like to download the blend file I'm using, you can find it here. I'll try and look into this and see if I can fix it, but I've already been trying for a couple of days without much success, so if someone else could come up with a patch, that would be great too ^_^
Thanks

-wyrmmage