ZBrushCentral

Blending Displacement For Facial Animation In 3DS MAX: SUCCESS!!!

Simple, i want each of my morph targets to have an assigned displacement map so my base model blends the shape and the displacement in the same time to create effects suchs as wrinkles, buldges ect…
I’m wondering why such an incredible technique isn’t more documented.

This seems to work in Messiah, what about 3ds max and other apps?
http://www.zbrushcentral.com/zbc/showthread.php?t=24206&highlight=taron+people

Searched madly bout how to do what seamed to be a “houdini/maya/all-other-apps-than-max possibility”.
Found a solution, It actually works pretty well With one morph target , heres how i did it, i’ll keep it updated.

Here’s my test:

//youtu.be/VAnQfQLxOmw
</EMBED>

no lights in scene and the zbrush model is just something i made quick to test it, and it works :slight_smile:

Here’s with basic light setup… (Some Aliasing/Rough Displacement issues, my fault, i’ll refine that later) :
Midget_MT_Afraid.jpg

Attachments

Midget_MT_Rage.jpg

Hey!

I’ve found the “morph” material in 3Dsmax.
Only thing is in the 3ds help file, it says mental ray doesnt supports it…
Maybe it does works, i need to make some tests.

I’ve tried that morph material with different normal maps assigned to each morph targets and it works pretty well using Vray, here’s a render (just a sucky test, but works!):
http://www.shaolinkid.com/midget_displacemorph_test001.mov
Wrinkles are mostly Normal map generated, i should post a version wireframe…

That guy also managed to do this but doesn’t explain if he managed to render in mentalray. Dunno if its displacement, looks like normal bump to me:
http://www.youtube.com/watch?v=sLeksjN4N0c

Normal map blending works with the morph material and its renderable in Vray.
I’m not sure bout displacement since only way i know how to use them in vray is with the vraydisplace modifier (blending modifiers soudns kinda complicated… impossible).

Well, if anyone has suggestions… I’ll continue doing some tests!

Since there’s no response, i guess it’s not worth explaining how to do it (its so easy :D)
Seriously, hope people wil be interested in it, my workflow isnt perfect so you guyz could help “perfect it”…BUT IT WOOORRKKSS!!!

[attach=142868]Midget_MT_Afraid.jpg[/attach]

Attachments

Midget_MT_Afraid.jpg

You bet your arse it’s worth explaining. Sooo…

Finallly someone interested!
Searched madly bout how to do what seamed to be a “houdini/maya/all-other-apps-than-max possibility”.
It actually works pretty well (for now at least…!)
Ill post tomorow (in like 8 hours, its 3’30am here lol)
Till then ill post youtube’s description of the video:

ZBRUSH + 3DS MAX = WOOOOOAAAHH
So easy to do, very easy to explain (Hummmm:)
Write a comment, i’ll respond.
3Ds setup: OBJ + UV Coordinates _ Turbosmooth ( 1Level ) + Morpher Modifier + Fast SSS mi Material + Composite Material in 3D Displacement Slot + Joystick Riggtool ( Reaction manager- used to control Morphers AND Output value of composite material simultanously ), DONE

Is there a way to delete that post? Trying to clean and put all info in the first post, oh well…

Hi there

Looks interessting!
Well… I would be interessted in a more extensive explanation.

Though I intend to rigg the face with bones, so its probably a bit more difficult to blend an appropriate map over it, since its not blending from one pose to the other, but using the bones.

But maybe its possible to link the sliders of cat’s face expression manager with an appropriate wrinkle map.

Keep going

Marc

coolness i am also interested :slight_smile:

I’ll try to be clear, its a wip technique, heres how i did it:
Pink stuff is “the noob in me” doubting bout my workflow, please give precisions if you have a better wya to do the “pink things”

3DS MAX - Creating Basemesh, Unwrap, Export
01 - Model in max a base mesh. I relaxed the basemesh with relax modifier to remove tension on the model so displacement is more constant when i export from zbrush later on.
02 - UnWrap the base mesh (Unwrap UVW)
03 - Export .OBJ

