Realistic Character Workflow
At the end of the previous chapter we had all shapes exported and baked. This chapter will focus on what to do when changes need to be made. Feedback and iteration will can sometimes be easy or quite destructive, depending on the workflow up to this point.
Iterating is guaranteed to happen. Here's a setup on how to do this more reliably.
You could apply the corrective shape keys and displacement maps directly on a WIP character rig and shading to see the result. But what would be faster is to just set up a preview object and material.
This is purely just to check the look of the shape keys, displacement maps and bump maps combined. I recommend to set up a list of custom properties somewhere which can then drive the shape key sliders. You can drive the factor sliders for mixing the displacement maps in geoemtry nodes and shader nodes as well. This way you can easily see and judge the results, even in realtime on a low enough resolution.
You can also slide the factor of the displacement and shading of shape maps without the influence of the shape keys. This way you can more accurately see the displacements applied the surfaces while in a resting pose.
Especially for the clothing shapes this can be very useful to spot swimming wrinkles and any other errors that should be re-sculpted and re-baked.
One great opportunity that we have here is that shape keys are much faster to slide than with sculpt layers.
To make broad base level changes this is ideal. Just add more shape keys for any changes and sculpt on them in Eevee. The Preview Environment mentioned above gives a good responsive object to sculpt one, if the subdiv modifier is turned off or on level 1. Set up drivers to slide multiple shape keys at once.
You can also make additional annotations on the model. If they are in the same place as sculpted high resolution source, these can also be used for the sculpt layers.
Any of these changes are great. But it's vital that changes between the preview model and the original sculpt are kept in sync.
Bringing base level changes that were done to the preview objects back to sculpt layers can lead to corruption of the sculpt layers if not done exactly right! Follow the steps carefully and double check the result on all subdivision levels.
This example outlines how to sync the changes to a single Shape from the preview object back to a single sculpt layer:
This leaves us with the clean base mesh of the changed shape.
This level of subdivision was used for baking the shapes in this case.
Now the corrected shape and duplicate of original sculpt have the same refitted base.
Shiftselect the duplicate high res and use "Join as Shapes" and set the new shape key to 1
You can find this in the popover menu next to the shape keys. Now the corrected changes are added to the original sculpted shape.
Shiftselect the original sculpt on level 1 and use "Reshape"
Now the new shape with its details are applied on the original sculpted object.
Then repeat this process for any shape that has been changed. This is a slow workflow but is still more time efficient than sculpting all adjustments directly on the sculpt layers with no real-time sliding of layers.
This should in theory be easy to do. Any shapes or sculpt layers are additive, so if the base proportions or details are changed, they will propagate to all other layers and shape keys as well.
This might include some re-sculpting or adjusting of skin detail layers or certain shapes. But this is to be expected. Just go over all of them and see if they still work. This can even be done in the baked preview environment.
In the case of the clothing shapes this might be way more difficult because the shapes usually involve rotation. If a tangent space sculpting workflow hasn't been used this will be tricky.
In that case here's a workaround to update the shapes with a new base sculpt:
First we'll have to do some preparation:
The following steps are applied for a single rotational sculpt layer. First we have to remove the rotational base level changes from the sculpt layer, so only the tangent space subdivision detail remains:
This will override the current shape with the sculpt layer result, even though they still roughly align.
Now the sculpt layer subdiv details have been aligned with default shape. This can now be saved as a new sculpt layer!
This will have transferred the shape completely. Then save the result as a new sculpt layer called "
original name + Tangent"
We couldn't have saved the sculpt layer without duplicating the object, because we needed the combined result of all the sculpt layers as a new single sculpt layer. Even though this can be done in the sculpt layers addon UI, the workflow above is the fastest way to do it.
But we're not done! Now we have the tangent space multires details of the sculpt layer isolated. But we still need to combine this with the changes that have been done to the default. Then we add the rotational base changes back.
original name+ Tangent" to 1
Now the details and base changes of both are added together.
Now the base rotation of the original sculpt layer is restored.
original name+ New"
This will give the original rotational sculpt layer with the default adjustments applied along the tangent space normals. From here fix any remaining issues in multires sculpting to get the final result.
Repeat this process for every rotational sculpt layer you have. Of course this is quite a long process, but with a bit of scripting this can be automated to save time.
There will be moments when the UV map needs to be adjusted, even though the texture maps have already been baked and painted. This happened multiple times during the Project Heist production.
While baked maps can easily be re-baked, another way to solve this in some cases, especially for painted images, is to bake the texture from one UV map to another.
You need to have both the old and the new UV map on your object. The current image texture will use the old UV map as an input.
Add a new image texture to the material and input the new UV map to this one. If you set this texture node to be active, and plug the old texture directly into the surface output, you can bake the old texture to the new one.
Just make sure that the bake type is set to "Emit".
This issue can use a similar solution than re-baking images to new UV maps.
By creating a duplicated UV map and using this for the baked details, you can use the UV sculpting tools in the UV editor to slide the details onto the topology seams.
Afterwards you need to bake this texture to the original UV map to wrap up the changes.
Another more direct way is to adjust the sculpted details on the high resolution source object.
For this you can assign face sets to visualize where the seam would be. Then use the Multires Displacement Smear brush to slide the details onto the seam.
Just make sure that you export a new base level baking target from this updated sculpt, to make sure the seam edges truly align for baking.
This is definitely the most severe change that can happen. And in the Project Heist it did.
Since all sculpt layers are stored on attributes that heavily depend on a consistent vertex order and count, any change to the topology will corrupt all layers. Rebasing the sculpt via the Multires modifier is also no longer an option if the base topology layout has changed.
The only option left is to do manual re-projection for every sculpt layer, which is a laborious task. So make sure to edit the topology layout as few times as possible, if ever.
The first step is to save the original sculpt for safe keeping. Then enable a single sculpt layer on the object, set the needed subdivision level for that layer (Shapes would be 3. Skin detail would be 5/6), and duplicate the object. Repeat this process for every sculpt layer you want to preserve.
The new object with the updated retopology first needs to regain all of the shape keys. With the changed topology these cannot be simply joined with the new object anymore. Instead we'll use the "Surface Deform" modifier to make the new topology 'stick' to the old shape keys.
The surface deform modifier isn't perfect at detecting which vertex should stick to which surface. So we'll start by recreating the "Explode" shape key, which will aid us a lot here. Bind the new topology to the old one and slide the explode shape key to a factor of 1.0. Then apply the modifier as a shape key. The result won't be perfect but spend a bit of time to correct the wrong vertex positions in edit mode.
Then repeat this workflow for every shape key, starting from the explode shape key, to avoid intersections and get better results. In the end you'll have restored all original shape keys for the new topology.
For restoring the sculpt layers, select the new object with the updated topology and add a multires modifier with 3 subdivisions. From here you need to re-project the old sculpt layer objects onto the new object with shrinkwrap modifiers. The "Project" wrap method works best here. Once you've applied a shrinkwrap modifier, save the result as a new sculpt layer.
Once all of the shapes are re-projected, subdivide the multires further to the same level as the skin detail layers and re-project them as well. There will still be many small re-projection errors and artifacts on most sculpt layers. To fix them you can use "Create Modified Layer" in the sculpt layers UI to adjust the layer directly and erase masked areas. An alternative approach would be to disable all sculpt layers except for the one you adjust and use the "Multires Displacement Eraser" brush to erase any artifacts and errors. Or use the smooth brush to smooth them out.
Tip: "Use the Expand operator with `Shift A` and press `2` to expand a mask along the topology. This is great to mask of and then smooth spikes in the multires subdivisions. At certain resolutions the expand operator will be extremely slow, so make sure to hide large portions of the object in sculpt mode. This will severely improve the performance and loading times."
It's vital that any artifacts and errors are fixed on the highest subdivision level! Otherwise artifacts will just reappear when switching modes or levels.
In the end you will have all sculpt layers re-projected and cleaned up. Just make sure to re-bake any textures and re-export any shape keys to sync up any small changes that were unavoidable.