Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

AnyIK (IK, Look and foot placement \w high heel support) [RELEASED][3.0]

Discussion in 'Assets and Asset Store' started by umutozkan, Dec 5, 2016.

  1. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Changelog

    2.0r8
    - Fixed an editor script error that occurs when animator is not humanoid.
    - Added methods to IKController interface to get and set weight (Not usable on foot placement IK controller since it automatically adjusts each IK weight)

    2.0r7
    - Changed "on ground" check and IK process criteria to perform better when foot position is under ground level.


    2.0r6

    - Added hip vertical movement option to IK chain. (When selected hips moved to match IK target)

    2.0r5
    - Added rotation leftover processing (when end effector is limited and cannot match target rotation, leftover rotation can be passed to next bone)
    - Fixed inaccurate IK processing when parent bone is rotated by another IK script by matching taret rotation option.


    2.0r4

    - Added layers support to AnyIKFootPlacementController script. Now you can select which layers to consider as "floor".
    - Added Mixamo bone structure template.


    2.0r3

    - Added option to not use bone structure template.
    - Added a sample no BS (bone structure) bone limit template in bone limit list

    2.0r2
    - Added iClone G6 and UMA Bone Structure Templates
    - Added a utility script (AnyIKAnimatorRelay) for having AnyIK scripts and Animator on different game objects. This is especially useful for dynamically created characters like UMA.
    - Heel angle now can be negative, which will rotate foot up instead of down.

    2.0r1
    - Simultaneous script processing (high accuracy with common bones through IK chains)
    - Automatic humanoid animator detection
    - Bone structure presets and bone limit presets added (For best bone limit and correct rotations across different character models)

    1.0.r4
    - Added a sample scene to demonstrate Foot Placement. (Robot Kyle and some of Standart Assets used for this scene. These are free Unity assets and used for demonstration purpose only.)

    1.0.r3
    - Added heel processing options to AnyIKFootPlacement script
    - Added AnyIKHeelController script
    - Improved foot placement

    1.0.r2
    - Bug fixes

    1.0.r1
    - Initial release


    Available in Asset Store

    * v.2.0 is released

    AnyIK provides scripts that enables you to define IK chains (AnyIKChainController) by the character’s rig’s bones. Animator component is required but model can be humanoid or not. When the model is humanoid, it is automatically detected by script and many of the settings will be handled for you.

    Starting from v2.0 forward, IK chains are executed simultaneously. This means accurate IK targetting regardless of execution order. Common bones will not cause inaccuracy and will be processed by each chain they are part of simultaneosly, rotating to accomodate all of them.

    Since 2.0r3 update you may opt not to use bone structure templates. In that case model's initial pose (T-Pose, A-Pose etc) will be used as reference pose. Check the guide for details.

    A comprehensive editor inspector is provided for flexible customization. Features of scripts are as follows:

    IK Chain (AnyIKChainController):

    – Select from unity humanoid bones or use your skeleton’s bone transforms.
    – Use unity humanoid muscle limits when using humanoid or define your own rotation constraints.
    – Add as many bones as you like to the IK chain. (Every “add” action will add parent bone / transform to the chain)
    – Add multiple IK chains to same character by adding more than one AnyIKChainController to it.

    Look At (AnyIKHeadLookController):
    – Use unity humanoid head or define your own transform as head.
    – Optionally add more bones to head look chain.
    – Optionally include eyes in “look at”.
    – Target can be a transform or a humanoid bone of a humanoid character (ie. head, left hand etc.).

    Foot placement (AnyIKFootPlacementController) :
    – Rotation restrictions.
    – Adjustment of hips to get the lowest foot on the ground.
    – Ability to define hips offset.
    – Ability to enable heel processing.

    Product page
    Tutorial
    Demo (PC)





     
    Last edited: Mar 21, 2017
    XCO likes this.
  2. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Soon to be released v.2.0 introduces bone limit and bone structure templates. There is a DefaultPositionDetectorScene provided to help you create a custom template for your model.

    Current available tempaltes:
    * Bone Limit Templates
    - Default Unity Bone Limits
    - AnyIKDefault limits (slightly modified unity defaults for better foot placement visuals basically)

    * Bone Structure Templates
    - MCS / DAZ
    - Makehuman
    - Robot Kyle

    The plan is to add more templates so you won't need to create a custom template. iClone (working with Izzy) template and UMA template is in developement. (UMA is a bit problematic at the moment because it instantiates the GameObject with animator at runtime. Working on that...)

    So if you want any other model added as a template just post it here, we'll put it on the list. (You can always create a custom template, It's described in the manual)
     
  3. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Giving out AnyIK vouchers!

    3 people who will post in this thread this weekend (before December 12th, 2016 00:00:01 GMT) will receive an AnyIK voucher to download AnyIK from asset store for free.

    Winners will be selected randomly and will be announced in this thread on December 12th.

    Any post will do, but it would be nice to hear which character model (MCS, Makehuman etc.) you will use AnyIK on.

    So, start posting to enter new year with AnyIK
     
  4. Dustin-Horne

    Dustin-Horne

    Joined:
    Apr 4, 2013
    Posts:
    4,568
    Interesting... is it only compatible with certain systems or can it be used with a custom character model?
     
  5. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Your domain name http://o3n.org is not working, its also linked by you.. seems only the subdomain with 'www' http://www.o3n.org is working :)

    also assets looks very handy wouldn't mind :) I'd likely only use with my own character not makehuman.
     
  6. BornGodsGame

    BornGodsGame

    Joined:
    Jun 28, 2014
    Posts:
    580
    We are using makehuman and UMA at the moment but still unsure which we will use for different things within the game as both have advantages and disadvantages.

    this is a really nice offer, thank you.
     
  7. nosyrbllewe

    nosyrbllewe

    Joined:
    Oct 18, 2012
    Posts:
    182
    It would be cool to earn a voucher. Right now I am using UMA, so I am glad to hear that UMA support is in development.
     
  8. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,628
    Thank you for keeping UMA in mind! :)
     
  9. Wavinator

    Wavinator

    Joined:
    Dec 24, 2013
    Posts:
    79
    This looks really impressive. The heel option is especially nice. Would love to see more hand placement and two-party character demonstrations.

    Any chance of compatibility with Poser Pro 11 / Poser Pro Gamedev?

    I noticed on incline the stepping looked a little bit jerky. I'm not familiar with IK kits but would that be something where the user could apply a bit of easing in/out?
     
  10. dibdab

    dibdab

    Joined:
    Jul 5, 2011
    Posts:
    976
    this looks pretty good. so this is working with generic rig already?

    this has the benefit over standard unity IK, that any bone can be IK-ed, like shoulders. so character could bend forward, to the side etc., right?
    probably a long shot: can it achieve crouching (lowering hip bone) without feet IK-ed?
     
  11. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Short answer is it can be used by any character model but the presets that are available out of the box (more common models will be added, currently working on UMA and iClone) makes it one-click easy.

    Long answer is a bit long but I'd like to post it here since it's a common question. Here it goes (These are explained in detail in the manual btw):

    AnyIK's design has unity's limb muscle limits as its basic referance. Here is a screenshot of this muscle limits. This position is where all rotations on all axes are considered 0 by mechanim animations. (When an animation doesn't have rotation data for any bone it assumes this position too. So basically if you create an empty animation and put it on a character by an animator controller, when you run the game it will assume this position)

    panel007.png

    AnyIK uses template files to convert rotations between this reference and the used model. Attached is a bone structure template file example (SampleCustomBoneStructureTemplate). These samples are provided in the package and you can add a custom template by simply creating a file similar to this and putting it's name in inspector of the AnyIKBoneStructureController. (It might look like too complicated but there is a tool that does the most of the work for you, just read on)

    If you have a look at the file you'll notice there are two methods in it. GetDefaultPoseLocalRotations method represents the bone rotations of your model to assume the pose in the screenshot. You don't have to type in these rotations yourself as there is a scene in the package, when run, gets your model in this position and writes the rotations to unity log. So what you need to do is open this scene, put your model on the scene (set the avatar of your model), run the scene and copy the log into your custom template file.

    The other method (GetAxisConvertedVectorForHumanBone) in the template file is where AnyIK converts axis names and directions to unity limb limits as a reference. For example unity limit for a bone might be -90 to 90 on z axis. But in your model let's say this axis actually the y axis and in reverse. This bone's part in the method should look like this.

    Code (CSharp):
    1. newMinVector = new Vector3(minVector.x, -maxVector.z, minVector.y);
    2. newMaxVector = new Vector3(maxVector.x, -minVector.z, maxVector.y);
    It's all described in this tutorial.

    That being said there is a way that you can skip this (tedious) axis mapping. (I strongly recommend that you do the axis mapping btw so you can use the provided unity and AnyIK default bone limits.) If you don't do the axis mapping AnyIK will work but limits will be applied on wrong axes. You can manually correct the limits in the inspector for the defined bones in IK chain, or you can create a BoneLimitTemplate for your model in a similar way to creating a BoneStructureTemplate. (BoneLimitTemplate is used when you use the reset buttons for the bones in inspector)

    That's how the templates work in a nutshell. You can always ask for help by opening a ticket on o3n.org too.
     

    Attached Files:

    Dustin-Horne likes this.
  12. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Fixed it. Thanks for the heads up ;)
     
  13. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    I'll try to demonstrate a two-party hands placement and put up a video when I have time.

    I'd like to add poser in the list but I've done some search for a trial Poser Pro 11. No luck so far. If I had an fbx sample character I could get the template development going.

    About the jerky stepping, can you post the time on video for the problem? I'll check to see if anything's not working as it should. That being said, foot placement IK checks the ground level beneath foot every frame and moves the foot accordingly. So, with the ground like steps movement might sometimes be too sudden. There could be a solution like checking forward but it would require more processing every frame.
     
  14. rerwandi

    rerwandi

    Joined:
    Dec 8, 2014
    Posts:
    544
    Seems very good!
    Count me in the giveaway :) I will give it a try with my mixamo characters
     
  15. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    AnyIK's focus is on humanoid characters. But if your model is generic (not humanoid) but you are using an animator it should work. Admittedly non-humanoid rigs are less tested compared to humanoid ones.

    Also non-humanoid rigs require more settings, for example bones cannot be defined by human body bone names, they should be assigned from the scene etc.

    Your remark about the benefit over standard unity IK is right. You can define an IK chain starting from shoulder to spine. Another benefit would be defining 2 chains on same bone group. For example one chain from hand to shoulder and another chain from elbow to shoulder. You can make hand move to a point while keeping elbow at intended position.

    Crouching is currently not supported but it's an interesting concept and we'll definitely look into it in the future, no promises that it will make it to the production though.
     
    Last edited: Dec 11, 2016
  16. RedGreenBlue

    RedGreenBlue

    Joined:
    Oct 14, 2013
    Posts:
    20
    Less than two days to go -- count me in! I'd like to give it a try on a custom model.
     
  17. Knightmore

    Knightmore

    Joined:
    May 11, 2012
    Posts:
    227
    Very interesting. I am using some altered MCS models right now for my university project and even only to use the look at feature would be really awesome to use in the dialogues.
     
  18. 99thmonkey

    99thmonkey

    Joined:
    Aug 10, 2012
    Posts:
    525
    Looks interesting. Would be neat to see it work with Morph3d and Mixamo.
     
  19. celebrus

    celebrus

    Joined:
    Jul 23, 2015
    Posts:
    88
    Hi, this asset looks like it is progressing nicely. Good work. I am using Morph3D.
     
  20. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,114
    Using Morph3d, looks like a nice package.
     
  21. kinodax

    kinodax

    Joined:
    Dec 3, 2014
    Posts:
    22
    More efficient and effective IK systems are worth having. In my case I would be applying them to MCS to start with.
     
  22. Ryan687

    Ryan687

    Joined:
    Sep 6, 2016
    Posts:
    2
    Looks like a really great IK solution. Great to hear it works with Morph3d (which I am using) out of the box.
     
  23. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    Great to hear that AnyIK supports Morph3D. The system is really simple but adds a lot of reality to your games :)
     
  24. AurimasBlazulionis

    AurimasBlazulionis

    Joined:
    Aug 13, 2013
    Posts:
    209
    This would be perfect for my project.
     
  25. ShizofMalkavian

    ShizofMalkavian

    Joined:
    Mar 29, 2015
    Posts:
    17
    Looks like a good IK solution. I am using Morph3d(MCS).
     
  26. ThermodynamicsMakesMeHot

    ThermodynamicsMakesMeHot

    Joined:
    Feb 14, 2015
    Posts:
    224
  27. Fenris2

    Fenris2

    Joined:
    Aug 25, 2014
    Posts:
    61
    Looks interesting for sure. I am using MCS but more or less just as a default until they get themselves sorted (or not). I would second ThermodynamicsMakesMeHot's query regarding FinalIK.
     
  28. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Here is my honest opinion;

    FinalIK is a very powerful IK tool. I would say some features of FinalIK are very advanced and superior to AnyIK. For example:
    - The ability to pick the IK algorithm,
    - Visual editor tools like dragging in scene to set the rotation limits on bones.
    - And there is the ability to move the hips by IK (as in causing character model to crouch). Hip movement is something we're looking into btw.

    I didn't have the chance to get my hands on FinalIK so I can't say much. The advantages of AnyIK could be:
    - It has a solid solution for high heels (As far as I know FinalIK doesn't have something like that)
    - It's price is much more competitive compared to FinalIK

    It all comes down to what you need imo.

    This is all I can say with what I know. Please keep in mind that my current knowledge on FinalIK is from what I read and watched on their product page.
     
  29. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Last 4 hours before you may post for the giveaway event. Users who post after December 12th, 2016 00:00:01 GMT (which is in 4 hours now) will not be eligible.

    Good luck!
     
  30. ethanwgross

    ethanwgross

    Joined:
    Jun 25, 2014
    Posts:
    83
    is it too late?
     
  31. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    ethanwgross likes this.
  32. ethanwgross

    ethanwgross

    Joined:
    Jun 25, 2014
    Posts:
    83
    nice, would love to try this out with a new project I'm starting. will experiment with some interactions and provide some solid feedback
     
  33. Dustin-Horne

    Dustin-Horne

    Joined:
    Apr 4, 2013
    Posts:
    4,568
    Did I win? :D
     
  34. ethanwgross

    ethanwgross

    Joined:
    Jun 25, 2014
    Posts:
    83
    no whammie no whammie no whammie stop!
     
  35. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Thanks to all who participated to giveaway event. The winners will be announced here today.

    Good luck to all ;)
     
    Dustin-Horne likes this.
  36. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    3 usernames are picked randomly from 21 posters. Here are the winners!

    dibdab
    Wurlox
    ThermodynamicsMakesMeHot

    Vouchers are sent by Unity forum messages (conversations)! Congratulations!

    (Please contact me if you don't receive it)
     
    dibdab, John-G and 99thmonkey like this.
  37. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Happy to announce that the new version (2.0r2) is in review. New version adds built in support for iClone G6 and UMA.

    UMAscreenshot.png iCloneScreenshot.png
     
  38. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    And, here is the two party video I promised...

     
    Wavinator likes this.
  39. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    I'm really happy that I got this awesome asset. I will test it with my custom character controller very soon and write a little review about my experience with AnyIK afterwards. You will be hearing from me soon. :)
     
    umutozkan likes this.
  40. MrG

    MrG

    Joined:
    Oct 6, 2012
    Posts:
    357
    Has anyone used this with quadrupeds, insects, arachnids, or others besides humanoid?
     
  41. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Hi MrG,

    As I mentioned earlier in this thread, the focus is on humanoids. That being said it is designed to work with generic models too. I've just put up a video demonstrating a spider with Foot IK script.

    It's more work to set up a non-humanoid though. I had to add all 8 legs, assigned the leaf bones from scene on each (compared to selecting from human bone list). Disabled IK processing on 3 bones from leaf (so the leg movement would be from two bones closer to body for a better animation.) etc.

    Also no rotation limit template would be available (like unity humanoid default) but it's possible to set limits manually on each bone.

     
    Last edited: Dec 14, 2016
  42. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Version 2.0r2 is up. This version adds iClone and UMA templates and Animator relay to use with models created at runtime (like UMA).

    The next version (2.0r3) is also in review. With 2.0r3 you'll be able to opt not to use bone structure templates. In that case model's initial pose (T-Pose, A-Pose etc) will be used as reference pose. Since axes may be different in each model no "magic" bone limit template can be created to work with every model, but a T-Pose No BS (no bone structure) limit template is provided. This limit template is mostly compliant with Makehuman model. If you choose not to use bone structure templates you may set limits on IK script inspector windows or create a custom bone limit template tto work with your model and "reset rotations" using that template.

    Information is in the guide.
     
  43. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    I am more than happy with the results I get from your asset. It just works like a charm. The only thing which costs time is if you want to apply your custom BoneLimits. That took me some time to understand. However, once set up right it just addds so much to reality.




    I also have one suggestion. Is it possible to add support for Mixamo characters by default, like you did for Morph, Uma etc.? I'm currently using these characters for prototyping and thought it would be nice to have a template that works out of the Box.

    Wanted to thank you again for this great asset.

    Best regards,
    Wurlox
     
  44. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Thanks Wurlox,

    I thought there are many models in mixamo and each had different bone structures. If it's not the case I can happily add a Mixamo template. Could you direct me to a model that I can download for this purpose?
     
  45. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    The Mixamo models all share the same Bone Structure. Well, you can choose if you want a more detailed bone structure (inlcuding fingers) or a minimal bone structure (without fingers, just hand). However, normally you use the fully detailed bone structure which is always the same as far as I know.

    I just sent you a private message regarding this matter :)

    Hopefully you can add Mixamo to AnyIK, that would be great.

    Best regards,
    Wurlox
     
  46. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Done. Mixamo bone structure template will be out with v.2.0r4
     
  47. Wurlox

    Wurlox

    Joined:
    Nov 1, 2015
    Posts:
    50
    Perfect. Thank you for adding Mixamo :)
     
  48. dibdab

    dibdab

    Joined:
    Jul 5, 2011
    Posts:
    976
    took me a bit long to start testing AnyIK, but this thing I dont know what to do with.
    anyik1.jpg
    I'd like to control scripts runtime, changing ikTargets runtime etc.
    like this

    Code (CSharp):
    1. public AnyIKChainControllerEditor AnyIKChainControllerEditor;
    2. ...
    3. AnyIKChainControllerEditor.ikTarget = xtransform;
    but apparently this is not working. is there a solution?
     
  49. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    AnyIKChainControllerEditor is the scrpt that manages the custom Unity inspector window. You can achieve what you intend to do by doing the same thing with AnyIKChainController. You can get the AnyIKChainController script by calling GetComponent<AnyIKChainController> on the game object.
     
  50. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    v2.0r6 is out, added (optional) hips movement when target is in reach but below.