ZBRUSH - Import, Sculp Neutral, Sculp Afraid Subtool, Create disps., Export .OBJ’s
04 - Imported basemesh in Zbrush. I didn’t stored morph target, i rather use the “zbrush smoothed” level 1 subdiv basemesh, export/import in 3ds to give more accurated displacement.
05 - Added like 5 levels of subdivs,
06 - Sculped “Neutral expression”, Created “Neutral_Displacement” from it.
07 - Back to level 1, i cloned and appended resulting clone as as subtool to create the “Afraid” morphshape. I guess that could be a layer instead of a subtool. Well, does it makes a difference??
08 - Sculped “Afraid expression” (the subtool), Created “Afraid_Displacement” from it.
09 - Exported both Level1 Basemesh and Subtool in .OBJ format, now back to 3DS Max.

3DSMAX - Import, Morpher Modifier, MRay Fast SSS, Composite
10 - Imported both .OBJ’s, applied a Morpher modifier on the Neutral shape, added Afraid shape as a morph target.
11 - Setted rendering to mental ray, applied a FAST SSS material to Neutral base mesh (the one with morpher modifier), 3D Displacement in Displacement slot, lenght/Strengh 2/2.
12 - I added a Composite Map in the Extrusion map slot of the SSS Material. Added 2 layers. In the first one, added Neutral_Displacement image. Selected HUE as blending mode.
In the second slot of the composite, i added the Afraid_Displacement. Selected Normal as blending mode. Both Alpha to 100%.
I didn’t experimented alot there. I didn’t want th displacement to get multiplied as they belnded, I didn’t experimented to add Alpha maps either, but that could be the solution to isolated blending displacememnt to small sector. Right now the top layer is set to HUE so the layer “Afraid” beneath overrides it as its output range is up. Problem is wtf will happen when you have like 10 maps there?

3DSMAX - Manipulator/Reaction Manager
13 - Get that Joystick Setup http://www.bakaneko.com/howto/computer/3d/rigging/riggingTools.zip .I donMt know much bout those controllers, maybe it’s not the best… Worked pretty fine for me!
14 - If you don’t already, You must learn to use Reaction manager. Here’s a great tut, i just learned it there (NOT ITS NOT HARD, JUST DO IT!!) http://www.bakaneko.com/howto/computer/3d/rigging/ .
15 - Created a “Joystick” manipulator.
16 - In Reaction Manager,Add state for 0 Y position of the Circle controller:
ADD_MASTER(Click the Circle of the Joystick)/TRANSFORM/FK_SUB-CONTROL/POSITION/Y_POSITION .
17 - Add Afraid Morpher and Output level of Afraid Displacement so they are binded to the 0 position of the circle:
ADD_SLAVE(Click the Base mesh with morpher modifier)/MODIFIER_OBJECT/MORPHER/[1]Basemesh(TARGET_AVAILABLE) .
ADD_SLAVE­(Click the Base mesh with morpher modifier)/SSS_MATERIAL/DISPLACEMENT/EXTRUSION_MAP-AFRAID_MAP/OUTPUT/OUTPUT_AMOUNT.
Set both Morpher/Output values to 0.
18 - Now move the Circle controller to its maximum Y position and create another state. Put Morpher value to 100 and output value value to 1 .

DONE .

Here’s an update, rendered with 3 lights.
I added a smile shape.
As you’ll notice, things start to get funky: You can see inflation in back of the head and in other places :confused: . Not sure if thats because i added a 3rd Displacement (corresponding to Smiling shape), maybe its causing an interpollation issue. Or maybe its due to the fact that i reexported/remplaced the neutral and afraid displacements (maybe i did a small mod on the way i exported disp maps):

MOVED TO FIRST POST

I’ll work on my setup further before posting again.
Edit: Oh yeah! Error was just a value in reaction manager that i didnt updated (Neutral wasnt to 100% the whole time, it needed to be in my cheesy setup!)

Made a test to see if it works well when they all belnd together, works kinda well!
I just set all composite maps to HUE, thats kinda magic setting for that!
Not sure how it works tho… Here it is (Didn’t updated the 30 first frame, the inflation/bad blending doesnt occurs anymore):
MOVED TO FIRST POST

this is great ! congrats !

reminds me of that pdf of uncharted, they used a similar technique for the wrinkle maps, using normal maps :

http://www.rd3d.com/Mudbox%20GDC%202008.pdf

:+1:

Thanx dude!

Too bad i hear bout technique how do do it AFTER finding one myself lol!
Its Maya anyways…

