Diffeomorphic - Animation not quite the same in Blender and DAZ
James
Posts: 1,073
When I made simple animation, the result in blender and daz looks fine.
But soon the pose become complex, the animation has discrepancies. There are misses of bones rotation here and there.
How can I make sure it will the same?
I'm not sure is it because the complexity of the pose, or due to the use of poles and extra IKs like spine and fingers
Comments
A daz pose is FK, while we use a IK rig in blender. When exporting IK to FK some features can't be exported, for example stretchy limbs will not work in FK, also IK and FK limits are different. The best you can do is disable the extra IK chains and stretchy limbs in MHX, then also disable limits in daz studio.
I've transferred IK to FK,
disabled strechy limb in mHX,
disabled limits in daz.
disabled limits in blender
I'm not using extra IK chain,
use pole, to have no problem when snapping ik fk
bake ik to fk rig
But still the same problem.
Hi is this a G8 or G9 figure in daz studio?
g9
@James
While I do not use Diffeo to send Blender animation back to Daz studio ( never found it reliable)
I do work with applying external animation data to G9 from outside sources.
such as Mixamo, Iclone and Endorphin
My experience has been that you do not have to perform any turning off of limits or unlocking of bones etc. with G9 as we have to with G8 before applying external animation data.
But as Padone mentioned ,Any animation using Blender IK system will not transfer
to Daz studio with 100% accuracy because baked IK to FK position data does not transfer well into Daz studio
IMHO Particulary as Daz .duf "pose" files coming from an MHX control rig going to a base FK skeleton in Daz studio
Even the old BVH FK format handles this better as my BVH files from Iclone are flawless in Daz studio.
MHX still has some differences with the daz rig so some poses may not be exactly the same. If you need absolute precision then you can try the simple IK rig which uses the exact daz rig as base, or you can try the "keep daz rig" option for MHX or rigify.
https://bitbucket.org/Diffeomorphic/import_daz/wiki/Setup/Rigging
Simple IK has the same problem too.
This rig is the most match bones rig to DAZ, right?
I've baked all the bones.
I couldn't reproduce the issue you have if the figure you used is a G9 Base. If it's a customized figure, make sure the figure in DS has been correctly rigged and / or adjusted to shape first of all...
It's a customized figure.
What I meant by customized is the DAZ store figures.
It should be correctly rigged, right?
Hemm, I wonder if trying to animate starting from a certain imported pose in Blender causing the problem.
update:
Nope, still the same.
even using a g9 base.
For complex issues it is better to open a discussion at bitbucket, where you can provide the exact steps to reproduce the bug and a test scene to try. Be sure to update to the development version, so you get the latest fixes.
https://bitbucket.org/Diffeomorphic/import_daz/issues
themysteryisthepoint person was working on method for accurately transfering animation between blender/daz but not sure if progression stalled on that.
Could differences in JCMs between blender and daz could cause difference in alignments?
@Padone
The Issue is submitted
@crosswind
I always get the problem. Tried many times.
Example:
Simple IK
https://www.youtube.com/shorts/uf0ub0O-8l4
MHX
https://youtube.com/shorts/LxRM-nmDFoU?feature=share
Ok, I figured out something
Simple IK rig can't use Bake Pose to FK Rig
It works perhaps only for MHX Rig.
So in Simple IK, there's no easy way to do work with the rig.
For each IK pose, I have to snap to FK pose to make a keyframe.
So In the process I have to go back and forth IK FK for keyframing.
Then at the end I have to snap FK all.
Afterward do Object > Animation > Bake Action
to bake all FK bones.
But the process of snapping IK FK is still a problem in Diffeo, I think worsening on the last update.
I got this funny result as the consequence of snapping back and forth.
https://prnt.sc/wEg3SDUYbrPu
It would be very hard for me to work with Simple IK (using G9)
-------------------------
MHX Rig,
In the last update, now the poles don't help keeping the snapping in place anymore.
Hemmm for what particular reason, the same pose preset
applied to 3 different figures, resulting 3 different posing variants?
https://prnt.sc/7AHZ4VHBZcrG
Because proper, RELIABLE animation retargeting requires complete rig characterization profiles to be established in the animation application that is doing the retargeting.
Like iclone, Daz studio is a specific character ecosystem that also has various sub sets of specific characters within it G1,2,3,8,9.
I use both Autodesk Maya and Reallusion Iclone.
To RELIABLY transfer animation data from one ecosystem to the other, there is typically a “Characterization” process via manual bone name matching or by loading an existing profile for that character rig.
This,of course excludes the various Daz studio native pose and/or animation conversion” scripts because they are stil essentially working within the Daz Character eco system and only have to account for the differences between the Daz native figure generations.
The free Blender pipeline tool ,from Reallusion, imports FBX figures from Reallusion Character creator into blender , converts them to Blender rigify rigs and has a dedicated retargeter for applying Reallusion ecosystem motion libraries to the rigify rig in blender via constraints & baking.
We all love and appreciate the incredible tool set that Diffeo brings to Blender/DS users.
However I am frankly having difficulty seeing how it is possible to get truly complex and accurate animation retargeted to a Daz genesis figure back over in Daz studio, without some manner of bone matching characterization process the way it is done in iclone,or Autodesk Maya/MOBU or even MIXAMO
Even the excellent retargeter ,in Blender’s paid Auto rig pro addon ,has built-in profiles
for most of the industry standard rigs ,including Daz Genesis
and any biped, not already in the profile list ,can be manually bone mapped and saved as new profile for that particular rig type.
(See attached pic)
And Blender and Maya both have separate dedicated Game engine character animation exporter tools to assure proper fidelity with the Character controller systems of the specific engine such as UE5 or unity.
I would be very curious to see a video sample of some really complex Character animation
(Martial Arts KATA or gymnastics)
created on an MHX or “simple IK “ Diffeo rig in blender and exported back to Daz studio
with the fidelity I get with Iclone or Mixamo to Daz studio after a proper characterization and retarget and export to bespoke BVH or FBX.
Video link ..anyone??
I don't use Simple IK but after checking the MHX video you posted, I more or less reproduced the issue... If you open the saved Pose Preset duf file with Notepad++, you'll find no animation of r_upperarm / l_upperarm rotation on X Axis, i.e. no Twist on Upper Arms.
That means even if you rotated Upper Arms with FK, Save Pose Preset function didn't save it... I'm not sure if it's a bug or sth...
For such a case with limbs Twist, I tested the way of using Keep Daz Rig when rigging to MHX and Mute Control Rig to Bake Action before saving Pose Preset with Daz Rig, it worked.
Hemmm, it seems to work up to a certain degree,
but it seems to lost its percision.
I mean, like if you animate a hand grabbing a glass, the hand might not moving exactly up to the glass.
Can you find animation data on upperarm XYZ axis in Pose Preset duf file ? If you can, further check the values esp. on Twist (X), see if they're correct.
https://prnt.sc/AlIIoBtfNqZL
What should I check it against?
The simple IK rig needs revision as noted at bitbucket. For MHX and rigify you can use the "keep daz rig" option then mute/unmute for baking. Avoid any fancy IK feature as stretchy limbs and tweak bones since that will not transfer to save pose preset, essentially daz animations are limited to bone rotations.
In Blender - Pose Mode, select upper_arm.fk.R and go to a Keyframe (e.g. last Keyframe), in Item N-Panel or Bone panel, you'll get bone Rotation Values (Quaternion rotation mode).
On this page: https://www.andre-gaschler.com/rotationconverter/ , enter WXYZ values into Quaternion fields on the left (invert X / Y axis !), then you'll get the conversion result in Euler Degrees XYZ field on the right. (-1*X / Y / Z). The values must be different from what you get in DS while selecting Right Upper Arm joint, at last Keyframe....
Then as Padone also suggested, just try the way of "Keep Daz Rig" and "Mute Control Rig" ... Then you'll get the correct value by using the above calculation method. I got it work with no problem.
I attached the calculation results with the way of MHX (ss1 ~ 2) only and the way of "Keep Daz Rig", (ss 3 ~ 5) as below.
Nor will anything involving pinning hands or feet to a stationary object while the rest of the body is moving
which effectively defeats the entire purpose of creating the animation inside blender with its IK /Fk system in the first place.
And after drilling down to that tediously granular level intervention you are still limited to fairly simple bone rotations with your “animated pose” sent back to Daz studio
Honestly it would be SOOOOOOOO much easier to just learn how to light render your Diffeo imports in Blender Cycles or even EEVEE for some things.
The problem is blender has no iray.
And dazd materials are optimized for iray.
so Renderng in Blender doesn't look as good in DAZ.
Is there a way to render Iray in Blender?
TBH, I agree with Wolf...
Ok, I've been working an animation I was aiming for.
I use MHX.
Right now, it works as expected in precision.
What I see in Blender the same in DAZ.
Let's see if there's complication in the future. (I hope not)
I hope the snapping could work better in the future, but Thomas seems has not yet able to figure out something with the G9 that causing the snapping dance.
I had the same problems round-tripping animation between Daz and Blender so in the end I just started doing renders in Blender. You know what I can't honestly tell the difference. I mean they're both great quality renders. Little things you do in a scene like your lighting setup, etc. make way more of a difference to the outcome than subtle differences in shaders. Diffeo does a pretty good job converting them over.
Edit: I should say, the main reason you might want to bring it back into Daz is it makes it really easy to switch out clothes and materials, skin, makeup, etc. All of that is a few clicks but a lot more work in Blender. Still, the rig is the rig... what can you do.
For me, I always want to bring it back into Daz because a frame that takes 25-30 seconds to render in Daz and looks perfect, would take 2.5-3 minutes a frame in Cycles and that's with lowering the bounce settings, simplifying, etcetera. That's the only reason at this point I go back and forth when I'm on a deadline. But yeah, otherwise when I can, I just stay in blender now.
@bennie If you have a RTX card be sure cycles is setup to use optix in the preferences. There shouldn't be that much difference in speed with iray. On the contrary, having cycles a better denoiser you should be able to use less iterations compared to iray, which usually requires a high iteration count to converge especially with complex shaders.
That said, I'm not in a position to compare since I still have a old 1060 card with no RTX features. That suits my needs for now so not going to change soon.
p.s. Also, of course one major benefit of cycles is that it works on amd and intel cards, while iray only works on nvidia.
I'll double check when I get back home, but I'm 95% positive I clicked optix in preferences. I'm in China right now meeting my wife's family, but I'll double check in two weeks. Yeah, with the 4090, I can get to 500 iterations in as low as 8 seconds in Daz, usually it's 15-20 seconds, whereas the same shot to get to 500 is between 2.5-3 minutes in Blender. The denoiser in Blender, if I go too low on samples, there is a lot of streaking from the denoiser not matching what it's doing frame to frame (looks like a wavey, painty effect where all the small details in things like the skin or walls are lost), but I set the daz denoiser to start at 100 iterations and it's always perfectly crisp. So I don't know. There still is a very good chance this is a user error on my end and I'm missing something, but I've watched so many tutorials, I have turbo tools and all and it's still giving me the same crisp image as I get in daz in the same amount of time. But yeah, when I get home I'll double check. Thanks, as always, for trying to help and give info, it's always very much appreciated.