Disney's Elsa from Frozen


#41

You keep making good progress, nice to see…
Ok so here are my thoughts on those points:

Shoulder Joint Placement:
Maybe from the front they could be a little further out and up. But you should test deformation as im being overly nitpicky here.

Spine Joint Curvature:
It doesnt really matter if the fk orients arent in worldspace… because they are in hierarchy anyway. So I would go fully anatomical and try to resemble the spine curvature as accurate as possible. Then if you need fk controls just put them under offset transforms (groups) that get constrained to the prior one and have a second offset group that actually holds the curvature offset underneath those.

Slidey Joints:
Shoulder demo looks cool, would be good if you can show how you are actually placing and driving those joints too.

Neck Skinning:
Yeah thats a common issue. Basically the rotation of the neck vertebrae isnt linear. If you rotate your head 90 degrees to the side, the neck base wont rotate by the factor 90/n (n being the number of neck joints) but it rotates less. Now depending on how you rigged up the neck (I dont know how much control AS gives you in terms of twist interpolation), getting that to behave can be tricky, its either have the joints interpolate correctly and have a straight linear skinning between joints, or just adjust skinning to the way the neck joints twist.

Facial Shapes:
Yeah I see your point, well basically you can do it that way, but it will be quite a tricky task to isolate areas without having their borders double transform or not reach full target state.
I have a little video where I talk about a little joint based face rig I designed in the past months: https://www.youtube.com/watch?v=laG7HQtnrHY
Not saying its an optimal soluiton, but it could give you a little different perspective on stuff like that.

Skin Collision:
Interesting, you know you can also use different cMuscle nodes that can give you a basic self collision effect right? There is self collision grouping, the cMuscle smartCollide node, you could go with a more transform based setup with keepOut nodes or mesh/matrix collisions on relative joints on problematic areas.

So there is a lot of possibilities on all of these things…
Just keep going and asking questions here, people will be always looking to help you out.

-S


#42

Oh you’re THAT guy! I really should start stalking the people I interact with … :X
Saw your stuff on Youtube quite some time ago and was quite impressed by it! I kept stumbling across your videos ever since when looking for specific things … small world!

I’ve adjusted the spine joints to be more anatomically correct now. Didn’t go full accurate though cause the torso-twist started to look very weird when I moved the joints too far towards the back.

What you said on the neck makes sense. I’ll try to clean up what I can, but it’s no big deal if it stays like that … I doubt I’ll ever have to twist the neck that far.

With the book came access to some tools which makes this blendshape-separating-process easier by making sure that they all add up to the initial shape. Haven’t looked at these tools yet but I could if you’re interested.
Your Serena character and that facial rig look absolutely awesome! Watched that video and a couple more you uploaded … I’d be very happy if I somehow manage to conjure up something half as good.

No I did not know that I could achieve that with muscles! I made a quick collision-test with simple spheres and my framerate tanked really hard as soon as they touched. It’s really neat that the spheres deformed each other, but in my case it’s enough if only the arm gets deformed. I’m gonna go with iCollide which has no noticeable slowdown on collision. Here it is in action. Don’t mind the crashing armpit … I was still piecing together all the elements I’m going to need before starting work on the final rig.

That gif led me to take a step back and introduce a couple more edgeloops in places to get better collisions. Had some difficulties transferring my Xgen descriptions to the new meshes and ran into an unrelated nasty issue with with Advanced Skeleton.
But I think I’m done with the planning now and can start working on the final body rig.

edit: Screw this, I feel like I’m overreaching here. I’m going to ditch Advanced Skeleton, not start with the final rig for my model, learn to rig properly and then do everything myself. Taking things nice and slowly and staying on top of the things I do was helpful so far, so I’ll just stay the course.


#43

Amazing work Schpielkind… I’m really impressed by how close your Elsa looks to Disney’s!

One question:
How did you go about making your cloth delauney triangulated? I’m running into the same thing with my own clothing sim and wonder if delauney mesh would result in better folds and creases. And I guess you are using nCloth for your sim?

Thanks and cheers :slight_smile:


#44

Splendid work. Love the attention to detail. Eagerly waiting to see the animation :slight_smile:

