Daz Studio Tutorial: Muddy Skin


Daz Studio Tutorial: Muddy Skin

Intro

So I have been using Daz Studio for a few years. You can see many of the works that have resulted from that in the galleries here at TGS. Now I would like to share some of the knowledge I have aquired with others who might find it useful on their journey with 3D art. This tutorial is specifically about how I get mud onto the skin of characters in my scenes. It is an interesting topic because there are oh so many ways to do it. So, here is mine.

Prequisites

Scene hierarchy with character container group

Before I get started on the mud, you should understand that whenever I create a series of images, I like to keep the whole series in one Daz Studio scene file. This has some implications for my workflow and also how I get the mud on people’s skins. One prequisite is of course some shader or material for the mud. That material is not applied directly to your figure but rather to a geoshell or a duplicate of your figure that serves a similar purpose. If you do not yet have such a shader or if you want to try mine instead, you can download it here. My shader is purely procedural and should work on any figure. You can use it on the quicksand pit, too.

For this tutorial I have prepared a simple scene with Amy and I have already posed Amy in a number of frames as she enters the bog and sinks deeper. I like to increase the frame numbers in steps of 10, so I can later on easily insert another story frame in between if I feel like it and keep things in sequence. I know that you can also move keyframes around in DS, but in my experience that feature is simply way too buggy to rely on. Anyway, this scene only contains the objects relevant for this tutorial:

  • the posed figure (inside a container group which I use to move the figure around in the scene)
  • a plane primitive for the bog’s surface

Getting muddy

Duplicating nodes in Daz Studio

The character is already positioned and posed in several frames along the timeline. In frame 30 things get interesting because here Amy first comes into contact with the mud. What I do here is create a duplicate of the figure (without hierarchy).

Naming the mud figure

This figure will become the mud on her skin. Technically it is also a figure that can be posed and all that, but it will only serve the purpose of covering the original figure in mud. That is why I will refer to this type of figure as “mud figure”. And because I intend to use this mud figure in frame XX I name it mud_on_amy_X.

Now I hide the original figure because I do not want to accidently make any changes to that as I begin to edit the mud figure. I select the mud figure and then I apply the mud shader to it. And by that I mean I apply it to all its surfaces. There are however some surface you typically would not want to cover in mud such as eyes and teeth. So I select these and set their cutout opacity to zero.

Hiding surfaces by setting CutOut opacity to 0

So now only the skin and nails should be visible on this mud figure. Now, to control exactly which parts of the original figure are covered in mud and which are not I want to modify the geometry of the mud figure. I want to either raise the geometry above the skin of the original to make it visible or lower it underneath the figure’s skin where it will not be seen. And in order to do that I add a push modifier to the mud figure. The push modifier allows us to displace geometry along the surface normal.

Creating the push modifier on the mud figure

Creating the weight map

For the push modifier to have any effect, I need to add a map and define by how much it will push the geometry and how far.

First, in order to hide the mud I create a map named “down” and assign a value of “-0.2”. So the mud figure is now hidden 2mm underneath the skin of the original figure. In order to bring the mud back up I add another map named “up” with value “0.3”. Now the entire figure would again be covered in mud. One map lowers the geometry down by -0.2, the other raises it by 0.3, so it should be 0.1 above the skin. The interesting part is however that these maps can be edited, meaning you can control to which degree they are applied to which parts of the figure. Initially I want most of the skin to be clear of any mud, so I select the entire geometry of the “up” map …

Selection of the figure geometry via the burger menu

…and set it to zero, meaning it is not applied to any part of the figure.

Zero the entire up map

Then I begin editing the map with the Node Weight Map Brush tool. I do this directly inside the viewport and apply the mud to all the parts of Amy (or rather her mud figure copy) that are beneath the bog surface plane. Maybe some bits above as well where I want some specks of mud on her skin.

Editing the weight map underneath the surface

Editing the weight map above the surface

The color of the figure while using this tool indicates the value of the map you are editing. Gray (the default color of the shader in the viewport) is zero, slightly above zero is yellow, then blue and as you get closer to 1, it turns red. So in the red areas the “up” map is fully applied and that is where the mud is visible on the skin. I make the original figure visible again to check the mud on the skin.

Iray render showing some mud on Amy

The mud cover in the actual render may be slightly different if you are using a different SubD value than in the viewport, but it should not change by much.

Beyond the first frame

You only see this with AniVis installed

Here I will explain how I usually move on to the other frames in the series where I typically want more and more skin to be covered by mud. If this is not so in your series, then your quicksand might be broken. ;) I use AniVis and I use it a lot. That plugin is a bit dated, but it is also free and still works fine for me with the current version of Daz Studio (4.14). What this plugin does is that it let’s you animate the visibility of objects in your renders (attribute Visible in Render). At this point I disable the “Visible in Render” property of the mud_on_amy_030 figure and apply the Anivis property.

