____________________________________________________________________________________________________________________

IKFK Solver

Usually a rigger has the duty of solving several technicals problems and building a lot of diffirent kind of rigs, but sometimes it’s job can become too mechanical, like having to do something that is supossed to be automatically created by the tool. Since i started to learn rigging i saw the process of rigging an arm or leg like that: too mechanical, even a lot of tech artist preffer to create a script to make this rigging process automatic.

Well, in order to rig a leg you have to do this: create three hierarchies. The first is used to transform the leg in IK, the second in FK, and the last is used to blend between those two. Some sort of UI controls have to be created to control the switching and matching mechanism and other expressions has to be used in order to implement squash & stretch…  that’s the most common technique using default rigging tools.

Now there is other alternative, it’s an IKFK solver, and it’s job is to automate all that process by just having only one hierarchy that can be transformed in both modes (IK and FK) depending on the needs of the animator.

It would be nice if you can give it a look. It is a beta version and it could have some bugs, i haven’t saw any by now, maybe i have to look deeper ;) .

Check this video: http://joleanes.com/scripts_plugins/IKFKSolverVideo.php

And download it from here:  http://joleanes.com/scripts_plugins/IKFKSolver.php

26 Responses to “IKFK Solver”

  1. Toke Jepsen says:

    VERY COOL!:-)

    Firstly bug report. Cant seem to pick a Goal Parent, tried it in both 3ds max 2009 32- bit and 3ds max 2010 32-bit. Running Win 7 64-bit, so don’t if that has anything to say.
    Also I get some weird rotation when moving the IK goal, which best describe with video;http://www.youtube.com/watch?v=885GbFcyO5g
    Though fixing it is easy with a target.
    One time in 3ds max 2010 it didn’t do it, but the rest have been like this.

    It would be nice to be able to parent the lower bone up to something, cause then you can have only shapes as your control objects.

    Lastly a cool feature would be to have more than three hierarchies. I’m just gonna naively throw it out there since I have no clue as to the possibility of it and complexity of implementing it. But this feature could be really interesting to use on tentacles, tails, spines etc.

  2. Felix says:

    Thanks Toke for sharing your time testing it.
    To pick a goal parent you have to make sure that the node that you are going to select is above in the hierarchy of the IKGoal, like being the parent, or grandparent,etc.
    The rotation bug seems a problem that has something to do with the preferred rotation, i will fix it asap, thanks for mention it.

    i couldn’t understand very well your suggestion about the lower bone, usually you keep it parented to the upper bone to make an IK solution work right.

    and about having more than three bones, yeah it will be nice, but i couldn’t find a good algorythm to make it work with such amount of bones, anyway i’ll keep researching and it could be added it futures upgrades.

  3. Toke Jepsen says:

    What I meant by the lower bone is to do with the FK mode. Having the lower bone parented to a shape (which is parented to the upper bone), just makes it easier to select and organise the control objects. Then as an animator you can isolate shapes and only be able to select those.

  4. Felix says:

    you can use shapes instead of bones to build the IKFK or convert the bones to shapes, and use other bones (that will be used to deform the mesh) to follow the position and orientation of the shapes.

  5. Felix says:

    The bug about wrong preferred rotations when creating the solver was fixed, thanks for noticing it.

  6. Paul Hormis says:

    AWESOME!!!! That is all that needs to be said. Great work.

  7. Paul Hormis says:

    If you link the swivel control to the goal parent it crashes. 2010 x64.

  8. Paul Hormis says:

    I am working on two rigs for a film and they approved of me using your IKFK constraint for them. I will have as much input to you in the next 24 hours as I can (as well as some script tools for applying them). I may already have hotkey to toggle between IK and FK.

    Are you going to release the source for your plugin?

  9. Michael McCarthy says:

    Great tool. Simple and to the point. I’m excited to try it out.

    Thanks
    Michael

  10. Paul Hormis says:

    I was playing around with this and I wanted to do a horse link leg. It was very easy to do using your IKFK solver to drive a “limb” that in turn drove a horse link leg.

    Nice.

    It would be great to be able to use this for a horse link (more than two bones).

  11. Felix says:

    Hi paul, it’s great to have you testing this solver!, nice!. I Hope that you can find it useful. I’ll be updating the solver with the fixes soon. The source code is a little messy and lacks of enought documentation, but later on i could take some time to polish it more and make it available.

    Thanks Michael, it will be nice if you try it out.

  12. Paul Hormis says:

    I was only curious about the source.

    I have an issue, when I link the IKGoal object to another object the swivel object gets rotated around.and you have to put it back to where it was (I created a point to align it to).

    Also, if you have a bone chain that is NEAR straight, when you apply the solver it locks the chain straight and there is no way to fix it.

    You have to create the bones bent then apply the solver and rotate them back. Does that make sense.

    You are going to be getting a lot of feedback you know that don’t you?

    Thanks for this plugin.

  13. Rune Spaans says:

    Thanks for sharing this great plugin! Two things that would be cool additions:

    - Like Toke mentioned, it would be nice to be able to have the FK rotation of the second bone be derived from another object – for example a spline object. I (and many more) like to keep the animated objects/controllers separate from the bone chain, so that you can swap out the underlying rig. Being able to either orientation constraint it or something else would be great!

    - Also, would it be possible to add soft IK to the IK chain? There are some great examples on CGTalk and on Softimage forums that can explain the math required :)

    Cheers!

  14. Looks like a great tool, although I can’t get to work but its the in the menu.
    Am I putting it in the right folder?
    Both files go into the stdplugs/stdscripts folder? or is it just the plugins folder?
    Thanks.

  15. My apologies, I realised I was using 2010 version on 2009. Testing now, Cheers

  16. makni says:

    Thanks for sharing this great plugin :-)

  17. Ehsan Kiani says:

    Hi Felix, the plugin looks great! Still haven’t take the time catch out bugs … but all seems way good. I’ll be back with my feedbacks, just a congrates.

  18. Felix says:

    Thanks a lot for the feedbacks guys :D , i am working on all of them now.
    ey rune the way of using shapes to control the solver can achieved in other ways as i mentioned before, about the ik soft, it should be a very cool feature, ehsan mentioned me that as well, i will try to include that in futures upgrades.

    I am thinking about making a tutorial to explain several things that can be achieved with this solver so you can make the most of its potential, stay tuned.

  19. Felix says:

    the Solver has been updated.
    Fixes:
    - Fixed Crash when linking nodes within the solver
    - Fixed Problem when the solver is created with the limbs straight or near to straight
    - Fixed target and goal parent UI displays when those are removed
    - Fixed orientation of the hierarchy when a target node is added
    - Fixed Lack of matching when swivel angle is modified in FK mode

  20. Felix says:

    The solver has been Updated.
    Fixes:
    - Fixed Goal Parent Behaviour.
    - Fixed problem when creating solver aftersetting a goal parent before.
    - Fixed plugin not working in some machines in 3ds max 2009 and 2010.

  21. Xue says:

    Thanks for the IKFK Solver.

    Where can the latest(January 25, 2010) version be download?

  22. Felix says:

    Sorry i uploaded a wrong version, now you can download the jan-25 version in the same link:
    http://joleanes.com/scripts_plugins/IKFKSolver.php

  23. Tommy says:

    Hey Felix, great plugin! easy to understand and very handy to use. Hope you didnt stop work on that :)

  24. Felix says:

    Hi Tommy thanks for comment, yeah i am still working to get the release version, it will be available soon, after several weeks of beta-testing i am getting a very stable tool, it’s something interesting due that it may look a simple tool but actually has a very complex setup inside with several thousands lines of code in C++, currently i have made speed tests and it seems to be a faster solver than the standard HI solver is, that’s good news because now the rigs can be simpler and easier to use and a lot faster as well, having in mind that usually an ik-fk setup has several nodes, expressions and wiring inside.

  25. thankyou very much, I have to comment that your website is fantastic!