View Full Version : Control Objects
Robken 06-15-2005, 04:49 PM Hi, I'm trying to set up control objects like the Ogre rig on zoogono.
I'm using the same expression
"moveto(driven, driver, 1) + align (driven, driver, 1)"
and it works, the only problem is.
my driver is at 0, 0, 0 rotation axis
but my bone is on...let's say 39, 490,79 rotation axis.
now if I align my driven to the driver (bone to the control object) my bone goes to 0,0,0. causing my skeleton to be flipped around :).
is there any way to have the bone align to the control object, without it loosing it's original (local) rotations?
thx in advance :)
|
|
Hi, I'm trying to set up control objects like the Ogre rig on zoogono.
I'm using the same expression
"moveto(driven, driver, 1) + align (driven, driver, 1)"
and it works, the only problem is.
my driver is at 0, 0, 0 rotation axis
but my bone is on...let's say 39, 490,79 rotation axis.
now if I align my driven to the driver (bone to the control object) my bone goes to 0,0,0. causing my skeleton to be flipped around :).
is there any way to have the bone align to the control object, without it loosing it's original (local) rotations?
thx in advance :)
This is one of the reasons Messiah NEEDS a RESET TRANSFORMS, but because itīs not there we need some workarounds ;)
Make a null and copy the bone rotations to that null, parent the bone to the null and zero all itīs rotations, so the null becomes the parent and the "placer" of the bone, now the bone has zero rotations like u wanted it on the first place.
Hope itīs clear, if not read it again hehehehe
Hope it helps
ThomasHelzle
06-15-2005, 06:03 PM
There is a more flexible workaround where you don't have to care about the rotation in setup:
First use something like:
MoveTo(Left_Hand_Rotate_Control,Left_Hand_Rotate,1) + Align(Left_Hand_Rotate_Control,Left_Hand_Rotate,1)
to move and rotate the control to the controlled object. This has to be set to "After IK" (red flag)
After that use:
CopyChan(Left_Hand_Rotate,Left_Hand_Rotate_Control,"000111000000","000000000000")
to copy the rotation of the controller to the controlled object. This has to be set to "Before IK" (blue flag).
While I always think that this is looking a lot like a recursive usage of expressions/IK, it works great ;-)
You can download an older rig of mine that uses this technique here:
http://www.screendream.de/files/BeeMan_Setup_II_DP.zip
The (german) page about this tutorial in the german "Digital Production" is found here:
http://www.screendream.de/digi_pro_2-2003_messiah.htm
Cheers,
Robken
06-15-2005, 06:42 PM
thx guys, I'll try both your methods tomorrow :)
although there must be another way to do it, since the ogre rig deals with it in some other way... :(
I've already e-mailed the creator, but to no avail..
anyway, thanks for the suggestions :)
I always did it like i told ya, of course this is done during the rig process not after, i learned it the hard way just like u are learning it ;)
Robken
06-15-2005, 08:48 PM
do you mean i'll have to redo my bones?
I don't think I need to, right? I can just parent the bones to a null that I place inbetween the bones, I guess?
it works in my head, now I just have to get it to work in messiah, tomorra! :)
do you mean i'll have to redo my bones?
I don't think I need to, right? I can just parent the bones to a null that I place inbetween the bones, I guess?
it works in my head, now I just have to get it to work in messiah, tomorra! :)
No u dont need to re-do the Bones LOL dont worry about that, i was saying that this is a process that from now on u will do it during the rigging and not afterwards, now that u know it of course :)
chikega
06-16-2005, 01:42 AM
Sil3, why are you stirring up trouble in the messiah forum? ;)
Robken
06-16-2005, 09:14 AM
right, i'm on the verge of mental breakdown :p
I tried it both ways, and the null one should work...SHOULD...but isn't.
anyway, I'll give you guys a rundown of the problem I'm having, here goes.
I wrote this expression
http://users.pandora.be/tactics/bypassexpression.jpg
(as you can see, I bypassed it here)
And the character (when bypassed looks like this)
http://users.pandora.be/tactics/bypasskabouter.jpg
when I enable the expression.
the character looks like this
http://users.pandora.be/tactics/enablekabouter.jpg
so as you can see, it gets flipped around in a way I can't even describe....
yet! the rotationvalues of Ctrl_Back1 and KABOUTER_Back1 are IDENTICAL!!
KABOUTER_Back1 = http://users.pandora.be/tactics/Kabouter_back1values.jpg
Ctrl_Back1 = http://users.pandora.be/tactics/Ctrl_Back1values.jpg
can anyone help me PLZ!!
Thx in advance
ThomasHelzle
06-16-2005, 10:03 AM
I think you should post the rig - it is almost impossible to help you without the context of all the other stuff in your setup...
Cheers,
P.S. Please use inline images instead of links - much faster for the viewer to digest.
Robken
06-16-2005, 10:04 AM
sorry, I can't post the rig, the model is from the company I work for
Suricate
06-16-2005, 10:05 AM
Hi Robken,
it seems to me that you mixed the order of the objects in one of the expressions. The first object in both the 'MoveTo' and the 'Align' should be the slave, the second the master, so the expression should be
MoveTo(slave,master,1)+Align(slave,master,1)
ThomasHelzle
06-16-2005, 10:05 AM
Nobody needs the model, just the rig... ;-)
Edit: Suricat, you seem to have nailed it. Chess is good for the brain, isn't it ;)
Robken
06-16-2005, 10:07 AM
no suricate.
I want to move the control object to the bone, so in the moveto expression, the control object is the slave. in the align function, I want to align the bone to the object. so in the align, the bone is the slave.
thomas, give me a few minutes to post the rig then :)
edit: http://users.pandora.be/tactics/kabouterrig.fxs
rightclick - saveas
Suricate
06-16-2005, 11:06 AM
Aah, now I see what you mean ...
'Align' uses the world alignment of an object, not the rotation relative to the parent. The problem is that the world alignment of the control object and the slave object is different which causes the twisting of the character. You have to do the following steps:
1. In setup, zero out all rotational and positional values of 'Ctrl_Back'.
2. Make 'Ctrl_Back' a child of 'KABOUTER_Back1'
3. Now unparent 'Ctrl_Back' using 'Parent Item'. Make sure that 'Keep Position' and 'Keep Alignment' is activated (checked).
The rig should work now.
ThomasHelzle
06-16-2005, 12:01 PM
... and this is why I don't use align but:
CopyChan(Left_Hand_Rotate, Left_Hand_Rotate_Control, "000111000000", "000000000000")
I only use align for the alignment of the controller to the controlled object, but not for the controlling itself ;)
Cheers and good luck!
ThomasHelzle
06-16-2005, 12:19 PM
I implemented the above for your rig:
http://www.screendream.de/stuff/kabouterrig_modded.zip
Works great and you can have your controller in Setup wherever you want... No need for complicated alignment - just put it out of the way or leave it at the origin.
Edit: Be sure to add the quotation marks around the bitfields. messiah leaves them out (very old bug).
Cheers,
Robken
06-16-2005, 12:55 PM
suricate, could you send me that rig? it kind of works, the way you say it, but i'd like to compare if I get the same thing like you :) thank you
Robken
06-16-2005, 01:00 PM
ah, I didn't see your posts before thomas, sorry, lemme reverse engineer yer rig there :)
thx!
Suricate
06-16-2005, 03:00 PM
suricate, could you send me that rig? it kind of works, the way you say it, but i'd like to compare if I get the same thing like you :) thank you
Sure, here it is :)
CGTalk Moderation
06-16-2005, 03:00 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.