[Diffeo] Bug Report: "Save as Pose Preset" Not Working (Solved)
Specs
Windows 10 64-bit
Daz Studio 4.15.0.2 (64-bit)
Blender 2.93.3
Issue
The 1.6.0 stable version of Diffeo does not save pose presets properly. I downloaded it from the appropriate Dropbox link a few days ago, so it's current.
First, I saved a T-posed dev load of the Genesis 8 Male out using the Diffeo bridge and then imported it into Blender via the Easy Daz option. None of the settings were changed except for selecting "Rigify" as the rig type. Then, I posed my figure with IK and used the FK -> IK option on the posed limbs. I didn't touch any of the other Diffeo options. After that, I saved the pose preset out and loaded it into the Daz scene I already had open, with the figure I exported out. Using the Merge option, I applied the pose to the figure.
Most of the pose loaded properly, but the spine rotations did not. They have no rotation values, in either Daz or the pose file.
Incidentially, the Torso section's "hips" and "chest" default to Quaternion while the rest default to YZX Euler. I speculate the Quaternion rotations aren't being converted and/or saved out properly. I did attempt to change them to YZX Euler manually, but it had no effect. The pose loaded without any spinal rotation, same as before.
Scene
I have included a Pose Preset duf. It has been edited to remove PII from the "asset_info" field.
Comments
Save Pose Preset saves the local rotations of the spine bones. However, Rigify is quite far removed from a straightforward FK rig, and poses the spine without rotating the spine_fk bones on the Torso (Tweak) layer. Instead the chest bone on the Torso layer controls the spine rotation, but the chest bone is not part of the original daz armature so is not saved in the pose preset. Hence you have to bake the chest rotation to the spine_fk bones. There doesn't seem to be a tool for that, so I made one. It is called Bake Pose To FK Rig and is located just above the Save Pose Preset button. This tool also bakes finger rotations, but it does not snap the FK arms and legs, because that is a more complex operation.
Hence you have to bake the pose before saving it as a preset, in addition to snapping the FK arms and legs. The pictures show a pose before and after baking.
The new tool only works with single poses so far. I will try to add support for animations tomorrow.
I guess the "bake action" tool should do the same. Didn't try.
https://docs.blender.org/manual/en/latest/animation/actions.html
Doesn't look like Blender's built-in Bake Action works. I made a simple action only moving the chest bone, and then baked the action with only the spine_fk bones selected. Nothing moved afterwards.
@ThomasLarsson
Hmm, I see. I didn't think the Torso layer was IK, since it didn't have a Snap FK->IK option. In that case, may I recommend you include a button for the "Bake Pose to FK" option in the Diffeo-specific Rigify options, above the layers panel? I think that would make more sense, since that's where the FK->IK button is already, for vanilla Rigify.
That said, I don't see an option for "Bake Pose to FK". I assume this is in the latest development build?
@ThomasLarsson
@Padone
I tried out the development build and the Bake Pose button mostly works. I did notice an issue where the spinal bones in Daz all get the exact same Y Rotation value of -0.21, rather than the Spine (Tweak) value from Blender. See the images and pose preset below.
I think you will have to live with that difference. Rigify is intended for hand animation in Blender, and has a lot of bells and whistles not present in the Genesis rigs. Something will always be lost in translation. If the difference is important, you could load the pose to the same character with the original Genesis rig, tweak the pose and save the pose preset again.
@ThomasLarsson As for bake not working, there was a bug in 2.92 that's fixed in 2.93, so if you use 2.92 it doesn't work fine. Also you may need to disable the diffeomorphic plugin to play the baked animation otherwise the plugin may take control, that is, first bake then disable the plugin then play the animation.
https://bitbucket.org/Diffeomorphic/import_daz/issues/527/mhx-rig-major-baking-issue-with-blender
https://bitbucket.org/Diffeomorphic/import_daz/issues/545/save-pose-preset-doesnt-work
@margrave As for the best way to animate in blender then export to daz, I'd suggest to use the simple ik rig, that's using the original daz bones with basic ik added. This way your animations will always match perfectly. That is, there's no need to retarget.
https://diffeomorphic.blogspot.com/p/rigging-section-version-16.html
That's an option, but unfortunately the "bells and whistles" ThomasLarsson mentioned are a big reason why I want to use Rigify. Still, it'll probably work if I don't require anything fancy, thanks.