Finger bone roll axis incorrect


https://forum.reallusion.com/Topic488474.aspx
Print Topic | Close Window

By dan_422114 - 3 Years Ago
Contractor has delivered some models where the finger axis are wrong.

https://forum.reallusion.com/uploads/images/24feb682-43d7-42e7-a5ec-f054.png

I suspect this is a result of several round trips with zbrush and the bind pose changing along the way, then CC recalculating the axis incorrectly.

There is no option to adjust the bone's roll in "Adjust bones"

https://forum.reallusion.com/uploads/images/4405032a-b618-47f3-9831-3984.png

Any ideas how I can fix this?

Thanks
By 4u2ges - 3 Years Ago
That is correct, no need to fix it. In CC bones rotation is Local and is not relevant to Global axis direction.
(that is true for any character, not only yours)

By dan_422114 - 3 Years Ago
Playing the same animation on both my model and the default model gets different finger orientations (look at the finger nails):

https://forum.reallusion.com/uploads/images/0c96e009-5c16-44cb-bffc-d0e1.png


When the model hits unreal the local axis of the finger is incorrect. It should be closer to my scribble on the right based on the pose of the finger.

https://forum.reallusion.com/uploads/images/3ed16d1f-89bb-454c-8b7b-cc87.png


The default model has correct rotation axis in cc and in unreal

https://forum.reallusion.com/uploads/images/4d1f6e64-a979-4c9d-82fa-49ef.png





By justaviking - 3 Years Ago
It won't provide an immediate solution, but I suggest you report this as a Bug in Feedback Tracker.
Good luck.
By 4u2ges - 3 Years Ago
Ahh, OK. It was not clear from the first post what was the impact.
You may want to try to roll bones straight in Blender. You can do one side only and then use Mirroring in CC Adjust Bones to replicate to the other side.
You can also submit to FT as Justaviking suggested, but that could be a long wait with no guaranty for immediate solution.
One more suggestion is to try this: https://forum.reallusion.com/FindPost469889.aspx (it would either fix it, or distort fingers even more Smile)
By dan_422114 - 3 Years Ago
4u2ges (7/13/2021)
You may want to try to roll bones straight in Blender. You can do one side only and then use Mirroring in CC Adjust Bones to replicate to the other side.

This works, but it's a tedious step! Also I haven't managed to get the results of a roll change back into CC3, I think it recalculates the roll axis on import, or it's hiding in the fbxkey and remains broken.

I have a script in blender to rename the bones to allow mirroring, then rename them back :-)

4u2ges (7/13/2021)
Ahh, OK. It was not clear from the first post what was the impact.

I'm glad I managed to describe the problem, thanks for understanding!

justaviking (7/13/2021)
It won't provide an immediate solution, but I suggest you report this as a Bug in Feedback Tracker.
Good luck.


Thanks! https://www.reallusion.com/FeedBackTracker/Issue/Bone-axis-is-incorrect

justaviking (7/13/2021)
One more suggestion is to try this: https://forum.reallusion.com/FindPost469889.aspx (it would either fix it, or distort fingers even more Smile)


I did try that, sadly it didn't work. I also tried reposing the model in blender to match the CC3 bind pose (somewhere between a T and A), then applying that as the new bind pose, then re importing to CC3 and they were still wrong, making me think it's stored in the fbxkey over being calculated in import.


By 4u2ges - 3 Years Ago
Hmm, yes, hard to judge. But I got another idea. Try to get a "new" armature. Bake sliders (if any were tweaked in CC), then Export as OBJ  Nude in Bind Pose, Full Body.
Then load Neutral base (respective to your avatar) and apply exported OBJ as a morph slider. Try with and without Adjust Bones checked. But then again, there is an OBJ key. God only knows what it stores.
BTW I got Bind pose for CC here just in case: https://forum.reallusion.com/FindPost476255.aspx
Good Luck Smile

BTW: You can "cheat" with FBX/OBJ keys. You can export a neutral base, or any other character with "normalized" bones (which generates a key also) and then use that key to import back your character, or morphs slider.

By 4u2ges - 3 Years Ago
Hopefully this would work for you. I messed up finger bones rotation for the left hand and then replaced an armature by applying a morph to neutral base with intentional key swap:



