How to create proper wrinkle maps?


Hey there,

I´m considering the use of wrinkle maps for my upcoming short film about Tardigrades (links in my signature).
But I´m not sure how to create them properly…

My guess would be:

  1. Export basemesh+base displacement layer.
  2. Rig.
    3, Pose in several poses, where I want wrinkle maps (for example between legs and body).
  3. Export poses.
  4. Import poses in Zbrush.
  5. Sculpt wrinkles for each pose separately in Zbrush.
  6. Export wrinkle maps and blend maps with base discplament in animation package.

I´m not sure though, if I maybe need a step after Number 6, where I first apply the based displacement to the posed mesh and then sculpt the wrinkles on a layer on top of that.

And i have no idea right now how to control the blending of the wrinkle maps, since rigging and animation is going to be done in Maya, while shading and rendering will be done via Alembic in 3ds Max.
Which means I won´t be able to use the rig to drive the wrinkle maps, unless i can also export the animated rig together with the mesh somehow…
Or I can just hand key the wrinkle maps in Max…



You should be able to create wrinkles like any other pose space deformation (PSD), typically when people think of a PSD they think of a corrective blend shape being activated by a rotation, an example of this would be on the elbows and knees, however PSDs can be driven by anything so you could use the translation of your eyebrow control to drive the blend shape weights.

The process should be like this:

  • Rig the character
  • Create poses in areas you want to have wrinkles
  • For every pose, duplicate and export the mesh to ZBrush
  • Sculpt the wrinkles
  • Extract the vertex difference between the sculpt and the pose and apply it to a new mesh
  • Use the new mesh as a blend shape target
  • Drive the weight of the blend shape using the translation of the control

At Axis we export information to Houdini for light and shading, sometimes when we sculpt the correctives we sculpt on a higher subdivision layer and extract a displacement map which is used in the shader. The value of the displacement is driven by some object in Maya, we can do this because Alembic allows you to export animated attributes, you should be able to do the same thing in 3ds Max.

Hope this helps.


Hey Harry,

thanks for the input!

This confirms at least the first part (who to sculpt the wrinklemaps properly).
For the second part I´m not quite sure yet how I can use that in 3DS max.
Since the animated mesh is pretty lowpoly and I modelling the topology to make it wrinkle would have been too much work, I want to drive the wrinkles through displacement maps.

AS far as I could follow you now, I would have to make sure to not just export the animated geo from Maya via alembic, but also include the control objects.
Using them I should be able to wire up a wrinkle-map setup in 3ds Max…right?


Sorry for the late response, I didn’t get any automate email that you had replied to my message.

When you cache the alembic you lose the rig, all that’s stored is the vertex animation. You can also export animated channels, so if you have a control to animate the eyebrow moving up and down then you can export the translation channel and use the value to drive a multiplier of a displacement map. So if you eyebrow control goes from 1 to -1 (1 is 100% up and -1 is 100% down) in the translate Y channel (could be another channel but Y is the world space UP direction in Maya) you can wire this into a composite texture in 3ds Max which control the displacement.

At Axis we just have an empty transform group which is used to store all the animated channels we want to export into Houdini. You would just create a new attribute on the group and connect the value from your controls to the group.


Export mesh in desired pose to ZBrush…sculpt wrinkles, generate normal map or displacement map…import into max…create a composite material with base displacement map, apply another layer which is your wrinkle map, create a mask for that layer…changing opacity value in the wrinkle map brings in desired wrinkle map… Hook up the wrinkle map to rig system (using Rig Vadar or similar)…


No problems, the problem is a bit further down the road for my project anyways…:wink:
Just wanted to get an idea early on, sculpting will be first and I´ll give your tips about the empty transform group to my rigger.

Thanks again!