Spline IKs and IK Solvers

My rig’s skeleton and control shapes are progressing well but I’ve fallen behind on adding in IK solvers. I’ve taken the time to set these up before moving into the advanced features and setting up the hierarchy of controls.

I should mention I have now set up my spine. This uses a Spline IK connecting the bottom and top of the spine joints. Clusters are added to control three different parts of the spine. The middle controller automatically positions itself between the other two controllers.

Using the connection editor I’ve also added twist and roll setup to the spline controllers for additional functionality.

I had some trouble with this whole procedure having to re-do the process when I didn’t correctly position the control shapes. I almost had to re-do the procedure again but using freeze transformations on the controllers (which had somehow again de-positioned themselves) I was able to avoid that. This is something that could be automated easily for a scripting tool. I may want to consider that if it decides to break again.

I’ve had to return to IK solvers as somehow was unable to build them when they were discussed in class initially. I think this has to do with how long it took me to do the set driven key (which is quite tedious) and learning the ropes about building control shapes.

Its been a while since IK solvers were mentioned so I’ve looked over the documentation on them and brushed up my knowledge on how to build them. I’ve now added IKRP solvers on the legs and arms, and two on each feet to stop them from rotating when I move the legs. These extra IK solvers will be used when I add advanced attributes to the feet later on.

Another issue to mention here is that my character model’s feet point out to the side a bit instead of straight ahead. This along with the joint orientation means when adding in a pole vector constraint the leg tends to rotate out of position. I was initially unable to fix this (others had this problem and scripts were being used) but I just translated the rotator along and it rotated the foot back into position (although not back in the exact same position, I remember this is not entirely necessary, it was good enough). It does mean my knee locators are not located in front of the knee but instead are a little bit off to the side. But if the feet are not pointing forwards then the knee isn’t either so I am happy this will be fine to work with.

I had the same issue with the wrists snapping out of place when adding a pole vector constraint but learned that adding an orient constraint between the joint and the wrist first before adding the constraint meant no joint movement occurred.

Leave a Reply