View Full Version : Adding eyebrows after animation!
rezamgm
03-10-2008, 10:10 AM
Hi all,
I hope this is the correct section for this post.
We are currently working on a short movie called Baran http://www.xsibase.com/forum/index.php?board=5;action=display;threadid=32024;st art=0 and we have a small problem which has perplexed us. Our main protagonist has been fully animated and we have no intention of re-doing them. We have discovered that contrary to our concept designs, she needs eyelashes to make her more natural.
I have thought of the following solutions but I need to know what you think:
Create curves that are perpendicular to the eyelids, exactly where the eyelashes should be, and make a surface using loft without freezing its history. Constrain each curve to points on the eyelids so that they move with the shape animation of the face.Problem is when the I increase the mesh's subdivision, the curves don't follow. I tried creating cluster with center for the points on the face, but same problem with the subdivision.
Same solution as above but instead of creating a loft, I create hairs along curves.Same problem as above and render takes a little bit longer
Create a mesh for the eyelashes and attach it to the face.Problem is the character has shape animation on it and finding the correct transform for the eyelash mesh manually for 60 scenes is rather excruciating.
That's it folks. Thanks in advance for any ideas you could give me.
Serguei
03-10-2008, 01:51 PM
Create a curve by extracting a curve from edge along the eyelid. Do not freeze the relationship, this way the curve will follow the animation of the face. Constrain some nulls along the new curve to act as envelope deformers. Weight your eyelash mesh/hair to those nulls. This worked ok for me on a recent production.
rezamgm
03-11-2008, 04:04 AM
Thanks for the reply Serguei, sounds like a great solution. Just one more thing, do you have any ideas how I could put a lock on this relationship so that nobody freezes it inadvertently?
franky
03-11-2008, 06:24 AM
one thing that worked for me was to create cluster of some unsubdivided polygons and the end of the eyelid. then grow hair from this selection.
however, i like Serguei's method better because its more flexible and safe.
rezamgm
03-11-2008, 06:40 AM
Thanks Franky, I tried that but I had to make the polygon strip very thin and I didn't seem to get the result needed of all the lashes growing out of one line like in real lashes.
Maybe my hair settings were off but I just couldn't obtain good results with this method.
Serguei
03-11-2008, 01:45 PM
To make sure nobody freezes the curves by accident just right click on the geometry node of the curve object (NURBS Curve List) and go into Locks / Node Topology Lock.
3DMastermind
03-11-2008, 04:43 PM
Good suggestions.
I always believe the best approach is the simplest method so I want to avoid making a separate rig to control the hair's curves which may give interpolation/orientation problems...
This is what I did:
Extrude the row of edges on the tip of the eyelid and make the eye lashes (they will be part of the geometry of the eye lid (not as a separate object).
This will avoid making a separate rig for the eye lashes since they are part of the eyelid's geometry also no issues with subdee level or orientation..., they will be 100% stuck.
Add those points to the shape cluster.
Freeze the Modeling stack.
Go to the open eye shape and match the new geometry (eyelashes) to the shape. This is also great because you can closely define the curvature/width of the lashes when the eye opens.
At this point you can attach the curves to the geometry for the hair (hair> from curves).
Hide the polys on the eyelashes.
I always like a challenge so I tried this quickly and it worked perfectly.
rezamgm
03-12-2008, 07:14 AM
Thanks for the suggestion 3DMastermind, since I have the time right now I prefer testing your method too so that I can find the method that would be the most simple to implement in this case.
I agree with you on opting for simplicity but sometimes in the heat and pressure of a heavy project my mind starts short-wiring and I can't find the simplest of solutions :confused:.
Anyway, I'll test your solution and get back to you with the results.
rezamgm
03-12-2008, 07:25 AM
Just one question before I try this:
The face animation has been baked into a cluster shape combiner in the mixer. I would have to manually extrude and model the eyelashes for all 60 scenes or can I model them once and then replace the head mesh with the new one with eyelashes and replace its mixer clip?
In the previous method suggested by Serguei I modeled the eyelashes once and was trying to write a script that would extract the curves, create the nulls and constrain the nulls to the curve points automatically. After that the eyelashes envelopes would be loaded for each scene.
I do agree that with this method there may be interpolation/orientation problems.
Do you think there is a way of making your method more repeatable?
rezamgm
03-12-2008, 12:16 PM
Hey Serguei, nice tip on the Node Topology Lock, this will be really useful. I never knew which level of lock to choose for this.
3DMastermind
03-12-2008, 12:23 PM
I suggest you go in steps and use small scripts when you need them.
You can waste more time making a complete custom script than actually focusing on small ones, the small ones can also be reused in different scenes/situations.
I have attached my initial test scene. One model (sphere) represents the eye just opening with no lashes.
The other is the finished object with the lashes. I suggest you test with the unfinished eye it may help you determine the best route to take.
While making the hair curves, I realized that this can really be streamlined:
When making the curves:
Simply select each row of edges on the eyelashes >curves>extract to edges>then fit to curve to make your hair curves.
UnRAR the attached scene and click play :)
rezamgm
03-12-2008, 12:37 PM
Thanks a lot for taking the time and for the scene. :biggrin: Actually I'm 90% finished with the script but since your methodology seems very interesting, I'm going to try that out too and see what I come up with.
Will keep you informed.
rezamgm
03-15-2008, 10:12 AM
Hi all, I'm feeling rather dumb right now so any help would be really appreciated.
OK, huge unforeseen problem! :-[
I have done the following:
1) Created the eyelashes geometries.
2) Created a script to do the following:
Select eyelid edges
Extract curves from these edges
Create nulls
Constrain these nulls to the created curves' points
[/LIST]
I then disable the face's envelope operator and its cluster shape combiner node and envelope the eyelash geometries to the nulls.
The problem is that the curves extracted from the edges don't follow the shape animations even though the relationship isn't frozen.
I even tried it manually and it works: I select a point on the eyelid and move it and the eyelash follows accordingly but as soon as I enable the shape animation, the eyelashes don't follow anymore.
Please, I've worked too hard on this, my brain is semi-melted already, does anyone have any idea what I'm doing wrong?
Serguei
03-15-2008, 10:26 AM
Hmm that is strange, the rig I used this on was completely envelope based so I can't attest for this working with shapes correctly but I just tried a simple example with a sphere, a couple for shapes and a curve and it seems to follow correctly.
So try your script on a simple object to do a proof of concept and if it works then we'll have to look into how your character is set up, if the sphere test fails then try to do it manually and if it still fails you can send me that scene to look at.
rezamgm
03-15-2008, 11:14 AM
I tried the proof of concept with a sphere and a plane and it works. It just doesn't work in my scene. :(
I have attached the scene and would appreciate your taking the time to take a look. Maybe a pair of fresh eyes is all it needs, cause I really am in a jam with this issue.
http://rapidshare.com/files/99733814/eyebrows.rar
thanks for any help you can give.
Serguei
03-15-2008, 11:22 AM
If I extract a new curve out of the head it works fine, so I am not sure how you went about doing this. It wouldn't take long to recreate the curves and just re-constrain the nulls though so give that a try.
rezamgm
03-15-2008, 12:20 PM
Well, I'm embarrassed to say it didn't work fro me. I tried it on the same scene using a newly created curve and constrained nulls manually and it still didn't work. I chose a row of edges, Create -> Curve -> Extract from Edges, change its mesh subd level to 2, create a few nulls and Constrain using Object to Cluster.
As soon as I enable the cluster shape combiner the nulls stay in place and are not animated at all and neither is the curve.
Could it have anything to do with with my construction levels?
Serguei, did you change anything in the scene I sent you or just constructed the curves and nulls as it was?
I hope this is not some silly stuff I'm going to slap myself for.
Serguei
03-15-2008, 03:48 PM
http://s88710239.onlinehome.us/EyeLashes.rar Try this scene!
rezamgm
03-16-2008, 05:12 AM
Hi Serguei, thank you for the scene, I just downloaded it today.
Do you have any idea what the difference is between your setup and mine? Or what I might be doing wrong?
Serguei
03-16-2008, 02:36 PM
I really don't know why your setup doesn't work, rather strange.
Helli
05-02-2008, 09:03 PM
Hey there
Im not sure if this is still a problem.
What you can use is doing the same you did but without the curve. At the moment you created a curve from an edge and constraint nulls to the cluster points of the curve, then you used the nulls as envelope objects.
Instead of using the curve constraint the nulls directly onto the mesh where you create clusters for each point first.
Would do the same but you need no curve AND you have no live operator wich can (sometimes) be a problem.
Cause you use the same model in each scene you can use a script too for creating the point clusters and constraining the nulls to them.
vBulletin® v3.7.0, Copyright ©2000-2008, Jelsoft Enterprises Ltd.