Advice on gettting good joint deformation for game models?

rigging
max

#1

I am getting pretty good joint deformations by adjusting skin weights for individual vertices on game models, but still fall short of what I am seeing happening on released titles.

There are tools in 3D packages, but I am building for Unity. Anyone has any tools or tips to improve?

I thought about using custom blend shapes for extreme positions, but am not sure how to go about deforming the base mesh to get good results in the extreme poses…


#2

You will have to use helper joints that are driven to help fix and correct and give you deformations you are happy with.
You also have to have a good enough base model topology to allow the helpers to do their work and to have enough control over the model.


#3

Thanks for the help! Riggin Dojo is a great resource, been reading a bit over there.

I have been doing a lot of searching on the subject. I don’t think that Unity has support for set driven keys, but I think I know enough to write a script to drive helper bones within Unity.

I found this video which helped me understand the concept a bit better:
https://www.gameanim.com/2016/05/17/efficient-dynamic-skinning-low-rank-helper-bone-controllers/

I can see how for flexing a biped could be achieved with this method. Arm bends, joint in the center of the upper arm that is mapped to the biped verts moves outwards. I am still having trouble figuring out how this would work to prevent the elbow from collapsing, or deform better.

Is the workflow here to look for problem areas at extreme angles and how a helper bone would help, then wiring it up?

Do you know of any other resources on this subject? I found this Jason Parks’ site which has good info.
http://www.jason-parks.com/HelperJoints/


#4

Well Unity is working to bring real time rigging like this to the engine … BUT
How you drive them won’t matter if you don’t skin them well, in your post it is a good example of what it can do to help

A very good example (while blender is used doesn’t matter same end result) https://www.youtube.com/watch?v=VjCUwd93VYE


#5

https://docs.unity3d.com/Packages/[email protected]/manual/index.html#technical-details


#6

I might be misunderstanding something here. Can’t blend shapes be keyframe animated and exported to Unity as well? If so, one could use them for fixing weird joint deformation (after having a few passes at skinning properly ofc) that can’t get fixed with stuff like roll joints and so on.
The example of a flexing biceps specifically is something I would look at doing with a blend shape for the biceps muscle being contracted and bumped in size. Just connecting it on the node editor (if working in Maya) to be dependant on the elbow joint’s rotation.


#7

bclark - Thanks for the YouTube video, that is a great demonstration of the concept. I am playing with blend shapes right now. The helper joint rigs are complex and wiring these up in Unity by hand seems pretty challenging - although I may end up here.

Cliffman: Yes, I wanted to use blend shapes initially. I can see an advantage in doing this with bones from a memory perspective. I am still unsure how to create these blend shapes. It looks like in Unity, blend shapes get applied before skinning.

https://issuetracker.unity3d.com/issues/corrective-blend-shapes

Max has a skin morph modifier that allows you tweak vertices at problematic positions. I think I can extract the base morph from this, not sure - will play with it - or is there an easier way to accomplish this?

Thank you!