Happy Animating with IK

Happy Animating with IK

By BlinkBoy

Overview


Difficulty

  • 3/10 Easy difficulty

Tools Required


Knowledge Requirements

  • Basic knowledge on rigging bones in 3dsmax/gmax.
  • Basic knowledge on animation with 3dsmax/gmax.

This tutorial will teach you to:

  • Create simple Ik riggs.
  • Organize your scene for easy animating.
  • Improve your overall knowledge of game character animation.

Content


Author's Note

  • Whenever you get stuck, don't hesitate to post. I'll be looking into the tutorial constantly.
  • This tutorial is a follow up to my Basic Animation Tutorial It's designed for advanced animators.


Section 1: Introduction:


Welcome to the wonderful world of Inverse Kinematics Animations. In this tutorial we will learn the basics of setting up an IK rig to animate like the badass boys actually do.
Before getting started let´s have a discussion.

First, what’s IK? What is it used for?
Normally we have two ways to represent motion in skeletical animations. The first is FK, which I already taught you in the Basic Animation Tutorial. However, there´s also another method which is called IK!

FK stands for Forward Kinematics. It means that you animate from the highest parent to the children. In IK, it’s the other way around. We animate the children and they affect the parents. That’s why IK stands for Inverse Kinematics.
Let me show you an example. Let´s say we have a leg and we want to flex it.

In FK we would do this:
138677d1409108469-happy-animating-ik-intro01.gif

A lot of steps and it´s not even perfect!

However, in IK this is all we have to do:
138678d1409108469-happy-animating-ik-intro02.gif

Yep that simple.

So why did we learn FK before IK? It's quite simple. It's like learning to understand poems without knowing how to read. Learning FK is the very basics while IK is a complex system built over FK. If we understand FK we understand IK afterwards.

Also not always IK systems are the solution. Sometimes we may do things in a FK manner because it's easier to animate that way. IK is just an abstraction.

So, how do we do this?
The basics are the same. What this tutorial will differ from the other is the way rigging is done. This tutorial will just extend the basic animation tutorial and add the way IK rigging is done.


Section 2: Setting up the Scene:


We will start from the end of section 2 of my Basic Animation Tutorial. Link
The idea is to make an IK rig instead of a simple FK rig.

You can get the start file here:Start.max

GMAX Users Start File: GMAX Scenes

Okey first things first. Open the file, or in case it's not compatible with your 3ds max version, follow the Basic Animation Tutorial until you finish section 2.

138679d1409109665-happy-animating-ik-ik01.jpg


Note for GMAX:
GMAX does not have a layer manager so skip anything refering to it. It's not needed but it helps organize the scene.

Now select the mesh and go to the layer manager.
138680d1409109665-happy-animating-ik-ik02.jpg


Hit create a new layer and call it Meshes
138681d1409109665-happy-animating-ik-ik03.jpg


Now just hide the layer:
138682d1409109665-happy-animating-ik-ik04.jpg


Perfect! Now we can work on the bones.

Select the bones on the left and change their color to red so we know they are the left bones.
138683d1409109665-happy-animating-ik-ik05.jpg


Do the same for the right bones but with blue and make the rest of the bones green.
138684d1409109665-happy-animating-ik-ik06.jpg


We are now going to setup the scene's orientation so we always know where's Front, Back, Left and Right. (this is perfect for animating in one viewport)

Go to Create Panel -> Shapes -> Text
138685d1409110918-happy-animating-ik-ik07.jpg


Create 4 Texts in the Viewport with the names Front, Back, Left and Right and place them where they should go.
138686d1409110918-happy-animating-ik-ik08.jpg


Now select the 4 texts and left click -> Object Properties. Turn of "Show Frozen in Gray"
138687d1409110918-happy-animating-ik-ik09.jpg


Go to the layer manager and create a Layer for the 4 Texts called "Orientation". Afterwards Freeze the layer.
138688d1409110918-happy-animating-ik-ik10.jpg


Important! If you look into the layer manager there's a parameter with a check. The layer that has a check is active layer. Any objects you create will go to that layer. Make sure to check the 0 (default) layer always. To avoid autohiding or autofreezing of anything you create.

With this we have set up our scene. Now that we have organized ourselves, we can start making the IK

Section 3: Rigging the IK System:



Before we start rigging be aware that if something is done badly. You can ruin your scene. So ALWAYS keep a backup. There are some rules for IK rigging:
  • Never rigg an skeleton which has been already skinned.
  • Carefull with undos. Undos and IK tend to bug. It's better to delete the mess rather than run to the magic panic button called "Ctrl + Z"
  • Save every set of time and always start a new scene when you start your IK Rigg.
  • It is important to change animation controllers by hand, don't use tools or anything to help you out on that.
  • In the case of NeoDex you cannot add IK animations to imported models unless you remove their animations and remove the skin modifier.