Btw nice skinning work too. :thumbsup: :thumbsup: :applause:


#45

Beautiful and very inspirational work here!:keenly:

Looking forward to more.

Cheers!


#46

Thanks everyone!

 I don't know if there are any smarter ways to do this, but the way I did it involves quite a few steps. I used 3ds Max with [this script](http://slidelondon.com/_downloads/SlideKnit/SlideKnit.zip), but you could use any other 3d application instead, I suppose. 
 
 1.
 First you simplify your mesh. Turn it into a one-sided shape and get rid of any detail you don't need to have simulated.
 [[img]http://i.imgur.com/3cbKdrAm.jpg[/img]](http://i.imgur.com/3cbKdrA.jpg)
 
 2.
 Apply a UV-map to the new mesh. Splitting the poly-edges where your UV-seams are is optional, but I prefer doing it and I'll explain why in a minute. 
 [[img]http://i.imgur.com/hMTigN9m.jpg[/img]](http://i.imgur.com/hMTigN9.jpg)
 
 3.
 Run the script I linked to flatten the mesh, basically turning it into a 3d version of your UV layout:
 [img]http://i.imgur.com/zpZbIiZ.gif[/img]
 For whatever reason the morph-modifier on that script runs incredibly slow. If you split your poly-edges before, you can apply a morph-modifier to that model and pick the flattened model as a morph-target. Delete the flattened model and you're left with a much faster morphing model.
 Btw, if you don't use 3ds Max or don't want to use that script, you could import your model into ZBrush, apply its "Flatten UVs" tool and export it back out.
 
 4.
 Morph the model to the flattened state, select the borders and create a curve from them. Apply a garment-maker modifier to that curve and set the density to whatever you like. 
 [[img]http://i.imgur.com/koI8QGWm.jpg[/img]](http://i.imgur.com/koI8QGW.jpg)
 
 5.
 Skin-wrap the garment-mesh to the morph-mesh and morph it back into shape. Collapse the stack on your garment-mesh, weld the seams and you're done.
 
 You could use this on more complex garments as well, but the welding part can turn out to be quite messy, especially if you have to deal with multiple UV islands. 
 A great thing about this method is that you can control the density of the triangles simply by stretching the UV-map during the second step. Apply a checker-map to see what you're doing and stretch away. I did this to increase the vert-count on the upper cape where I expect most collisions to happen.
 
 For the sims I made so far, I used 3ds Max's cloth modifier. I plan on using ncloth for the final thing, but haven't played around with it yet.

#47

Wow, I’m very grateful for the indepth explanation, its extremely helpful! I hope others with the same question will also be helped by your technique. Now I understand what my friend (who is a cloth TD at Pixar) meant by “delauney is for 2D”. I think I will give it a go, the only concern for my particular garment is that I have the a sleeve with the inner part extruded in (pic below in spoiler)

[spoiler][/spoiler]

I’m not as familiar with Max but I’ll give it a go and let you know my results if that’s alright with you :slight_smile: Don’t want to clog up your nice WIP thread :stuck_out_tongue:

Also I agree that nCloth for the final sim will probably be better, I find it produces more realistic results and is easier to control from my experience!


#48

Pffft, Pixar TD … la dee da! :X
As far as I know, garments in more elaborate productions are pretty much being built like real clothes … starting with a bunch of 2d patterns and then sewing them together. Marvelous Designer (look up some videos if you’ve never heard of it. pretty impressive stuff!) embraces that workflow and there’s the option to do that in 3ds Max as well.
I tried dealing with that, but it requires a different way of thinking to get the shapes you want. Ultimately I wasn’t able to lay out the patterns in a way that they formed the dress I wanted … it involves a lot of trial and error (at least if you have no idea what you’re doing) and so I settled on traditional quads and later had an epiphany on how to turn them into delaunay-triangulated meshes, so … yay!

Yeah, getting rid of that thickness is part of what I meant by simplifying your mesh. I’d just delete the faces on the inside, as well as the border and then maybe push the outer faces a little bit inwards, so that they sit right in the center of the original thickness … if that makes sense?
When the delaunay mesh sat right on either the out- or inside, I got some clipping issues after wrapping the render-mesh to the simulated mesh. That’s the reason I push the delaunay faces along their normal a little bit inwards, so that they get buried inside the render-mesh.

If that caused any confusion, here’s the process broken down again:
Mesh A - that mesh you linked, with thickness and all them goodies
Mesh B - simplified version of Mesh A. Thickness removed and faces moved inwards, so that they disappear inside Mesh A
Create Delaunay-Mesh from Mesh B, wrap Mesh A to Delaunay-Mesh, simulate Delaunay-Mesh

If anything is unclear, feel free to ask! I’ve learned most of this stuff from free resources on the web, so I’d be glad if I can give something back.


#49

i really enjoyed your WIP , lots of information . if you have time, could you tell us abit about your making progress of Hair in XGen , how did you make long hair from your polygon hair shape base. Thanks man !


#50

Pffft, Pixar TD … la dee da! :X
As far as I know, garments in more elaborate productions are pretty much being built like real clothes … starting with a bunch of 2d patterns and then sewing them together. Marvelous Designer (look up some videos if you’ve never heard of it. pretty impressive stuff!) embraces that workflow and there’s the option to do that in 3ds Max as well.

Oh yes I should explain that she is the only person I know that does anything cloth related, and after seeing your explanation on delauney I had to ask her what her thoughts were on the subject :slight_smile:

And actually I used Marvelous Designer before changing to nCloth just because the garment I choice to create didn’t lend itself well to the way MD works. I have the added benefit of sewing experience, so I’m not as intimidated by patternmaking in MD :slight_smile: I actually think that modelling clothing (in Maya/Zbrush/what have you) is harder! I am always impressed by people that can model nice looking clothing from scratch. The kimono I modelled was very quick to sew together in MD but took 2 days of endless tweaking in Maya haha.

Also thanks for the clarification on the mesh wrapping process, I’m probably going to take a go at it tomorrow in Zbrush and Maya and see if I can get some good results, if not I’ll just pop them in 3DSMax. Thanks again and cheers!


#51

That’s a very vague question for a very broad topic :X
Basically I used Xgen’s tube groom feature as shown here. I run into an issue with the generated guide curves cutting off too early, so I used the tube groom to get the region maps, deleted the generated guide curves and then added my own guide curves in, which I manually extracted from the polygon mesh. Worked like a charm.
The scalp-mesh, its UV-map and the original tubes were set up in a way that I could easily generate maps to control the density of each strand, mask out certain effects and stuff like that.

As I said, it’s a very broad topic. If there’s something specific you wanted to know just ask away.


#52

MD has a pretty neat stress-visualization feature, so I guess anyone could figure out the correct patterns simply by trial and erroring. But yeah, the polygonal approach seemed more appealing to me.
Good luck with the whole delaunay thing! I hope it will be worth the hassle.

Btw, just had a look at your page and I think I know now where that sewing experience, you mentioned, comes from =)
Awesome stuff you have there! Broad range of interests and talents as well! I’m sure you’ll have a very bright future in the industry. Very inspiring, keep it up!


#53

Turns out, my kid celebrated viewing number 100 of Frozen today. :stuck_out_tongue:

If one compare the anatomy between Elsa and Anna, Elsa seems to have such big eyes, to the point where it seems hard to animate her without making her look cross eyed. Is it so, or am I just imagining it?


#54

MD has a pretty neat stress-visualization feature, so I guess anyone could figure out the correct patterns simply by trial and erroring. But yeah, the polygonal approach seemed more appealing to me.
Good luck with the whole delaunay thing! I hope it will be worth the hassle.

Btw, just had a look at your page and I think I know now where that sewing experience, you mentioned, comes from =)
Awesome stuff you have there! Broad range of interests and talents as well! I’m sure you’ll have a very bright future in the industry. Very inspiring, keep it up!

Oh wow, thanks so much!
That means a lot coming to someone who is flawlessly recreating one of Disney’s (now) most famous characters :beer:
I really love this industry and the people in it, it makes the long hours not seem so bad :smiley:

Interesting, I was also looking at XGen to do hair (I really only know GMH2), so you just used CV to create your own guides then reattached them to the Xgen system? Clever!


#55

Not bad! Don’t know how many times I have watched it … certainly more than I’d like to admit, that’s for sure.
On the plus side, I memorized the entire film and so I remembered a scene where there’s some weirdness with Elsa’s eyes is going on … maybe you’re on to something! :smiley:


#56

Nice to hear someone saying something positive about the industry for a change! A lot of the comments on that subject around here are pretty disheartening to be honest.
Oh well, hopefully one day I’ll see for myself.

I remember GMH2 from a couple of videos I saw. You gotta admire tools like that, which somehow manage to find a very intuitive approach to something which used to be a very complicated or tedious task before. Hairfarm and MD come to mind as well.


#57

Love what you´ve done with Elsa!

I have also posted comment on your youtube video but I´m gonna ask again in case you come here first, how did you manage to get such wonderful results with Xgen?

I have been struggling with Xgen for months and I can´t seem to get any decent results.

Did you use the method where you model the hairstyle as geometry and then you generate the guides from it?

Or did you manually place the guides/or edited them as curves?

And is the entire hairstyle in one description or is it several separate descriptions?

I´d love to know how you did that : )

