yeah, you were right, as always :p here I just want to share my method (the last sequence will be slerped against first or itself, depending on loop) because directx has functions for this built in:
for (int j = 0; j < inf.NumRawFrames; j++)
for (int k = 0; k < inf.TotalBones; k++)
{
Vector3 fromV = seq.CompressedTrackOffsets[k].Trans;
Vector3 toV = seqn.CompressedTrackOffsets[k].Trans;
Vector4 srotQ = seq.CompressedTrackOffsets[k].Rot;
Vector4 erotQ = seqn.CompressedTrackOffsets[k].Rot;
Quaternion q1 = Vec4ToQ(srotQ);
Quaternion q2 = Vec4ToQ(erotQ);
float t = (float)j / (float)(inf.NumRawFrames - 1);
Vector3 currV = Vector3.Lerp(fromV, toV, t);
Quaternion qc = Quaternion.Slerp(q1, q2, t);
PSAFile.PSAAnimKeys key = new PSAFile.PSAAnimKeys();
key.location = new PSAFile.PSAPoint(currV);
key.rotation = new PSAFile.PSAQuad(QToVec4(qc));
key.time = 1;
d.Keys.Add(key);
}
greetz WV