Section 3.1: Introduction to IK Systems and Constraints:


The IK Solvers:
138689d1409110918-happy-animating-ik-ik11.jpg

IK Solvers define different IK behaviors to bone chains.

There are 4 types of IK Solvers:
  • HI Solver: This is the Ik solver used for bone chains of 4 or more bones. It has a goal and fixes bones according to the distance between the goal and the parent bone. It's mainly used for limbs.
  • HD Solver: This is an old legacy solver used for robotic hands and machinery. It's sparingly used now-a-days.
  • IK Limb: This is the Ik solver used for bone chains of 3 bones. It has a goal and fixes bones according to the distance between the goal and the parent bone. It's mainly used for limbs. It's a simplified version of HI Solver. we'll use it in the tutorial.
  • SplineIK Solver: This is an Ik solver which adapts a bone chain according to an spline. It's main purpose is for tails, capes, hooks, chains, etc. We will not use it in this tutorial.

The Constraints:
138690d1409110918-happy-animating-ik-ik12.jpg

Constraints can limit an object's transformations to follow an specific behavior. They are quite useful for animating.

There are 7 types of Constraints:
  • Attachment Constraint: Forces an object to stay on the position and orientation of one of other objects's faces.
  • Surface Constraint: Allows an object to sit on a parametric surface.
  • Path Constraint: This constraint forces an object to stay in within the range of a selected spline.
  • Position Constraint: This constraint forces an object to stay within the position of one or more objects. It's perfect if you want the object to stay always at center of many moving objects.
  • Link Constraint: This constraint forces an object to link/parent another object temporaly. It's quite usefull for weapons that go from one hand to another or objects that your model picks and then let's off.
  • Orientation Constraint: This constraint forces an object to stay on the same orientation/rotation as another object.
  • Look-At Constraint: This constraint forces an object to always orient itself facing another object. It's useful for eyes and heads in portraits.


Section 3.2: Rigging the Legs:


Okey so let's get started:

The first thing we should do is select the top bone of the legs. Now go to Animation -> Ik Solvers -> IK Limb Solver and select the bottom bone.
138691d1409110918-happy-animating-ik-ik13.gif

This sets up an Ik system for that bone chain.

Test it up! move the solver around and see how it goes!
138692d1409110918-happy-animating-ik-ik14.gif

Remember to undo the actions as you test.

With this we have set up an Ik solver to our left leg. Now we need to make our manipulators which we will use to animate and control the Ik system.

Go to Creation Panel -> Shapes -> Rectangle and create a rectangle for the foot. Call it "Manip_Foot_L" and color it red. Yes RED, I love red xD. Just kidding.
138693d1409110918-happy-animating-ik-ik15.jpg


Now link the solver to the manipulator.
138694d1409110918-happy-animating-ik-ik16.jpg


Now we will create a manipulator for the leg which will control the knee's orientation.

Go to Creation Panel -> Shapes -> Circle and create a circle. Call it "Manip_Leg_L" and color it red.
138695d1409110918-happy-animating-ik-ik17.jpg

The next step is important

Align the leg manipulator to the second leg bone. make sure you are aligning it to the pivot point. In order to align an object do: select the object click Tools-> Align, Pick the middle bone and set the X,,Y,Z position on and match pivot point with pivot point.
138696d1409110918-happy-animating-ik-ik18.gif


Link the Leg manipulator to the foot Manipulator:
138697d1409110918-happy-animating-ik-ik19.jpg

Now let's make our leg manipulator work.

Save here just in case something goes wrong.

Select the IK Solver, go to Controller Panel and roll down until you find The Ik Solver Target option. Pick the Leg_L manipulator.
138698d1409110918-happy-animating-ik-ik20.jpg


Ok now the last thing left is making sure our Foot bone always faces the same direction as our Foot manipulator. For that, we will use Orientation Constraints

Select the Foot bone and go to. Animation -> Constraints -> Orientation Constraint then pick the Foot Manipulator.
138699d1409110918-happy-animating-ik-ik21.gif

Oh shit, it moved! No worrries, the bone is just facing the exact orfientation of the manipulator but we want to keep the bone on it's original orientation. To fix that, it's simple.

Select the Foot Bone and go to motion panel, roll down until you find the orientation constraint section. Turn on Keep Initial Offset
138700d1409115420-happy-animating-ik-ik22.jpg


Now let's test the rig!
138701d1409115420-happy-animating-ik-ik23.gif

Looks nice, isn't it? easy to work now with legs.

