System Information
Windows 10, Nvidia 950M
Blender Version
Broken: 2.68.0 r58537, it is not a new bug, it was happening in older versions also
Short description of error
object.matrix_local.to_scale() is returning the wrong result when you have a child object that has 1 axis with a negative scale.
Exact steps for others to reproduce the error
Have an object that is connected to 1 or more parents.
Set the x axis scale to -1 (to mirror the part)
Add 2 rotation animation frames to that part.
Export the file (either Collada and Direct X)
Open the file in Open 3D Model Viewer and check the animation to see that it is wrong.
I have included images of the start and end frame in both blender and open 3d viewer to show exactly what is wrong.
I took a look at the python script in the included Direct X exporter and I found the line that the problem happens.
it has just executed
Scene.frame_set(Frame)
then it attempts to get the scale
Scale = BlenderObject.matrix_local.to_scale()
And the returned result of this line is wrong, it has negative scale for all 3 axis, instead of just the x axis.
If I check the value of the matrix local using
print("{:9f},{:9f},{:9f},".format(BlenderObject.matrix_local[0][0],BlenderObject.matrix_local[1][1], BlenderObject.matrix_local[2][2]))
it shows correctly a negative, then 2 positives as it should.