That “Alpha painter custom-wrinkle-tool” thing they use in the pdf looks cool.
Right now my setup uses composite maps wich has an alpha slot for each map, maybe i can use that.
Only thing is that right now, when i set map blending chanels to “HUE”, everything looks to blend nicely. Not sure how it works tho, but it works!

Next step i’ll try iamore reliable/basic setup with isolated deformations to created different expressions, it ill be easier to see how it works with displacement blending.

One thing for sure, that technique will change my mid-res facial expression workflow forever :smiley:

Hello Penicio,

I just wanted to encourage you to keep going, this is looking great.
The use of animated/blended normal/displacement maps is an essential (albeit not often talked about) face setup technique.

Look into driving the alpha or the map blending with a direct connection, math node or expression (instead of the joystick plugin).

As that Naughty Dog (they are awesome!) PDF talks about, to avoid all points moving at the same time (one of the problems of blending) try and define areas that are allowed to blend for each target (like a painted alpha channel) that way you can better isolate what moves and when.

Choosing what technique to use, or even combining all of them together (influence driven rigs, blendShapes, and target driven wrinkle/displacement maps) allows for a lot of flexibility when creating a facial setup!

Cheers,
Keridan

Hey thanx again Keridan!

I’ve done a search for " “wrinkle map”+3ds+max " and found nothing substantial :confused:
I wish a simpler tool would do it, but right now my setup kinda works.
I don’t think i need to use alpha’s (but i still have the possibility to do so since i use composite material).

If you guyz want, you could give me some shapes to do that would create a potential blending problem and i would sculpt/render/post the results!

penicio can u pls help me? i was trying that but i lost at point 11, could u make some images or video pls? thx
Martin

ok, lets try it anotheway,
i was tryign the long way with manpulator/reacton manager, but some steps r a litter comfusing. Can u pls make some pictures or vidio from steps 11 to the end? thx
Martin

Im kinda drunk right now, maybe i should just not post… But DHRogus, what part you dont understand at par 11?

11= I selected the main mesh, the one with morpher modifer.
I assigned it a Fast SSS + Displace material.
I select the SSS Material in material editor, press the Displacement button, Select the Extrusion map button, select “Bitmap”, browse and apply the NeutralExpression.tif (Displacementmap for the neutral expression).

dang, maybe its harder to explain then i thought!
Maybe tell me more specificly what you don’t understand, what doesn’t works, i should be able to help.

I’m about to need to do something similar here. Only I’ll be using maya and mudbox. so here are my thoughts at the moment, although I haven’t actually done this yet (but I have some experience with facial setups):

my setup is based on AUs (facial action units, see FACS) which means I’m not building full expressions, but AUs, like lips pucker, brows raise, etc. so the displacement needs to add only localized corrections, and I intend to sculpt the on separate layers. like a base layer for the main sculpt, and then a corrective layer for each expression. so I pose the expression in maya, with the facial setup, and the export the obj, add the default displacement, sculpt a separate layer for that AU. disable the base displacement, export corrective texture. (so I don’t know if I’m overloking something and don’t know if this will work ok. maybe the difference between the base mesh and the new obj can be a problem… logically, sais I… it shouldn’t be)

now, the thing is, what to do with the resultant textures. in maya I make a network with the base texture and Add (I think what needs to be done is a simple math addition operation, but I could be wrong…) each layer, and then connect or SDK it to each AU of the facial setup.

also, things can differ depending on your setup, like on an Aardman character you’d probably have full mouth and full eyes expressions instead of AUs… different setups need different approaches… but this is the workflow I’m planning for my setup. I’ll let you know how it goes and if things work as planned…

Hey great stuff!

I just found this after struggling the whole weekend with displacements. (even posted a help cry in the forum just now)

Basically I need to do the same but with a flexible sofa. I figured the blending and reaction would work BUT fail to create perfectly accurate displacement maps.

Could you please elaborate there?

Which version of Zbrush and Max are you using?
What are the settings you used for creating the displacements?
And how about the displacement amount etc. when in max?
Are you subdividing the mesh in max with TurboSmooth/MeshSmooth or how did you set up the displacement?
How did you make sure the result in max is exactly the same as in Zbrush?

I’d be super thankful if you could answer these question since your animation is exactly what I need to do right now!