PDA

View Full Version : Best Driven Morphs Perhaps?:..


Ramon
10-04-2003, 04:20 AM
Hey ya'll, I had an idea that seems so simple to me. As you'll see in the graphic that I am posting, why cant' you do all the morph driving in the graph editor so that we can be able to exactly control the morph curve in relationship to the driver's degree of rotation. I mean that seems elementary to me and would provide the most control.
Example: You have 2 (or more) morphs that you want to be driven by a (bone in this case).
1. You select the bone - or whatever "driver" object you want.

2. Go into the graph editor and select an option like: (drive objects)

3. Then in the channel bin, select whichever channel (h, p, b etc...) there will be a twirl down with a listing of all the morphs.

4. Highlight the morphs you wish to use and double click. The curves will be loaded into the graph.

5. Edit the "driven" curves as you wish.

The bottom horizontal part of the graph refers to the driver's degree of rotation on the selected channel in the channel bin (or maybe in it's own button that reflects the choosen channel). Of course, the left vertical portion of the graph indicates the morph pecentage.

Several people have mention problems with "handing off" morphs with the current tools. I think this would be the best way of total control for multiple (or single) driven morphs.
Check out my mock up comp
What do you think?

Facial Deluxe
10-04-2003, 08:33 AM
Thought you'd be interested in this :
http://www.cgtalk.com/showthread.php?s=&threadid=73130&highlight=Morph
:)

Ramon
10-04-2003, 07:22 PM
Hey Facial, thanks for the link to the post. I can't believe I missed that thread when it started. Very cool stuff yet, quite a bit different and much more complicated (looking, anyway) than the idea I have - hoping Newtek implements it. You can't really compare the two. My idea is about an objects rotation "driving" other objects/morphs etc... through the use of the graph editor and would update automate the morphing of objects through the use of Fcurves in your morph graph.
Pixel Ranger's control expression, I believe - unless I'm missing somthing here - isn't about an object's or bone rotation automatically driving morphs. From what I gather in reading the thread is that his expression setup, although it uses a control object to go through several morphs, it isn't (to my understanding) setup to automatically drive an object. An ex. would be the classic forearm bone driving the bicep morph. If you were using his expression based - object control for this example, it seems that you would have to move the controller object(s) for every time you rotate the forearm bone to attain the morphs you desire at those points in time. I wouldn't think he would use it for this because you want to automate the morphing of the bicep. It seems well geared towards facial aimation since I can't think of any facial expressions that are automatically induced by way of head/neck rotations thus would not need an "automated driver" relatonship.
I guess if you wrote more expression to go with the ones he has already written, it might work as an automated driver system.
Personally, I just like envelopes better (graph editor) for this since it's really so precise and extremely easy to edit whenever you need to.

If Newtek can implement both of these styles of morphing into the interface without having to write out expressions, EXCELLENT,... speed and ease! I mean, if Pixel Ranger can create his very nice setup in expressions, then how easy would it be for the great Newtek programmers to implement it into there GUI?
Pixel Ranger and Kretin, although they joke about not being math wizes and all that, they really have it together concerning expressions. As I have stated before in other another thread, I am strickly an artist (always have been, always will be. Don't blame me, it's in the blood). So, to that end, on top of not understanding the coding very well, it seems like this takes a good while to setup (- even for those who completely understand it) as opposed to having an interface such as the one in my first attachment (which is essentially the graph editor.

Ramon
10-05-2003, 04:30 AM
So what do you all think of a plugin such as the one which I have mentioned? Do you think it would be beneficial, more effecient and more control than say the SmartSkin plugin technique or MorphDriver?
The problem with smart skin and MorphDriver is that it doesn't give you an option of editing the morph via the morph's motion graph. This is very limiting because you can't be precise at all in instructing the morph to ramp up (accelerate) and decline. It seems to work linearly. That leaves much to be desired. This also makes it difficult to blend morphs together.
Now, with the graph editor curve on the "driven" or morph object, you can instruct it (through editing the curve) as to what exact acceleration and deceleration you want for the bone's "driver's" rotation.
Anyways, I thought that this would be the answer to all the automated morphing issues which exist in the current incarnations now. That's why I would like to hear some feedback to see if I'm onto an idea. I'll post it to Newtek as well in hopes that they will "think about it".
Thanks

SplineGod
10-06-2003, 01:34 AM
Hi Ramon,
You can tie the exact shape of the morph curve to the channel of a bone for example.

Open up the graph editor and put the morph channel and the controll channel right above each other in the channel bin.

Rotate the bone to the desired rotational value on frame 30.
Sculpt the shape of the morph channel the way you want to appear over the same 30 frames.

Now select the morph channel and open up the modifier tab and select CYCLER. Select the rotational channel of the bone. Input the starting and ending angle for the channel and the range of frames ts to cover (0 - 30 in this case).

What will happen now is that the morph will occur in the shape that you laid out at the speed that you rotate the bone.

You can also do mulitple morphs the same way but copying and pasting the Cycler settings onto those other morphs or by tying the morphs to a MASTER CHANNEL and then tying the Master Channel to the one bone channel.

Ramon
10-07-2003, 06:03 AM
Hey Larry, THANKS MAN! I am going to check it out.

So, when you say:
"Now select the morph channel and open up the modifier tab and select CYCLER. Select the rotational channel of the bone. Input the starting and ending angle for the channel and the range of frames ts to cover (0 - 30 in this case)."

Is this esssentially like using smart skin, joint morph, morph driver and such - in the sense that it will automate the morphs?

As always, thanks for sharing your wisdom...
I'm off to try it out.

SplineGod
10-07-2003, 06:28 AM
Essentially this gives more control. You can set a morph to do its thing based on the rotational angle of a controller.
You should be able to have more then one morph tied to a particular channel of a controller. This would allow you to blend morphs in particular ways using a single controller.
You could have one morph activate at a certain angle of the controller and deactivate the rest of the time. This could be done with several morphs to shape the joint at particular stages. Hopefully this makes sense :)
Its easy to simply activate a morph based on another channels behavior. This allows you to have the morph to do several things over the range of the controlling channel.