Then I copy the figure (including the hierarchy) and name that copy mud_on_amy_040, as 40 is the frame in which I want to apply it.

Copy the hierarchy to keep the push modifier

In frame 30 I turn on “Visible in Render” for mud_on_amy_030, I make sure it is turned off for mud_on_amy_040. In frame 40 I make sure it is the other way around (turned on for mud_on_amy_040 and off for mud_on_amy_030). The copy of the mud figure also has a copy of the push modifier and the “up” and “down” maps (as well as the AniVis property applied). So now I only need to edit the “up” map of the new copy and make Amy muddier as suits her new depth.

Moving on to frame 40. Making sure to get the Visible in Render property set right.

This process of copying and editing is necessary because these maps cannot be animated (at least as far as I know). As I proceed to frame 50, I will copy the mud_on_amy_040 object and then repeat the process. That way I always have the mud coverage from the previous frame as a starting point and add more and more until I reach the end of the series or the point from the figure is fully covered. here

Editing the the map for frame 40 underneath the surface

Editing the the map for frame 40 above the surface

Render of frame 40

Copying the main figure

Pasting the main figure's pose onto the mud figure

You can of course have the same mud figure visible in several frames if you have no need to change it. Maybe your character did not sink deeper or is rescued at some point. But I do highly recommend that you only have exactly one mud figure visible in the render. You might think that leaving the figure from a previous frame visible does not alter the result and you might be right… or not. The mud shader can have transparency, so having several overlapping mud figures present will make the mud look more opaque. But even if your mud is totally opaque anyway, there is another issue. When you make adjustments to the original figure’s pose, the mud figure copy will not automatically follow. There is probably some way to achieve this (but I have not figured it out yet). So, what I currently do is copy the original figure and then paste the new pose onto the mud figure.

If you have more than one mud figure visible in the frame, you will need to paste the new pose to ALL of them. This can very easily become a very tedious and error prone process. If there is only one of them visible in any given frame, you do not have to mind the others.

You can repeat those steps and get all parts of the body properly covered. If any part re-emerges in a later frame, it will be covered in mud.

The issue with fingernails

There is one problem though. The method of using push modifier weight maps in both directions is not perfect. It is close enough on most parts of the figure to not be a problem, but it does cause some visible issues with the geometry of those fingernails (and toe nails, but somehow those do not appear to be a problem as frequently).

Fingernails without special adjustments (render)

Fingernails without special adjustments (viewport)

The way I solve this is by editing the “up” and “down” maps of the finger tips and nails with the Node Weight Map Brush. At first I reduce both maps to zero in and around the fingernails. This basically makes the fingers of the mud figure geometry overlap like it initially did before we had any push modifier.

Fingernails back to normal with push modifier zeroed on them

Now I carefully increase the values in the “up” map just enough to cover the finger in mud again but without causing visible artifacts.

Carefully applying up modifier to get nails covered again

Fingernails now properly covered in render

Total mud coverage

So I have repeated this process for all frames in the sequence in which Amy's skin is NOT completely covered in mud (up to frame 180). In frame 190 she is completely covered and I do something different here. I create I geoshell for the figure.

Creating a geometry shell to cover the whole figure

Just as with the mud figures I apply the mud shader to all surfaces and then set the CutOut Opacity to zero for eyes, teeth etc. The geoshell performs a similar function as the mud figure with a few differences that are important to understand. The disadvantage here is that push modifiers and weight maps cannot be applied to a geoshell, so you cannot hide part of its geometry underneath the main figure’s skin. That is why I typically only use them when the figure’s skin is covered completely. There are two advantages to using a geoshell:

  • It will automatically follow the figure, so pose changes and even animations are fine and will not cause any extra work.
  • Geoshells work fine on finger nails (and toe nails). No manual adjustments needed.

Mud on clothes

Sometimes you also need to get clothes muddy. A simple way to do this is by creating a geoshell for the wardrobe item and apply a mud shader to it. Like with the figure this covers the entire object. If a wordrobe item has multiple surfaces you can (same as with the figure) set the CutOut Opacity to zero for surface you do not want to have covered. In the sample scene the bikini top has two surface, the strap and the bra. The geoshell is only visible on the bra (which is now white so you can see the difference more clearly).

Geoshell over bikini top with mud shader applied

Geoshell over bikini render with just the bra surface covered

Like with the figure you may however want to have more cnotrol over which parts of the surface are covered in mud. The approach of copying and using push modifiers may work on some clothing items, but more often than not I found that to be problematic with the geometry of wardrobe items. For tight-fitting clothes such as this bikini I prefer to expand the mud figure’s geometry even more to cover the clothes as well. For this I add another weight map to the already present push modifier.

Created the new weight map and set the value to 0.5 to get the bikini covered

Editing that new weight map

