I have a noesis script and the animation seems inverted? I'm not sure, but mr. Szkaradek123 told me this about my file format:
You can find the discussion here.Armature use absolute position for bones.
It is important . You must multiply each bone frame transform (matrix 4x3) with bone position from armature from obj file.
This is the animation parsing portion of my script:
Code: Select all
for aci in range(0, numAction):
numBones = ani.readShort()
numFrames = ani.readShort()
animFrameMats = []
for fi in range(0, numFrames): # frames
for bi in range(0, numBones): # bones
boneMat = bones[bi].getMatrix()
frameMat = NoeMat43.fromBytes(ani.readBytes(48))
matrix = boneMat * frameMat
animFrameMats.append(matrix)
anim = NoeAnim("action_%d" % aci, bones, numFrames, animFrameMats)
anims.append(anim)

As reference, here is part of the script that relates to the bone:
Code: Select all
boneMat = NoeMat44.fromBytes(obj.readBytes(64)).inverse().toMat43()
NoeMat44.fromBytes(obj.readBytes(64)) # unknown
NoeMat44.fromBytes(obj.readBytes(64)) # unknown
NoeMat44.fromBytes(obj.readBytes(64)) # unknown
NoeMat44.fromBytes(obj.readBytes(64)) # unknown
bones.append(NoeBone(boneIndex, boneName, boneMat, bonePName, bonePIndex))
QUESTION: What am I missing? Is the animation wrong? Or is the animation messed-up because the bones are wrong?




