Rigging problems and solutions

Anyone trying character rigging knows how wrought with weird problems it is.

If I'm going to feel confident about making tutorials I must have
some better understanding and tools to correct these problems.

That's why I've been giving one of my rigs a stress test by posing
and animating in difficult positions to force failures,
and see if I can fix and improve those failures.

Here's a classic, the tight finger curl.

 
Here's the file to play with if anyone wants to check it out.
It takes more time to name everything than anything else.

Finger Curl setup.jpg
 

Attachments

  • Finger Curl Spline Track jas.zip
    49.3 KB · Views: 124
Basically, these are exactly the reasons why I don't work with IK handles for fingers. Above all, I don't get on well with curling and there are often unnatural finger positions. For example, it is difficult to make a fist with the top and bottom finger bones parallel.
The solution with spline tracking is really interesting! I wouldn't have thought of that. This shows nicely how many possibilities and creative solutions there are in rigging!

I usually create a few finger positions in the pose tag at the beginning, like straight, relaxed, fist... Especially a relaxed hand should be made right at the beginning.

I thought it might be interesting to show the whole thing as it might look in a slightly more complex rig - it's still a work in progress (some facial bones aren’t connected to the controllers, etc.) and it's far from perfect, but maybe it helps to visualise it better, for example the thing with the pose tags. Or just to try it out, push it around, to play with…
And maybe there are some ideas on how to improve it.
It's a Neptune. I left the trident in so you can understand the hand/finger position. (Sorry for the messy mix of German and English in the naming, but I think you get it anyway).
In the pose-tag of the controlls folder, various poses are already created, e.g. the walk cycle. You only have to keyframe the controllers folder and the complete bone hierarchy is out of the game.
So far so good, but I had a problem with the beard. It should be able to move in waves in the water.
For things that curl (e.g. Marty's tail), I like to work with the F-Curve controller tag script and in this case I only got it to work well if the controllers are inside the bone hierarchy. So I put it all into the controller folder. Not so great, but I can live with it.
In principle, you could also use this script to curl the fingers. That might be a bit inflexible, but since it's a tag, you can always turn it off, like with spline tracking.
(By the way, I couldn't decide on one option for the feet, so I combined both. I don't know if that always makes sense, but I find it practical to have both.)

But I want to stress again that this rig is not perfect. For example, the finger controllers are not laid out very accurately, etc. Sometimes I'm just a bit sloppy, lazy, impatient or don't get it better. In Bavaria we then say "Ja mei..." (This always fits and means something like "It doesn't matter", "so what?", "I can't change it") or "Es muass oam a amoi was wurscht sei kenna". In other words, you have to be able to not care about something. If I didn't tell myself that from time to time, I would get too involved in some things and wouldn't get anywhere. And then it's better if my perfectionism gives way to carefreeness. But only sometimes, because in principle you should of course work very correctly, especially when rigging! It's better to invest more time in the rig than to get annoyed later when animating. That costs a lot more time and above all nerves! Or some things don't work at all. A good rig is worth its weight in gold, if you can say that. I just want to say that it pays to put a lot of effort and work into the rig.

What's also a bit unfortunate about this rig – it's a reworked MakeHuman skeleton – is that you can't see the toes and top finger bones. One of the reasons why I was wondering if I should post it at all. Unfortunately, I don't have a better version and maybe it will help one or the other anyway. (But of course it works and so at least there are a few bones less in the whole mass).

Basically, I think there is no such thing as THE perfect rig. It always depends on what you want to do and how you work. There are many possibilities and you can certainly always do things better. So at least I can...
(And another tip: it is very helpful with such complex, confusing hierarchies to create a shortcut for "Reveal in Object Browser").
 

Attachments

  • neptun_rig_only.jas.zip
    440.2 KB · Views: 123
@Lydia That is some impressive work. I could spend a few days playing with this. :cool:

I didn't have the F-curve control script at first and I'm not
yet familiar with it, but I keyed a walk cycle very easily.
 
* Comment for newbies:
* It is possible to edit an existing rig, ie to simplify it or to add / insert additional trickery. If you need prehensile toes (which do not exist in MakeHuman), just add the metatarsals / phalanges to the joint at the end.
* I recently modelled a rig for Odin´s (de: Wotan´s) horse Sleipnir, noted for possessing 8 legs and simply added the duplicated fore- and hind-legs to the shoulder blades and the pelvis / coxa. A bit fiddly, but this was a shortish take and it works.

Screenshot 2023-04-03 at 18.51.21.png
 
Wow, 8 legs! And now I want to see the walk(run) cycle! 😉
Although - doesn't look like this horse is able to walk anymore. I'm thinking about a seahorse at the moment. It has no legs at all and therefore no walk-cycle. 😁
 
I have been playing with Lydia's Make Human Neptune rig, as well as a few from MH I made myself,
and I have had more trouble with Make Human rigs than the rigs I make in Cheetah3D.

It may be partially because MH rigs are tiny and scaled up by an external folder.
This may be causing problems with Targets and Poles generated by the
IK Handle Tag as these are generated outside of the "scaled" folder.

Using IK Handles with Make Human rigs seems much more
prone to flipping, and Poles sometimes don't work.

Maybe the MH bone configuration is partially to
blame as well, some rigs it can make have extra bones.

To test this I built a Cheetah rig using Lydia's rig as a template as that one has the extra bones.
I built it at full size so no external scaling folder was used. As Lydia has stated no rig is perfect.

It worked better than the MH rigs I tested but it still had
flipping issues that proper Pole placement corrected.

@Lydia I totally understand why your rigs have controllers and Pose Tags on everything.
You may have less trouble if you build the rigs yourself, or not.

I'm going to build another rig like Lydia's, without the extra bones, and see how that works.

Here's my Cheetah built rig, similar to the Neptune rig, skateboarding
with only two Spline Tracks and one spine bone animated.

skateboard-rig.gif
 
I'm looking forward to seeing your revised rig. :D

I had the same problems when I built a rig myself, if not more, and with this rig I actually have very few problems. BUT I have never done it the way you suggest. Honestly, I've been doing this for over 4 years now, and I just realized from your comment that there is a joint tool in "scene". :oops: What is it doing there? I will definitely give it a try.

But all the controllers, pose tags and bones are in there because I need them or find them practical, not because I have problems. And sometimes you just need a character quickly and MH is just handy there. I don't want to re-bind an MH character either. Then it doesn't work as well, especially the facial animation. (By the way, you can delete the additional forearm and lower leg bones without rebinding. I don't understand what they're for). And that's why I'll probably have an MH rig every now and then. But you should definitely export it with the global orientation in the T-Pose otherwise you really have a lot of problems.
Besides that, I'm looking forward to trying out your rig!
 
@Lydia I'm building this one in front of an image of a skeleton for proportions.

Maybe you could do a demo of the f-curve controller script as
there are no instructions from master Hiroto and I'm clueless.

I'm trying to workout a tutorial on rig building with the single Joint, not Joint Tool.

I think that "Joint" should be in the Character menu with the Joint Tool,
but this way Cheetah is still surprising even after 4 years.

I'd love to see you make some tutorials too, if you
have the time, you clearly know your way around a rig.
 
Maybe you could do a demo of the f-curve controller script
Hiroto once wrote something about it. I think he can explain it better than I can. ;)