I´m really impressed, very well done : )


#58

Thanks!

Yes, I’ve been using the tube groom feature as describes in this video. The generated guide curves weren’t very accurate though, so I used tube groom to get the region maps into place, deleted the generated curves and replaced them with accurate curves, I extracted manually from my poly-mesh.

I split the hair into two descriptions - one for the braid, one for the loose strands. There are a couple of reasons behind that decision. I think this will keep dynamics a little bit more manageable, since the braid will have different requirements than the rest of the hair. Also the braid needed a lot more segments to display correctly. Way more than I needed for the strands, so this keeps stuff a little bit more optimized. The modifiers on both descriptions are very different as well, so I didn’t have to juggle with a ton of maps to mask out some effects. Oh and if I want to tweak the hair-shader or lights or anything, I can just hide the braid and have only the strands render … very useful cause the precalculations for the braid take quite some time.

What exactly is it you’re struggling with in Xgen? I was actually quite surprised about how easy it was to use.


#59

Hello there and thanks for your reply!

Well, lets say I´m having so many issues mainly with ptex maps and the primitives not following the guides I need them to follow.

If you are interested in knowing more about how the battle Me vs Xgen is going, you can read comments under this video - https://www.youtube.com/watch?v=OTJv4Wo4WCM

The conversation between me (To Yen) and the kind sir who runs the Maya Learning Channel should give you an idea of how exactly I´m struggling with Xgen : )

