Skeleton scale accuracy

I will look now. Not even close:
skeleton.bones[1].getScale()
e {x: 1.0000036630174596, y: 0.9999823916184019, z: 0.9999959939462628}
and here is its matrix:
{“name”:“Bone.001”,“index”:1,“matrix”:[-0.6555,0,-0.7552,0,-0.5739,0.65,0.4981,0,0.4909,0.7599,-0.4261,0,0,1,0,1],“rest”:[-0.6555,0,-0.7552,0,-0.5739,0.65,0.4981,0,0.4909,0.7599,-0.4261,0,0,1,0,1],“parentBoneIndex”:0,“length”:2.3434},

so Im kinda confused how its getting the scaling values it is.

It uses the matrix decomposition code:

This is probably where the precision issue kicks in

so is there anyway on the decompose function when importing skeletons to pass a custom scaling value to the decompose function to make sure that my values are 1,1,1?

Also it seems the first parent bone in any system is triggering:
if (this.determinant() <= 0) {
scale.y *= -1;
}
Is there a way to ignore that? Having a negative scale is a super headache with what I am trying to do.

“Have you tried to setScale on import of bones?”
btw Dave I ended up using this as the work around.

2 Likes