Basically I think it could be useful for you in other things as well, especially technical things. So I mean, for example, a crank turns and the turn causes a movement...
 
I am in the process of creating the tail of my seahorse, and this made me think of another thing - just in case:
In order for the following bones to rotate with, the Orient Constraint Tag has to be to the left of the F-Crurve Controller Tag.

Maybe you can do it completely differently and better right away, or it's clear to everyone but me anyway 😁, but sometimes you just don't pay attention to little things like that when you're rebuilding.

Bildschirmfoto 2023-04-06 um 10.42.11.jpg
 
I'm stress testing this new rig and even though I built it in front of
an image of a human skeleton, the forearms look too short.

Then I made a two second loop and watching it run
I noticed every 50 to 100 cycles or so I would see an IK flip.

Why would it do that? If it plays once correctly, why not every time since it's
playing the same two seconds over again. Or do I need to Bake something?

 
Under Animation->Frames Per Second-> is a checkbox for Frame by Frame which is off by default - when turning it on will this make a difference?
 
I'm stress testing this new rig and even though I built it in front of
an image of a human skeleton, the forearms look too short.

Then I made a two second loop and watching it run
I noticed every 50 to 100 cycles or so I would see an IK flip.

Why would it do that? If it plays once correctly, why not every time since it's
playing the same two seconds over again. Or do I need to Bake something?

Could this be gimbal lock? I believe that can be cumulative, so it might not be a problem at first, but later on the math goes crazy.
 
Under Animation->Frames Per Second-> is a checkbox for Frame by Frame which is off by default - when turning it on will this make a difference?
That might have worked, I haven't seen it happen since I checked that box.
Could this be gimbal lock? I believe that can be cumulative, so it might not be a problem at first, but later on the math goes crazy.
It's a loop so I don't think so but I can't be sure.
 
It tries to play all frames in 3D view instead of keeping the real speed, which is almost impossible in complex simulation set ups. This sometimes makes it easier to detect issues. It has no influence on rendering.
 
It tries to play all frames in 3D view instead of keeping the real speed, which is almost impossible in complex simulation set ups. This sometimes makes it easier to detect issues. It has no influence on rendering.
Ah, now I understand! Thank you very much! It's really helpful because playing real speed is almost always impossible in my set ups.
Happy Easter to you all.
 
Here's a new technique I'm trying.

Moving the IK Targets outside of the bone hierarchy lets you to move the hips up and down to bend the knees.
If the Targets are inside the hierarchy under the Hips, they will move with it, and the knees will not bend.

rig_squat.gif


That's pretty straight forward, but what if you want to animate an alternating
kick pattern like the previous one I posted you can't animate the hierarchy,
so another method must be used. With the IK Targets inside under the hips
you would have to animate the ankles going up to counter the motion of the
hips going down. That works fine and is what I did previously.

But there actually is a way to essentially swap the Targets in and out by using two
IK Handles and two Targets. You just need to animate the Tag On and Tag Off
parameters to switch between the IK Tags and Targets.

swapping_targets.gif

I also did not want to put another bone for a "toe", IK Handle, Target and Pole for the foot
so I used a Point Constraint Tag and animated the Tag On and Off of this one as well.
 
Back
Top