Anyways, when you generate guides using tube groom, it automatically creates a ptex map with as many regions as you had tubes?

Lets say you have 5 tubes and you generate guides from them, the ptex map will be divided into 5 regions?

And how exactly did you extract manually the curves?

I am working on a simple braid right now as well (which you can see in the comments on that youtube video) but it´s not going very well : D

So when I saw that Elsa hair I was really impressed : )

And what shader are you using? Is it the default Xgen phen and rendered with mental ray?


#60

Judging from the colors of my guide curves, I assume that 5 region maps would be created, yes. I tried visualizing them once, but messed something up in the process and never tried that again ^^"

Looking at this image I’m preeetty sure your problems are caused by the fact that your guide curves fight over the same area on the scalp. If you would paint those areas in your density map black (like this), I’m sure you will end up with very cleanly separated primitives … and a very thinned out ponytail. Try this and see if there’s any improvement. If there is, it means you have to move your guide curves around so that they don’t overlap anymore. Remove the black area and fix away til everything looks nice and tidy again.
I avoided this problem by generating my hair-tubes by extruding the scalp-geo. Since all tubes originated from a unique location, there’s no danger of overlapping.

Extracting curves is fairly straightforward. Just select the edges you want as curves and go to modify/convert/polygon edges to curves.

I don’t see no braid in the comments :expressionless:
You should btw uncheck the Tube Shade option in Xgen’s Primitives tab. It’s kind of unnecessary with thin hair primitives and is in fact the reason you get moiré patterns in this image.