WorldSpace/LocalSpace problem with skinning implementation


I have a similar problem to this topic :

I followed the skinning formula from COLLADA 1.4.1 document and used it for a simple animated cylinder.

My problem is that all rotations of joints are applied from the origin of the world instead of the origin of each bone. So I think that I have a problem of WorldSpace/LocalSpace coordinates but I cannot figure out where since I followed the formula and my matrices seem correct.

I followed the waZim’s tutorial : so I did (vBSM) and (IBMiJMi) then (vBSM)(IBMi*JMi) (but I don’t think that’s important)

If someone has any idea where I did a mistake it would really help me.

I precise that my .dae is correct since the ASSIMP viewer can load the animation correctly.

Thank you for your time.

I hope someone will be able to help me. Is there at least anyone with the same problem, please?

I just add that I do the concatenation of the parent’s matrix like that :
currentWorldMatrix = currentKeyFrameTransform * ParentWorldMatrix;
(but I think it’s the right way to do it, right?)

I found the solution.
Actualy it was just a scale issue, in fact the application where I try to import animation use millimeter as unit for all geometries when my .DAE was in centimeter. So I just multiply translation by 10 and the problem was solved.

(I hope my messages are understable because I’m french and I’m sure about my english level.)