PDA

View Full Version : Expressions question



Chernoby
08-14-2015, 09:50 AM
I'm trying to create an expression for an eyelid that runs off the Rotation of an eyeball Bone. The eyeball Bone is targeted to a null. So when the character looks up the eyelids will morph up a bit.

The expression doesn't seem to update. If I attach expression using the Eye Target null it does. The Null has keyframes the Bone doesn't but it has values that change based on target. Is there a way to make the expression update? Is there a way write the expression so that it uses the changing rotation values?

RebelHill
08-14-2015, 10:14 AM
Because expressions only read from they keys that exist on a channel and dont "see" the change in value of the constraint driven item.


https://www.youtube.com/watch?v=jPFi8zY3B4g&list=PLTds3QePYrWEWipwKkLmyNT4Tf_JTigM2&index=9

The best option is to use the nodal displacement and drive the morphs from a bone reference there.

Ryan Roye
08-14-2015, 10:16 AM
There are 2 general types of constraints that you can employ in Lightwave:

1) Those found in the motion options panel (including motion modifier plugins and nodal)
2) Those found in the graph editor (Expressions and modifiers)

You currently cannot mix-match these in any way, shape, or form if you want reliable real-time updating (this is something I really hope changes down the road). Studio live can be used to get around this, but it will only be practical in the simplest of scenes and it generally isn't recommended anything other than hardware device usage (which is what it was designed for anyways). The way Lightwave evaluates motions is also not a static thing, and can be dependent on the plugins or functions you are using.

The downside here is that there are some scenarios, like the one you describe, where using studio live is unavoidable. Morphs only appear in the graph editor, and point at target only appears in motion options.

Chernoby
08-14-2015, 10:26 AM
Thanks so much yall. I'll give your tip a try RebelHill.

RebelHill
08-14-2015, 10:29 AM
Oh yeah... forgot to mention, youll need DPkit to get a bone info node (also handy extra, you can use a gradient to "stagger" the amount of morph across the input range, thus giving an cyclist type option).

Also... generally the better practice for this is to not use a morph for the effect, especially if you're using morphs for blink, wide, etc... you'll wind up with double transforms (unless you insert extra stuff to pick up the difference and add on the negative difference). Rather, use a second bone as a sibling of the eyeball bone, weighted to the eyelids, with an SAI constraint to the eyeball bone with a fractional multiplier.

Chernoby
08-14-2015, 11:18 AM
Oh yeah... forgot to mention, youll need DPkit to get a bone info node (also handy extra, you can use a gradient to "stagger" the amount of morph across the input range, thus giving an cyclist type option).

Also... generally the better practice for this is to not use a morph for the effect, especially if you're using morphs for blink, wide, etc... you'll wind up with double transforms (unless you insert extra stuff to pick up the difference and add on the negative difference). Rather, use a second bone as a sibling of the eyeball bone, weighted to the eyelids, with an SAI constraint to the eyeball bone with a fractional multiplier.

Took me a bit to realize I couldn't use item info but I did manage to remember Bone Info.

I see I might have to go with the weight map/bone route. It is working pretty good with the morphs and displacement node though. I'm tappering it and using a logic node to clamp the values for starting and stopping Up, down, etc

Thanks again!

Chernoby
08-15-2015, 12:05 PM
RebelHill: As usual about rigging you are right.

Anyone interested in this should use the bone -> reference bone -> SAI constraint. It is the way to go.