Now repeat the same process we went through for the left leg on the right leg.
138702d1409115420-happy-animating-ik-ik24.jpg



Section 3.3: Rigging the Arms:


Rigging the arms is just like rigging the legs. They are both limbs, so it's quite the same process:
138703d1409115420-happy-animating-ik-ik25.jpg


The difference here is that instead of using a rectangle for the hands' manipulator, I used a dummy(found on Creation Panel -> Helpers). You can use anything you want. Just use a shape you feel comfortable with:
138704d1409115420-happy-animating-ik-ik26.jpg


Now do the full process for both arms:
138705d1409115420-happy-animating-ik-ik27.jpg



Section 3.4: Rigging the Head:


The head is a bit tricky. We want the head to follow the chest but at the same time we want the head not to be reoriented. In order to achieve this we need to create a manipulator for the head.

Start by creating a circle and align it to the head bone. Call it "Manip_Head" and color it green.
138706d1409115420-happy-animating-ik-ik28.jpg


Now link the Head manipulator to the chest bone:
138707d1409115420-happy-animating-ik-ik29.jpg


Now apply an Orientation Constraint from the head bone to the head manipulator. Rember to turn on the option Keep Initial Offset
138708d1409115420-happy-animating-ik-ik30.jpg


The last step is important. We don't want to manipulator to inherit the rotation from the chest. So select the head manipulator and go to Hierarchy Panel -> Inherit. Turn of all of the rotation inheritance.
138709d1409115420-happy-animating-ik-ik31.jpg

we are done with the head now.


Section 3.5: Finishing up:


Now let's finish the rig.

All that's left is creating the body manipulator which will control all the rig.

Start by creating a star shape at the center. (Create Panel -> Shapes -> Star). make sure it's position is [0,0,0]
138710d1409115420-happy-animating-ik-ik32.jpg


Now select all the manipulators(excep Manip_Head) and Bone_root. Link them to the Body_Manipulator.
138711d1409115420-happy-animating-ik-ik33.jpg


There we go. Congrats, we finished the rig!

Now we need to organize our scene.

Select all the solvers and create a layer for them.
138712d1409115420-happy-animating-ik-ik34.jpg


Select all the manipulators and create a layer for them.
138713d1409115420-happy-animating-ik-ik35.jpg


Select all the bones which are affected by IK Solvers or Constraints and make a layer for them.
138714d1409115420-happy-animating-ik-ik36.jpg


Select all the bones which are NOT affected by IK Solvers or Constraints and make a layer for them.
138715d1409115420-happy-animating-ik-ik37.jpg


Now you can skin the mesh! For that refer to:
Basic Animation Tutorial: Skinning

Here's the setting for skinning up the mesh. In this setting, you'll be able to select the mesh and the bones and, at the same time, ignore the solvers and manipulators:
138716d1409115420-happy-animating-ik-ik38.jpg


You can also test the rig if you want.
138717d1409115420-happy-animating-ik-ik39.gif



Section 4: Animating:


Animation using this rig is just as usual. Just that this time we won't animate the Ik affected bones directly but instead we will animate the manipulators.

Set up your scene this way to animate like a happy kid:
attachment.php


Now you can animate normally. If you read through my animation tutorial, the rest should be easy.

Here's an example done in less than 5 minutes:
138718d1409115420-happy-animating-ik-ikpreview.gif


As you can see adding flow and character to the animation is a lot easier. Not only that but things stay where you want, no need to fit legs arms correctly anymore. Animation is a lot easier now.

Here's the GMAX sample. Also made quite fast:
attachment.php



Section 5: NeoDex and Exporting IK Systems


NeoDex since version 2.3 can export IK systems naturally. It does not, however, support all the constraints and Ik Solvers.

NeoDex Supports:

  • IK Solvers:
    • HI Solver.
    • Limb IK Solver.
    • SplineIK Solver.
  • Constraints:
    • Orientation Constraint.
    • Look-at Constraint.

For exporting, you don't need to worry much. NeoDex will automatically convert the IK System into an FK system on export. It will do it with the most accuracy possible and producing fewer keys than other exporters.

The End.
 

