PDA

View Full Version : Quaternion rotation controller?



PixelNations
07-24-2006, 10:10 AM
Am I missing something?

On the fourth line of the feature list is the sentance "A new rotation controller offers quaternion rotations to minimize gimbal lock".

I've looked and looked and looked but I can find no way of accessing the controller other than the LW8 style IKBooster quaternion tool.

There is no mention in the manual that I could find that refers to quaternion in a non-IKboost setting.

Is it perhaps fully integrated into the Coord System->Local mode? My initial tests seem to not be any different than in 8 in local.

Anyone have further information?

dballesg
07-24-2006, 11:15 AM
Hi,

If I remember well, the plugin you are looking for is the QuaternionBooster, under the motion options, or is that one the one you refer as IK Booster quaternion?

Best regards,
David

pixelinfected
07-24-2006, 11:46 AM
mee too i'm so curiosus, i see a plugin under motion panel, but is a no panel plugin, i don't know if is a ikbooster connection or more.
anyone know something?

documentation not talk about it, only about ik booster quaternion

GregMalick
07-24-2006, 12:08 PM
I believe that this motion modifier is simply meant to prevent Gimbal lock and has no interface. It gets you away from having to add that extra bone in the chain to prevent Gimbal Lock. Instead you apply the Motion Modifier to bones and you're done.

Seems to work....

hairy_llama
07-24-2006, 12:26 PM
What you are refering to is the "Quatro" tool.
It is a seperate rotation controller. You must add it to your interface/hotkey.

Quaternion Booster is a motion modifier with no interface.
It prevents gimbal lock. You must rotate your objects using the local/world coordinates, Quaternion Booster will keep the funky interpolation/gimbal lock between keyframes from happening.

PixelNations
07-24-2006, 01:04 PM
What you are refering to is the "Quatro" tool.
It is a seperate rotation controller. You must add it to your interface/hotkey.


Ahh, that is indeed it! It seems a bit premature for prime time in it's current form (requires several click and drags to get it to pose properly) since it dosent seem to work quite as efficiently as I would like.

Observations so far:

