Position Animation and Scale work now
Without a doubt the rotation is the hardest one.
I'm using this for rotation:
Code: Select all
for x = 1 to num_Rotation_Animation do
Tick_Time = ((readlong f #unsigned) / 80) --Frame
vx = readfloat f
vy = readfloat f
vz = readfloat f
vw = readfloat f
Arot = quat vx vy vz vw
if ANode != undefined then
with animate on
at time Tick_Time
in coordsys parent ANode.rotation = IRot --this is the initial rotation of the model/bone before the whole thing starts
in coordsys parent ANode.rotation += Arot --Stated before this is the rotation of the current frame
I have been playing with + and - to get different animations, also with local, world and parent but this is the most accurate thing i got.
You see the thing from the right goes to the left instead of right, it's like the whole thing is inverted, but i tried putting -vw, -vy, -vx and -vz to see if it could get fixed
This one is creepy, yet curious.
The bones are actually reversed for some reason, if i comment the animations it goes like this:
What is actually impressive is that the bones and skinning are working properly, lol.
And the one that is totally screwed up.(sentipumbe.scn)
This actually makes me chuckle every time i see it.
We can conclude that parent rotation is the one.
You may think that the problem is in in coordsys parent ANode.rotation = IRot but it's not since if i left only that line alone everything is fine and the bones don't get screwed at all, the problem is in the other one.
I am probably doing this wrong and there is actually a better way to do this, but i can't really tell, if someone cand recommend me a script with a rotation animation already made that would work better than this it would be appreciated it.
Until then, i'll keep working on this.
EDIT: I tried to divide the values (v rotation values) by 100000 and 500000 (because why not) and this happened:
Does it make sense? No (At least not to me)
Works? Not really, but for some reason the animations is clearer.
So now this means that i have to divide the value by a number and that the angle is reversed in some models, I honestly don't know how is this going on but well, i had to try.