By dan_422114 - 3 Years Ago
4u2ges (7/14/2021)
Hopefully this would work for you.

Thank you. I tried it without fixing my bind pose and sadly it didn't work, I tried with and without the adjust bones for morph. I've attached a stripped down version of the character if you want to give it a go and prove me wrong!

Thanks for the new strategy of applying as a morph though, I'm sure that'll help me out in the future.

4u2ges (7/14/2021)
I messed up finger bones rotation for the left


Out of interest, how did you mess up the rotations? I'm keen to know how they break in the first place and stay broken!

Thanks for all the help so far 4u2ges
By 4u2ges - 3 Years Ago
Out of interest, how did you mess up the rotations? I'm keen to know how they break in the first place and stay broken!


I took character to Blender with FBX, rolled one hand finger bones and imported it back to CC

BUT, I looked at your character. Apparently, it's not a problem with rolled bones (at least with the one you have attached). They are all straight in Blender.
There is a problem with badly deformed hands/fingers mesh and armature is just trying to adjust to that mesh.
There is nothing you can do with bones here. I have no idea how that happened.
Although you said there was multiple back and forth between CC and Zbrush and then someone else was working on the character.

Looks like hand and 4 fingers were rolled somehow, while thumb was static.

Two ways to fix it:
One, is to morph hands/finders straight (or work between bones edit/pose mode in Blender and then bake it). That could be a tedious and quite painful job.
Two, replace hands altogether. Which is what I did. It took me half an hour this morning to do it with this routine: https://forum.reallusion.com/FindPost482754.aspx
Incidentally I was talking about swapping hands to fix deformed nails there yesterday. Smile

But your case is a bit unique, because the character is very different from the base. I will post some screenshots later one with this case handling in the other thread.
Meantime you can have this fixed one as a sample, or dress it back and move to UE (forearm/hand is slightly different).
https://drive.google.com/file/d/13gkLz2MQLLaOWlMjBL8fM-pOynhSWTPi/view?usp=sharing

Before and after hands swap:

https://forum.reallusion.com/uploads/images/c483a05c-64aa-4006-9ed9-9738.jpg

By Rampa - 3 Years Ago
Try this to correct the fingers.

Apply a T-pose to your character.
Click the "Edit Mesh" in the Modify panel.
Click the Face tab.
Check the box for soft selection.
Click right on the end of the finger.
Adjust the soft selection so it only effects the finger you selected.
Select the rotate gizmo.
Roll it until the finger is oriented how you like.
https://forum.reallusion.com/uploads/images/83c5e8a2-7390-4a2d-942f-a592.jpg

By dan_422114 - 3 Years Ago
4u2ges (7/17/2021)
[quote]Meantime you can have this fixed one as a sample

OMW, that's amazing, thank you!

The hand replacement strategy looks really promising. I'll give that tutorial a go. Thank you so much.

4u2ges (7/17/2021)
[quote]Apparently, it's not a problem with rolled bones (at least with the one you have attached). They are all straight in Blender.


I don't know about that, in blender I see a difference. The default character's xaxis points directly away from the nail, my messed up hands don't!

https://forum.reallusion.com/uploads/images/70ca34c3-318b-4e13-9f68-2eaf.png

By 4u2ges - 3 Years Ago
Yes, sorry, I should have mentioned.
The Bind pose character came with is all wrong - it is not only fingers. At that point there was nothing could have been done to fix it, but to restore a correct T-pose (https://forum.reallusion.com/FindPost469889.aspx ).
Which is what I did first. Once that done, bones are straight, but mesh remained deformed to some degree. You know the rest Smile


By dan_422114 - 3 Years Ago
Thanks again for all the help @4u2ges and @Rampa

I created a blender script to transfer the roll, based on a vertex normal for each bone. It finds the closest vertex normal to the zaxis of the bone, then works out a fudge angle on top of that. It's working fine for my needs.

Don't judge my python https://gist.github.com/dantreble/24c46ca5f7eb61f8e51f08d6b6cf2322 !
By 4u2ges - 3 Years Ago
That's cool Dan. Might come handy one day. Thanks...