Ramon
10-07-2003, 09:14 PM
Sounds great but, it works like hell Willy. (...a take from the ol' SNL-Billy Crystal classic)
Anyway, I tried your method and it doesn't seem to adhere to the morph curve. As the bone rotates, the morph wildly pops back and forth between 0% and 100%. I have a feeling I am not going something right or maybe leaving something out but, at this point, I am at a loss. You'll see in the graph editor for the morph that after cycler is activated, it changes the look of my morph curve drastically for no apparent reason.
Things that make you go,... Hmmm.
So, I have attached the LWS and LWO for this experiment in hopes that if you get a chance, you could possibly take a look at where I might be going astray.
As always, thanks!

SplineGod
10-08-2003, 12:13 AM
As far as I can tell you just forgot to set the controllers( Bone 2) high value to 90 deg. You can specify the range thru which it controls the morph.

Heres an example of shaping the curve of the morph by hand and then using the cycle controller with it. The graph shows the two curves superimposed.
At 0 deg the morph will be at 0%.
At 30deg the morph will be at 100%
At 60 deg the morph will be at 0%
At 90 deg the morph will be at 100% again.

Again at any angle in between 0 and 90 you can set the morph percentage.
If you want to apply other morphs to the same cycle controller you can. You just have to turn off the morphs you dont want to see at certain angle and turn others on. Thru this method you can get very specific shapes to happen when you want them to.

HERES (http://www.3dtrainingonline.com/examples/morpharm_fix.zip) the fixed scene file. You were right on except for the high value being incorrect. :)

Ramon
10-08-2003, 12:50 AM
Man, thanks a lot for sharing your time. I didn't know exactly what the controller high/low values were refering to. Thanks for clarifing that for me. So, to recap, no matter how many morphs you have per channel, each with be tied to the bone through it's own instance of cycler. Very cool my friend.... " I like it a lot!" I mean, this is what it's all about right here.
I can't believe there hasn't been more mention of this method for driving morphs. It's the best! (IMO)
Thanks for everything Larry.

SplineGod
10-08-2003, 01:30 AM
I agree, it is a better way IMO because you can sculpt things a lot more carefully.

Also this isnt something for just morphs. You can have "muscle" bones or joint bones that you use to shape joints in other areas in specific ways at specific times. Using Cycler or the motion plugin cyclist, you can tie those to other controllers as well. :)

Lightbringer
05-14-2004, 08:31 PM
i just found this thread searching for a way to get my latest character to blink smoothly. the technique you described, SplineGod is just what i've been looking for.
i set up a quick test with a few morph maps and a null. the null's pitch channel drives all three morphs using Cycler. it all works great except that there's no dynamic update. when i rotate the null, nothing changes on the model until i scrub the timeline (or use the Refresh command). any ideas, oh wise ones?

SplineGod
05-14-2004, 08:48 PM
Have you tried turning on autokey?

Lightbringer
05-20-2004, 05:40 AM
Autokey is on. everything appears to be working perfectly (key is set, morphs are set correctly) except for my viewports which do not update until i scrub the timeline or use the Refresh command. Dynamic Update is set to Interactive in Display Options.

any ideas?

SplineGod
05-20-2004, 05:44 AM
How are you controlling the blinking?

Lightbringer
05-21-2004, 05:53 AM
i have three morphs: blink1, blink2, and blink3. blink1 comes on between units 0 and 30, blink2 between 30 and 60, and blink3 between 60 and 90.

each of these morphs channels gets an instance of cycler attached to it, driven by the pitch channel of a null. the null is rotated between 0 and 90 degrees in pitch, and the eye goes from open to close.

that's it. this is a simple test scene, so there's nothing there but the mesh with morphs, the null, a camera, and a light.

mysterious...

SplineGod
05-21-2004, 07:38 AM
If youre trying to do an eyelid and move it around an eyeball
I have a tutorial on my site showing how to do a nonlinear morph on an eyelid.

Also when using cycler you want to simply blend one morph in and the other out over the period of time you do a blink.
HERES (http://www.3dtrainingonline.com/examples/nonlinearmorph.avi) and example of using two morphs and cycler to create nice nonlinear movement.

Ramon
05-21-2004, 06:52 PM
[i]HERES (http://www.3dtrainingonline.com/examples/nonlinearmorph.avi) and example of using two morphs and cycler to create nice nonlinear movement. [/B]

Nice Larry. That motion with only two morphs... cool.:applause:

SplineGod
05-21-2004, 07:11 PM
Thanks Ramon,
This is the reason I generally prefer cycler over joint morph is because I can sculpt the morphs to behave exactly how I want over the range of a controller rather then rely on simple linear ratios between controller and controlled channel. :)

Ramon
05-21-2004, 07:37 PM
Originally posted by SplineGod
Thanks Ramon,
This is the reason I generally prefer cycler over joint morph is because I can sculpt the morphs to behave exactly how I want over the range of a controller rather then rely on simple linear ratios between controller and controlled channel. :)
Yes, remember we had discussed this quite sometime ago on this thread - that using the graph editor through the use of cycler is "perhaps" at least IMHO, the best way of driven morphs because of the level of control is unparalleled! But, nice use of nonlineared morph.:thumbsup:

Lightbringer
05-24-2004, 09:46 PM
Originally posted by SplineGod
If youre trying to do an eyelid and move it around an eyeball
I have a tutorial on my site showing how to do a nonlinear morph on an eyelid.

Also when using cycler you want to simply blend one morph in and the other out over the period of time you do a blink.
HERES (http://www.3dtrainingonline.com/examples/nonlinearmorph.avi) and example of using two morphs and cycler to create nice nonlinear movement.

i've seen the eyelid tutorial on your site. i prefer the morphs and cycler approach except for the lack of dynamic update. it's going to get frustrating very quickly if i have to scrub the timeline to see changes.
is there any way i can take a look at that ball-in-a-circle scene to see if i've done something wrong in my cycler set up?

Ramon
05-24-2004, 10:11 PM
Originally posted by Lightbringer
i've seen the eyelid tutorial on your site. i prefer the morphs and cycler approach except for the lack of dynamic update. it's going to get frustrating very quickly if i have to scrub the timeline to see changes.

I agree with you that's about the only downside to this method. Yeah it's a bit frustrating as you say. That's why we LWers were looking forward to see if 8 had improved in all areas of interactivity. LW has been lacking in that dept for some time now.
None-the-less, it's a great way of driving morphs.

kretin
05-25-2004, 01:53 AM
You can also drive bone rotation with morph sliders using "Channel Follower" for simple motion, or the "mapRange" expression for more complex motion.

Both these methods update dynamically and don't require additional keyframes in the scene.

Ramon
05-25-2004, 02:07 AM
Hey Kretin. Yep, you can also use channel follower too. It's been awhile since I used channel follower for driving morphs though - can't remember the dynamic updating of morphs being driven. I have to try that again.
I have never used Maprange though. That must be pretty cool - though as you said, more complicated I assume.

kretin
05-25-2004, 02:18 AM
Sorry, got you backwards... you wanna drive morphs with bones...

If the bones aren't IK controlled, then channel follower is easy and dynamic, as is mapRange, and mapRange isn't more complex to setup, just has more flexibility.

If the bones are IK controlled then no graph editor modifiers will work, only JointMorphPlus, which is also very powerful, and quick and easy to setup.

SplineGod
05-25-2004, 02:38 AM
Originally posted by Ramon
Hey Kretin. Yep, you can also use channel follower too. It's been awhile since I used channel follower for driving morphs though - can't remember the dynamic updating of morphs being driven. I have to try that again.
I have never used Maprange though. That must be pretty cool - though as you said, more complicated I assume.

Theres lots of ways to drive morphs but its basically going to be a linear ratio between controller and controlled morph. I like the cycler approach because I can do some very complex nonlinear blending of morphs in a precise way. :)

kretin
05-25-2004, 02:57 AM
Using Channel Follower, you're right, but you can get some very nice (and as complex as you like) non-linear morphing on a linear channel using expressions :)

luckysevens
12-21-2004, 01:29 AM
I know this thread is a little old, but I though I could just add onto instead of creating a new one. I'm trying to use cycler to control morphs as described in this thread but they only seem to be working for some of my morphs. I'm trying to figure out what the problem is exactly. Can someone can tell if cycler can tie a morph to a bone that is controlled by IK? I also read on the Newtek board that there are some problems associated with cycler since the 7.0 release, does anybody now what exactly these problems are? I appreciate the help.

SplineGod
12-21-2004, 01:40 AM
Cycler and Expressions in the Graph Editor dont see IK. I usually set up the cycler driven morphs before I add IK. After you can bake the IK (or bake at any time) and youll see the morphs. Typically I find it quicker to separate animating from deformations since theyre not really related. Ill worry about deformations after the animation is working.

luckysevens
12-21-2004, 02:07 AM
Thanks, thats the answear I needed.

CGTalk Moderation
01-16-2006, 06:00 AM
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.