I named it cover_bikini and set the value just high enough to cover the entire bra. Then I again select the entire geometry of the mud figure and set this new map to zero. Afterwards I edit it with the node weight map brush to get it to cover only the parts that I want it to.

Rendered partially covered bra

So I get the clothes covered without the need of copying more objects here. But it comes at the disadvantage that I cannot use different shader settings for the mud on the clothes. All these methods do not account for how various types of fabric actually interact with mud and especially the moisture in it. So this is certainly not the most sophisticated way of getting clothes muddy, but it has worked well enough for me so far.

Muddy hair

Applied the mud shader to the hair

There are various types of hair and the geometry can be quite different, so I will again propose several techniques I have tried. However it is up to you to experiments and figure out which one works best in your specific scene with the hair product(s) you use. Generally hair products do not model the geometry of each and every individual hair. That would be much to complex. Instead they typically fake individual hairs in the textures with some transparency in between. There is still plenty of geometry in many of these products, but the amount remains manageable.

The simplest thing you can do to make it muddy is to apply the muddy shader to the hair (or rather a copy of the hair which you can then swap out with the original one using AniVis). With an opaque shader the actual geometry becomes much more apparent. The results may be anything from ok to odd to really bad.

Geoshell with default Offset (0.01 I think). Don't ask me why there are some blonde tips visible.

Another option is again, the use of a geoshell. The results may be very similar to what you get by simply replacing the shader. But in any case it does give you some additional options such as experimenting with hte Offset Distance parameter and with opacity.

Using a geometry shell with Offset 0.5

Using a geometry shell with Offset 1.0 makes it look like there is a lot more mud clinging to that hair. And also a bit weird.

The copy and push modifier can be attempted, but the results may not be what you expect. The advantage of this method to be able to hide the mud underneath the geometry of the original object does not work always so well with hair products. Often their geometry does not even have a volume (just stripes of 2D polygons). But if you just want a little of the original hair color to shimmer through in some spots it might do the trick for you.

Copied the hair + mud shader applied + push modifier to reveal a bit of blonde hair.

Issues and Shortcomings

My way of doing things is certainly not perfect. Here are some issues I have observed so far:

Limited control of mud coverage

It is not be possible to create tiny specks on mud on any part of a figure. You are modifying geometry and therefore reliant on the density of polygons of the Genesis 8 (or whichever version you use) figure.

Under the skin is not invisible

So I have been pretending that you could simply hide the mud figure geometry underneath the main figure's skin, but that is not quite accurate. At least not if you are using Iray. On the Genesis 8 figure the skin is not perfectly opaque and sub surface scattering is used to simulate how light behaves underneath. So an object underneath the skin can affect the render especially if it is very close. Before I noticed this, I used a down push modifier of -0.1. I now use -0.2 instead for figures with bright skin like Amy's, where I have observed this to actually make a slight difference regarding the skin tone.

Uniform coverage

I use a procedural shader without a texture image. You do not have to do that, but this tutorial is built on the idea that you have one universal mud shader that you apply to the entire figure. So you do not have variations of the shader itself dependent on how the mud got on the skin or what other interaction took place. There are no smears. No drips. That and other behaviors of mud are not accounted for when you use one shader on the entire figure.

Geometry distortion

This is about the fingernails. So far I have not seen this become a problem on other parts of my figures, but it might be, depending on what you are working with.

Varying success with clothes and hair

While I like the results I get with skin (which is what this article is mainly about), there is definitely room for improvement for finding better ways to cover hair and clothes. Aside from the shader issues already mentioned above, I have not even mentioned dForce up to this point. Wet hair and fabric is usually heavier and clingier and those aspects should go into the simulation - something I have avoided dealing with myself so far.

Pose copy and paste

The mud figure does not follow the pose of the original like eg. a clothing item would. I have tried to get it to do that but so far my attempts failed with some warped geometry. I still believe it is possible, I just have not figure out how exactly. Doing some copy and paste from figure to mud figure might be a minor nuisance or a real problem. Especially if you aim for a complex animation project, this is likely something you would have to tackle.

Scene size

You may not even notice at first, but as your project grows and you create more mud figure copies, the scene will increase in size. This affects load times and memory requirements. It should however not have much of an effect on rendering (if you hide redundant mud figures like I told you to do).

Conclusion

I like to keep things inside Daz Studio and the methods described above never require me to switch to another program. Yes, there are limitations to that. And yes, a scene could become so much more realistic if the artist would go through all the troubles of creating custom mud textures just for it. But everyone's time is precious and there are always trade-offs. Anyway, I hope this article will be of some use to others who like to get their Daz figures covered in mud or other substances. Even though I have been using these methods for a while now, there are always improvements to discover and I still learn new things with every project I do. Maybe I will update the article someday to reflect what I have learned. And of course, I am interested to hear about your experiences as well. Especially if you have figured out a much quicker way to get much better results than I do. ;)