Attachments

  • Intro02.gif
    Intro02.gif
    72 KB · Views: 2,034
  • IK01.jpg
    IK01.jpg
    127.2 KB · Views: 2,257
  • IK02.jpg
    IK02.jpg
    123.5 KB · Views: 1,987
  • IK03.jpg
    IK03.jpg
    63.2 KB · Views: 1,957
  • Intro01.gif
    Intro01.gif
    389.3 KB · Views: 2,058
  • IK04.jpg
    IK04.jpg
    88.2 KB · Views: 1,963
  • IK05.jpg
    IK05.jpg
    99.7 KB · Views: 1,964
  • IK06.jpg
    IK06.jpg
    67.7 KB · Views: 2,177
  • IK07.jpg
    IK07.jpg
    57 KB · Views: 1,929
  • IK08.jpg
    IK08.jpg
    117.8 KB · Views: 2,157
  • IK13.gif
    IK13.gif
    263.6 KB · Views: 2,237
  • IK12.jpg
    IK12.jpg
    71.9 KB · Views: 2,053
  • IK11.jpg
    IK11.jpg
    60.5 KB · Views: 2,092
  • IK10.jpg
    IK10.jpg
    76.7 KB · Views: 2,147
  • IK09.jpg
    IK09.jpg
    223.6 KB · Views: 2,117
  • IK14.gif
    IK14.gif
    384.8 KB · Views: 2,141
  • IK15.jpg
    IK15.jpg
    134.8 KB · Views: 2,075
  • IK16.jpg
    IK16.jpg
    56.6 KB · Views: 2,096
  • IK17.jpg
    IK17.jpg
    67.7 KB · Views: 2,063
  • IK18.gif
    IK18.gif
    266.6 KB · Views: 2,196
  • IK19.jpg
    IK19.jpg
    67.3 KB · Views: 2,060
  • IK20.jpg
    IK20.jpg
    143.9 KB · Views: 2,119
  • IK21.gif
    IK21.gif
    255.8 KB · Views: 2,152
  • IK22.jpg
    IK22.jpg
    161.7 KB · Views: 2,240
  • IK23.gif
    IK23.gif
    355.9 KB · Views: 2,096
  • IK25.jpg
    IK25.jpg
    72.7 KB · Views: 2,041
  • IK28.jpg
    IK28.jpg
    155 KB · Views: 2,033
  • IK27.jpg
    IK27.jpg
    92.4 KB · Views: 2,046
  • IK24.jpg
    IK24.jpg
    98.8 KB · Views: 2,080
  • IK26.jpg
    IK26.jpg
    101 KB · Views: 2,031
  • IK29.jpg
    IK29.jpg
    86 KB · Views: 2,043
  • IK30.jpg
    IK30.jpg
    142.9 KB · Views: 2,301
  • IK31.jpg
    IK31.jpg
    148.4 KB · Views: 2,074
  • IK32.jpg
    IK32.jpg
    159 KB · Views: 2,063
  • IK33.jpg
    IK33.jpg
    143.1 KB · Views: 2,037
  • IK34.jpg
    IK34.jpg
    86.4 KB · Views: 2,075
  • IK35.jpg
    IK35.jpg
    155.6 KB · Views: 2,024
  • IK36.jpg
    IK36.jpg
    183.2 KB · Views: 2,018
  • IK37.jpg
    IK37.jpg
    146.5 KB · Views: 2,003
  • IK38.jpg
    IK38.jpg
    122.7 KB · Views: 2,020
  • IK39.gif
    IK39.gif
    712.3 KB · Views: 2,126
  • IKPreview.gif
    IKPreview.gif
    334.9 KB · Views: 2,088
  • Setup.max
    252 KB · Views: 258
  • IKRigged.max
    308 KB · Views: 271
  • IKSkinned.max
    332 KB · Views: 269
  • IKAnimating.max
    360 KB · Views: 260
  • Tutorial.mdx
    10.2 KB · Views: 282
  • IK40.jpg
    IK40.jpg
    125.7 KB · Views: 2,031
  • GMAX_Scenes.rar
    154.2 KB · Views: 269
  • IKPreview2.gif
    IKPreview2.gif
    338.9 KB · Views: 2,099
  • Tutorial_GMAX.mdx
    10.7 KB · Views: 253
Last edited:
Good tutorial, it's easy to follow. I'll test this on a flag or in something else, I can't animate an unit properly, even with this method..

To animate properly, you need to practice. This "method" just makes most things a LOT easier.

In the case of a flag, you can do 2 things. First: use an FK bone chain and animate all the bones at one. Second: use an spline IK.

Here's a sample:
attachment.php


and this is how easy is to animate it:
attachment.php
 

Attachments

  • Flag.gif
    Flag.gif
    290.2 KB · Views: 1,940
  • SplineIK.jpg
    SplineIK.jpg
    33.3 KB · Views: 1,887
Level 13
Joined
Dec 21, 2013
Messages
892
Looks complicated but quite simple. So I don't need to animate each bones for some epic movements. I remember a couple months ago I watched an IK tutorial in youtube and it works great. Then I started to forgot and lost the link. Glad now I remeber how to make it again by this tutorial. Thank you BlinkBoy.
 
Top