[Closed] SetBipedRot Sets #QNAN
Is there a major problem with the ‘SetBipedRot’ using 3dsMax9?
Setting the rotation for biped index finger based on the rotation of another finger like –
SetBipedRot DestNode (GetBipedRotation SourceNode) occasionally ends up with a #QNAN in the quat values.
This is really disastrous since I need to convert hundreds of animations with 4 fingers to a biped with 5 fingers thus starting out with copying the orientation for all the animation files. Now the indexfinger vanishes in some files and all transform values are set to NotANumber for that key when testreading it.
The problem must be ‘SetBipedRot’ since the quat value is valid by the time it’s set.
I would be most grateful if someone could help me out here.
regards,
Jimmy Johansson
Mindark PE
has max 9 changed its biped access commands? im still on 8 and I use –
biped.setTransform <bipedobject> #rotation <quat value> true (boolean to set key)
Well the SetBipedRot is the SDK version of the same thing. I tried both script and c++ with the indexfinger though and neither of them worked every time but instead the transform got passed on as #QNAN occasionally when checking.
regards,
Jimmy Johansson
Mindark PE
I had this problem yesterday as well when I was setting both position and rotation on the arms using the setTransform command. It only happened on the arms. All of the rest of the biped parts handled it just fine. The problem went away when I stopped trying to set position and only set rotation.
I didn’t get the problem in Max 8 – so it’s a new “feature” in Max 9. Sorry to throw my ignorance into the pool here, but I have no idea what was causing it, and I’d also like to know if anyone else knows what’s going on.
Although there seems to be some sort of problem with the IBipMaster9::SetBipedRot I fixed the copying by using the new max9 feature ‘[size=2]SetBipedLocalRotation’ so it actually works now. I[/size][size=2] can imagine that there might be problems with the biped transforms since its built in a way so that you can’t set the joints to just any position. That might have been the situation if SetBipedRot uses absolute coordinates but still #QNAN is not the result you would expect from this.[/size]
regards,
Jimmy Johansson
Mindark PE
[size=2]
[/size]
new max9 feature ‘[size=2]SetBipedLocalRotation’
Uh – just what the heck is this? And where did you find it?
I’ve searched both the Max as well as Maxscript manuals and found nothing about this. You write it as though it might be a command but it isn’t in Max 9. Can you point me in some direction here?
[/size]
Uh-oh – I’m beginning to think by reading this thread you aren’t referring to Maxscript at all but to the SDK. I’m guessing that won’t help me.
It is SDK. I don’t think that it’s exposed to maxscript, or at least like you I couldn’t find it. Of course I could build a dll with that maxscript function doing the exact same thing but I don’t know where to put it on the forum or perhaps it would be easier to e-mail it. (if you really need it, that is)
Best regards,
Jimmy Johansson
Mindark PE AB
Jimmy,
Thanks for the offer – at some point I might get desperate enough to plead for this, but right now I’m facing so many other issues I don’t know if I’ll ever get around to it (I’m basically trying to copy rotations from another rig onto a biped – a frustrating exercise if there ever was one).
Mike,
I wrote a script that transfers motion between the biped and my custom rig and it works pretty well. The way I handle it is to create a helper point for every joint that’s rotation aligned to the biped object and parented to the custom rig object. I create all of these helper points with the biped in figure mode and the custom rig in its base pose.
Then when I want to transfer motion, I just loop through all of the frames in the motion transfer range and align each biped part to its corresponding helper point. I also did the same thing going the other way so I can transfer motion back and forth.
I’d be happy to share more details with you if you’d like.
-Ben