"Twist" bones wreck animations...and my life.

Seriously, this is killing me. lol. So I use Daz3d imported characters. Took forever to figure out but I got everything setup properly with the Daz to Unreal plug-in provided assets. IK, skeleton, retargeting, blah blah, all that good stuff. But retargeted (and sometime imported) animations still leave The “twist” bones a mess with a mind of there own. In Daz characters it shoulder, forearm, and thigh twist bones.

There has to be a way to fix this, right? Because trying to keyframe fix them is a **** show that usually just makes it worse, and takes forever.

Can they be locked to the angle of the main bone, or a virtual bone? Some type of change, fix, adjustment, Something, or in the long run they are basically unusable.

Please help! Thanks.

Are they leaf bones or inline twist bones?

I think prior to Genesis 9, the twist bones were inline whereas the UE skeletons use leaf twist bones.

Might have something to do with it?

Honestly I don’t, or didn’t even know there was a difference or specific types of twist bones.

I did notice a difference in hierarchy. In the UE skeleton all the twist and corrective bones are listed under the thigh and calf bones. the Daz skeleton goes straight down the line, thigh, thigh twist, shin, foot, ect…Not sure if that indicates something or not.

I’ve created virtual bones between the thigh bend and shin (for instance) and it shows how much that twist bone is out of alignment.

Yes, that difference in hierarchy is what I’m referring to.

“leaf” bones typically branch off a parent bone, but don’t have any child bones themselves.

The way I’ve dealt with it in the past was to reparent the bones in 3D Max. I’m not sure if it could be done inside Unreal.

For Daz3D characters in the AnimBP I usually use virtual bones on the upper and lower arm, so that I can use the TwoBoneIK ( used for realtime ).

I then use the Apply a Percentage of Rotation node on the l/rForearmTwist joints, using the l/rHand bone as the source, and the multiplier set to 0.75.
You do have gimbal lock if the hand rotation goes over ±180, but overall it works nicely.

I only have the foot ik set up right now, so I’ll have to look applying into the others and see what happens.

The hand shouldn’t rotate either way. You probably mean the lower arm.

@ OP
Without further details such as screenshots of what you are looking at, not even the oracle of delphi could aid…

Daz probably (actually isnt it the motion builder or whatever equivalent, which isnt daz?) Manipulates the bones based on an internal algorithm where you have no control.

At export, all the bones should be given matching tracks.
If the bones aren’t following the animation track, then your bone re-target settings are wrong.

Normally, when your animations are good and meant for the specific skeleton, you set the options of all bones to animation scaled.
The fact that in this case they should 100% match the skeleton anyway is superfluos because you could have screwed with the skeleton or have an older version, or worse. Daz could be introducing scaling into the animations…

Regarding the leaf/inline (its essentially BS) stuff.
It only matters to ragdolls.
While you do have 2 bones in a foream, they supinate against each other, they don’t flop at the mid point creating an extra joint.
So, models with more than hand>forearm>upperarm bones in the chain will flop around like noodles when you simulate physics.
The animations for them will still look correct. The problem only sussists when you do interesting stuff with physical animations…

Well animations from daz work just fine. It’s the retargeted ones that are messed up a little. The retargeter is provided via the daz to unreal plugin assets, and the ik chains are already set up. Are you suggesting something is off with the preset chain mapping?

No. But with the way the skeleton retarget settings are set up.
Probably all you have to do is set the twist bones to Animation Scaled.

Oh ok, gotcha. I’ll try flipping some switches and see what happens.

That either didn’t help or made things worse.

Here’s a pic. this is just the standard manny walk animation. I have virtual bones here, and you can see how far off the twist bones are from where they should be based on the virtual bones.

Has to be a bad retarget.
The bones shouldn’t be re-targeted to anything else other than their matching twists.
Regardless of their physical position.

You can try not retargeting them at all, then set them to skeleton instead of animation scaled to see what happens.

Note that the visual position of those bones is inconsequential.
Unreal will always draw an attached bone between the 2 joints no matter what.
This however doesn’t necessarily mean the bone will move along - unless the skeleton is actually set to link the bones, in that case it will move automatically as well.
The solution to that can be to either retarget it to the thigh and set the settings to skeleton so the translation is kept but the rotation matches the thigh bone - or to open the skeleton in a DCC and separate the bone from the shin/lower leg, making it a leaf bone.
To maintain skeletal parity it is likely better to go with the first option.
To do it right, it is likely better to use a proper skeleton…

Ps, the weight paint and bone structure on this look throughly awful.

I knew it was going to be something stupid and simple…always is.

I didn’t have the retarget IK checked. That fixed about 95% of the issue.

I don’t know what weight mapping in unreal is, and the skeleton is the standard genesis 8. so I guess blame Daz studio if it looks bad.

Pretty sure genesis 8 doesnt use joints that way since it introduced the jcm system, but whatever works.

It’s imported directly from daz using the plugin and uses the plugin provided G8 skeleton, soooo…

Well the root of the problem is Genesis 8< uses parent parent linking for the twist bones. To use nodes like 2 bone IK requires parent child linking so that the twist joint rotates with the parent and not independent to.
The simple solution is Genesis 9 which uses the parent child linking that should work with IK (have not tried yet)
The other option is to just take the G8< rig into a 3d application and change the linking order, which would require re-targeting the animation. This I have tried using Motion Build. You could do the relink in Daz Studio but once again something I’ve yet tried.
Good news the import is getting better as to being compatible with Unreal Engine, considering Daz3D was issued a developer grant to work on it, so it’s just a matter of time in my opinion.
In the mean time I would look towards G9 as it’s made clear that the new design is biased towards UE.

Ya the plugin never worked when they first released it. I just started using unreal again because it actually works now.

I did fix it another way. I just locked the twist bone movement with post processing and then linked hand, twist, and forearm bend rotation together.

Daz characters have extra bones (ThighTwist and ForearmTwist for both left and right). There are more extra bones there but these do not often show or come in the way of animations.

As for the ThighTwist and ForearmTwist bones, consider these “Animation breaker” bones for Daz characters in Unreal Engine. You should not include them in your IK Solver. If you have attached them as part of your Full Body IK Solver or other solvers, please go into the hierarchy and right-click and “Exclude selected bone from solve”.

This should now make the extra bone stiff as a brick (kinda like locking it in place).

I hope this helped.