Not undo-able. :(
User must switch to another mode to delete, make, or even copy keys. :(
Snaps undesireably if you mouse off of the sphere.
Tool controller does not really let you click drag the individual (RGB) channel controls easily, you have to be exactly on the pixel to constrain to a channel which is VERY difficult.
Tool does not behave as it would in *other* applications.
Requires you to have a the motionmodifier QuaternionBooster also active.
Rotational controller occludes item shape drawing :(
Tool gets 'stuck' easily.
Tool appears to work mainly in the perspective view, orthangonal translations are spotty at best. :(
Completely undocumented as far as I can tell.


Simple test:

Add a null, give it a grid item shape.
Add motion modifier "QuaternionBooster"
Activate the quatro tool (named after Kevin Q?)
Go to frame 10, rotate it in the pitch direction 90 degrees.
Go to frame 20, rotate it in the heading 90 degrees.


Hopefully NewTek will continue development of this tool further. As it stands now, it feels like a WIP that isnt quite ready for prime time, which is probably why it was buried in the unmapped menu list. Kinda bummed at this point.

Cheers to those who though I was referring to IKBooster. Thanks to Llamma for understanding what I meant and pointing me in the right direction!

Celshader
07-24-2006, 01:21 PM
Simple test:

Add a null, give it a grid item shape.
Add motion modifier "QuaternionBooster"
Activate the quatro tool (named after Kevin Q?)
Go to frame 10, rotate it in the pitch direction 90 degrees.
Go to frame 20, rotate it in the heading 90 degrees.



You do not need to add the motion modifier "QuaternionBooster" to experiment with Quatro. That plug-in has nothing to do with Quatro.

To see what QuaternionBooster does...launch LW8.5. Key the camera at frame 0 so that it's rotated like this:

90 degrees on Heading
90 degrees on Pitch
90 degrees on Bank

...totally gimbal-locked. Now go to frame 10, set the Coordinate System to World Coordinates so that you have a "Pitch" controller aligned with the camera. Grab the "Pitch" controller and rotate it so that the camera "looks up." Key the Heading, Pitch and Bank to key this World-Coordinate rotation in the form of Parent Coordinates. The Heading, Pitch and Bank should now either all be 0 or close to 0:

0 degrees on Heading
0 degrees on Pitch
0 degrees on Bank

Change the Coordinate System back to Parent. Now scrub the time slider. The camera will do a crappy swerve instead of smoothly looking up, because of the gimbal-lock problem.

Now, open up the Motion panel for the camera, and add the QuaternionBooster motion modifier. Scrub the time slider. The camera will now smoothly look up, from its "down" pose on frame 0 to its "up" pose on frame 10. The crappy swerve caused by the Gimbal Lock will be gone.

As hairy_llama said, "Quaternion Booster will keep the funky interpolation/gimbal lock between keyframes from happening." QuaternionBooster takes the rotational path of least resistance between keyed rotations.

GregMalick
07-24-2006, 02:51 PM
Just for fun I made an LScript that will apply QuaternionBooster to all "selected" items. It's a little faster than selecting and applying the MotionModifier to each item one at a time.

enjoy....

PixelNations
07-24-2006, 03:11 PM
You do not need to add the motion modifier "QuaternionBooster" to experiment with Quatro. That plug-in has nothing to do with Quatro.

Yes, that is more or less what I was illustrating by the steps mentioned. I kinda left it up to the reader figure out to scrub and toggle the QB plug on and off and see the translated results. As it stands now, I see Quatro as really just another Local Coordinate tool in it's behaviour.

Simply a matter of my opinion, at this point in time, this tool is not an adequate implementation of a Quaternian controller, nor a superior solution to local transformations. Esp comparing it to the way other applications handle quaternion, I am a little bit disappointed by its current implementation-however hopeful at it maturing in a future version.

For now, I'll stick with QB or splitting channels to multiple controllers instead for anti-gimbal controls. Good planning in a rig is still preferable to having work-arounds anyway.

Dave Jerrard
07-24-2006, 06:00 PM
Tool does not behave as it would in *other* applications.I've never seen Quattro in other applications. It does behave like the trackball area in Modeler's perspective viewport.



Requires you to have a the motionmodifier QuaternionBooster also active.No it doesn't. You can use it with or without Quaternion Booster. Quatro is an interactive roation tool that lets you rotate an object with a trackball-like interaction. It also prevents keys from having values outside a -180 to 180 degree range. This prevents wild, uncontrolled spinning of the object between Quattro keyed frames.

Quaternion Booster just control the interpolations between rotational keyframes, rotating the object the shortest distance between two orientations. This also works with or without Quattro (it's been around longer).

They do work together pretty well though,, but why not? All Quattro does is translate quaternion rotations into HPB channels. Quaternion Booster just interpolates between HPB key frames. :)


He Who Wishes This Was A Bit Smoother As Well.

PixelNations
07-25-2006, 09:40 AM
I've never seen Quattro in other applications. It does behave like the trackball area in Modeler's perspective viewport.

I'm refering to items being controlled as Quaternion (versus standard Eular) in Maya. It is pretty transparet to the user when something is controlled and manipulated in a nearly identical fasion as a standard Eular control. The trackball metaphor makes sense, but I still think it's current implementation is not very easy to work with.


No it doesn't. You can use it with or without Quaternion Booster. Quatro is an interactive roation tool that lets you rotate an object with a trackball-like interaction. It also prevents keys from having values outside a -180 to 180 degree range. This prevents wild, uncontrolled spinning of the object between Quattro keyed frames.

It may work for interaction, but without QB, it will still interpolate in Eular space and you'll get nearly the identical behaviour as you would if you just manipulated the local. IE: Wild interpolation resulting in the sweeping motion between keys that Jen described. Am I incorrect about this, or is QB needed to prevent this?


Quaternion Booster just control the interpolations between rotational keyframes, rotating the object the shortest distance between two orientations. This also works with or without Quattro (it's been around longer).

They do work together pretty well though,, but why not? All Quattro does is translate quaternion rotations into HPB channels. Quaternion Booster just interpolates between HPB key frames. :)


You're right, Dave & Jen. I think my point was that it (Quatro) is not really functional from a users standpoint without QB also in the mix. Otherwise, it will translate the channels into standard Parent Coordinate based modes, even though you are interactively manipulating it like a local based system. I'd like to restate my point that I believe the tool in its current form is not ready for primetime. As far as I can tell, they didnt even bother to document it so I am hoping that the tool itself matures in future releases.

Thanks to you both for further clarification on the tools. I pretty much understood the core of what was stated beforehand, but it definitely benefits anyone else reading this thread.

PixelNations
07-25-2006, 09:41 AM
Just for fun I made an LScript that will apply QuaternionBooster to all "selected" items. It's a little faster than selecting and applying the MotionModifier to each item one at a time.

enjoy....

Thanks, Greg. I'm sure this script will come in handy. Your IKFK and PoobySpine ones have both been useful before.

Cheers!