Friday, May 21, 2021

On Raw and Final Slider Values

In both DAZ Studio and in Blender morphs are controlled with sliders, but those sliders don't behave in the same way. In DAZ Studio a slider can change another slider, but the latter can also be changed independently. Something similar does not really exist in Blender; either the slider is driven by something else, and in that case it cannot be changed at all from the viewport, or the slider is not driven and cannot be modified by another slider.

However, there is a way to make sliders behave almost as they do in DAZ Studio, using an extremely clever trick devised by frequent commenter engetuduouti. This method uses two Blender properties for each DAZ slider: the "raw" value which can be manipulated in Blender, and the "final" value which reproduces the slider value in DAZ Studio. Unfortunately, understanding how these raw and final sliders work is quite unintuitive, but hopefully the present post can bring some clarity.
In order to see the final values, we must enable Show Final Morph Values in the Global Settings.We will also change the Slider Limits to Custom, which will allow us to use negative values for the raw sliders; the Final Limits should be left at DAZ.

We will consider the three standard face morphs which close the eyes. In DAZ Studio, we set Eyes Closed Left to 50%. Aiko's left eye is now half-closed.
In Blender we do the same thing (something has happened to the morph names, they should be the same as in DAZ Studio). The EyesClosedL slider is set to 0.5. However, it is the final values next to the sliders that matter for the morph; the final values show the values of the sliders in DAZ Studio. In this case the raw and final values are the same, but they will differ below.
In DAZ Studio, we now drag the Eyes Closed slider to 50%. That automatically increases the left and right sliders with 50%, to 100% and 50%, respectively. Note that in this step only the Eyes closed slider was moved.
In Blender we do the same things and increase the EyesClosed slider to 0.5. The other sliders are unchanged, at 0.5 and 0.0, respectively. However, we see that the final values to the right have been changed and agree with the slider values in DAZ Studio. Also we see that the pose is correct.
Finally we move the left and right sliders, so Aiko's left eye is fully open and her right eye is closed. So the left slider is decreased by 100% to 0%, and the right one is increased by 50% to 100%. The combined slider is not touched and remains at 50%.

Now we do the same thing in Blender. The left slider is decreased by 1.0, from 0.5 to -0.5, and the right one is increased by 0.5, from 0.0 to 0.5. The final values and the face pose are the same as in DAZ Studio, but the connection to the raw sliders is not so intuitive.

We can summarized the three steps above by the increments:

  1. Left increased 50%.
  2. Combined increased 50%.
  3. Left decreased 100%, right increased 50%.

Monday, May 17, 2021

Favorite Morphs and Easy Import

Update 2021-05-21: 

The concept has been renamed from Morph Preset to Favorite Morphs, because a morph preset denotes something completely different in DAZ Studio: a combination of morphs that give a certain expression. The names of the buttons has thus been changed to Save Favorite Morphs and Load Favorite Morphs, and the Easy Import option is called Use Favorite Morphs. 

In fact, morphs presets in the DAZ Studio sense can be saved with the Save Pose Preset, and can then be used both in DAZ Studio and in Blender.

Original post:

It is now possible to store a collection of morphs as a morph preset, which can be reused for other characters of the same type. A preset consists of any combination of standard and custom morphs for a genesis character, plus custom morphs for associated geografts and clothes.
Morph presets are normally stored in a directory specified in the global settings.
To create a morph preset, we import a character of the Genesis generation that we want to make the preset for. The character must also have any geografts and clothes that we want to include in the preset.
The buttons for saving and loading morph presets are found in the Morphs section of the Setup panel.
Select the parent rig and press Save Preset. A file selector opens up in the directory specified in the global settings. Choose a name for the preset and save the file.
Now load a different character, which however belongs to the same Genesis generation. Select the rig and press Load Morph Preset, and select the preset file that we just created. All morphs are loaded to the new character.

Morph presets are of somewhat useful by themselves, but their main use is in combination with Easy Import. Morphs must be loaded while bone names and meshes are still intact. This means that morphs must be loaded before geografts and lashes are merged with the main character mesh, and before the armature is converted to some more animator-friendly rig like MHX or Rigify. The used to limit the usefulness of Easy Import, because only standard morphs could be loaded at the right time. If we wanted to load custom morphs, the last steps had to be done manually, after the custom morphs were loaded.

With morph presets, this is no longer a limitation.
In the Easy Import options, enable Use Morph Preset. The checkboxes for standard morphs disappear, and instead a field appears were we can specify the morph preset file. The file is relative to the global morph preset directory, unless an absolute file path is specified.

We can now enable Transfer Shapekeys, Merge Geografts and Merge Lashes, knowing that these operations will be performed after all morphs have been imported. We can also choose a rig type which changes bone names like Rigify.

And now a animation-ready character is loaded with all the morphs in the morph preset.