Search Unity

FINAL IK - Full Body IK, Aim, Look At, FABRIK, CCD IK... [1.0 RELEASED]

Discussion in 'Assets and Asset Store' started by Partel-Lang, Jan 15, 2014.

  1. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Hi!

    Check the "Axis" value of AimIK. It needs to be the local axis of the RightHand that you need to be aimed at the target. Right now it's set to (0, 1, 1), which is some weird diagonal direction.

    Cheers,
    Pärtel
     
  2. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Different characters have different bone orientations, so the value of Axis needs to be manually set in most cases. But UMA characters should have the same bone orientations so you can use the same Axis value for all of them.
     
  3. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Hi all!

    I made a long overdue Mecanim version of the old "Aim Weapon" demo. It uses Unity5's Direct blend trees to work around Mecanim's cross-fading issues, so it works with Unity5 only though.

    People have been asking for it, so I'll just post it here before the next release.
    Here you go. :)

    Cheers,
    Pärtel
     
    theANMATOR2b likes this.
  4. FarrenH

    FarrenH

    Joined:
    May 6, 2015
    Posts:
    7
    I bought FinalIK (but not Unity Pro yet, I have a limited budget) and can't get the demos working.

    I'm completely new to Unity, although I've been coding for about 20 years in multiple languages, and I'm really not sure if the fault lies with me or elsewhere. But I'm still familiarizing myself with Unity, not just FinalIK. Perhaps it was ambitious to start with procedural motion- my first goal, for which I bought FinalIK because I've only ever done limited CCD before and wanted to save time on the IK and have full IK, not Unity's inadequate version. So....

    The first thing that threw me was how assets are imported. It seems that I have to go to the asset store window every time I want to import FinalIK into a project. This seems like an clumsy step for using assets I already have on my machine, especially since my internet is unreliable. I tested turning the Internet connection off and using the asset store and, as expected, it doesn't work. i.e. To use the apparently preferred method for importing packages on my actual machine I have to for no good reason be connected to the 'net. Poor design by Unity, IMO. Anyway, figured out that the package can be accessed via users/user/AppData/Roaming ( a normally hidden folder). But that isn't FinalIKs fault I guess.

    When I imported from the asset store the demo scenes were showing a lot of broken links to scripts on the scene objects (i.e. Unity can't find the scripts referenced). When I imported from AppData/Roaming, I don't get that problem any more, but when I load any of the demo scenes and run them, I get no mouse interaction with the handles purportedly for guiding the effectors, or the joints themselves, in the demos with no such handles. I can't click on or interact with anything. At runtime I just get a static scene with no interaction, from the fixed starting camera perspective. I can't seem to find any scripts for responding appropriately to the mouse or moving joints/targets either.

    What am I doing wrong? Am I doing something wrong, or is Unity just screwing up?
     
  5. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Hi, FarrenH, thanks for the purchase!

    I'm not sure what went wrong with the missing assets, sounds weird, I have not heard about such a problem before. Anyway, when you play the demos, you can only click on handles and stuff when you are in the Scene view, not the Game view that Unity automatically switches to when you play the scene.

    Best Regards,
    Pärtel
     
    FarrenH likes this.
  6. FarrenH

    FarrenH

    Joined:
    May 6, 2015
    Posts:
    7
    Wow thanks for the quick response. So Run->Switch back to scene view-> manipulate. Makes sense. One further question. Having done that with various demos: (1) moving the hand targets in the Biped demo doesn't cause the hands to move (2) moving the end effectors (like the claw) in the Fabrik demos causes them to rotate in place, rather than move, even though the position is changing in the inspector.

    I know the Biped demo needs Pro for the Unity IK side to work (is this still true under the current licence?), so maybe that's breaking the script in that demo. But why do the end effectors rotate instead of moving when I move them in the other demos? Am I still missing something?
     
  7. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    In the BipedIK demo scene, the hand targets are fixed to the target game objects (little spheres) via code, just to make the IK targets identical relative to the characters.

    Go to the BipedIKvsAnimatorIK.cs component that you can find on the "DummyAnimatorIK" gameobject. Set foot or hand position weight to 1 and then you can move the IK targets (gameobjects under "IK Targets". Move only the targets that have "Biped" in their name, the other ones are locked) around and see how the hands/feet behave.

    If you are using Unity5, the Pro thing should not be a problem anymore.

    I'm not sure I understood question number 2 though. Are you sure you have the Move tool selected, not the Rotate tool?
     
    FarrenH likes this.
  8. FarrenH

    FarrenH

    Joined:
    May 6, 2015
    Posts:
    7
    Yup using the move tool. For example I load the FABRIKRoot scene, run, switch to scene view, click on a claw, click and hold one of the movement axes and move the mouse pointer up on the screen. The claw stays in place but rotates down (while the position values of the claw actually change in the inspector), while the rest of the IK chain bends like the claw moved somewhere else, like this:
     

    Attached Files:

    • IK.jpg
      IK.jpg
      File size:
      479.3 KB
      Views:
      488
    • IK.jpg
      IK.jpg
      File size:
      479.3 KB
      Views:
      450
  9. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Thats because you select the actual claw object and move it. You should select the IK handle that you can click on when you have the IK tool selected. Select the "FABRIKRoot" gameobject, then you'll see the little handle selection boxes on the claws, click on them:
    Screen Shot 2015-06-08 at 15.47.28.png
     
  10. FarrenH

    FarrenH

    Joined:
    May 6, 2015
    Posts:
    7
    Thanks!
     
  11. FarrenH

    FarrenH

    Joined:
    May 6, 2015
    Posts:
    7
    This package is freaking awesome. Your interaction system was actually my first goal. Finding out it was already included, in almost the same manner I wanted to implement it, made me giddy with excitement.
     
  12. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Thanks! :)
    Btw If you have any more questions, you can also write to me at support@root-motion.com
     
    FarrenH likes this.
  13. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,782
    @Partel Lang may also want to suggest once -any- package is downloaded and imported - save the project and then it is available locally - without the need to re-download and import.
     
  14. Hedonsoft

    Hedonsoft

    Joined:
    Jul 11, 2012
    Posts:
    168
    They are stored locally in AppData\Roaming\Unity\Asset Store-5.x.
     
    theANMATOR2b likes this.
  15. Hedonsoft

    Hedonsoft

    Joined:
    Jul 11, 2012
    Posts:
    168
    I have spine and arm bones in my AimIK chain. Ca I adjust each bone's weight? I see the solver has a bones property.
     
  16. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Yes, that and of course one can always select the RootMotion folder, and Assets/Export Package (uncheck include dependencies) and maintain a version copy wherever he needs with full confidence it won't be overwritten when he downloads the next version.

    Yes you can, either from the Inspector or by writing:
    Code (CSharp):
    1. aimIK.solver.bones[index].weight = something;
    Cheers,
    Pärtel
     
    theANMATOR2b likes this.
  17. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Note:

    Just upgraded my VR demos to Unity5.1.

    It was painful, but now everything is much easier to set up. Just move the camera to the eyes, create a head effector to the position and rotation of the head and parent it to the camera. :)

    Cheers,
    Pärtel
     
  18. Hedonsoft

    Hedonsoft

    Joined:
    Jul 11, 2012
    Posts:
    168
    Hi Partel. Almost there, just a couple of issues to resolve.

    1. I'm using a modified version of your Character3rdPersonController and when in FPSCam mode things get strange when looking down too far. How can I fix this?

    2. I added a ground layer and tried setting it like this
    Code (CSharp):
    1.  
    2. grounder = GetComponent<GrounderFBBIK>();
    3.             grounder.solver.layers = 8;
    4.             Debug.Log(LayerMask.NameToLayer("TestGround"));
    5.  
    but the Grounder layer gets set as "Unnamed 3" even though the Debug.Log returns 8.
     
  19. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Hi!

    1. I'm not sure how to answer this, I mean how have you modified it, does it happen with the original version?

    2. This is not how you set up a LayerMask. The integer you assign to layers is not used directly, but as a bit mask that uses its 32 bits to represent different flags. In the case of LayerMask, each flag (each bit) represents one layer.

    You can use bit shifting to create a LayerMask from a layer number:

    Code (CSharp):
    1. public static LayerMask LayerNumberToMask(int layerNumber) {
    2.         LayerMask layerMask = (LayerMask)0;
    3.         return layerMask |= (1 << layerNumber);
    4.     }
    and assign it to Grounder.solver.layers:

    Code (CSharp):
    1. grounder.solver.layers = LayerNumberToMask(8);
    Cheers,
    Pärtel
     
  20. IDreamofIndie

    IDreamofIndie

    Joined:
    Dec 24, 2014
    Posts:
    37
    I am getting a popping motion while using the FullBodyIK and Grounder FBBIK. Any Idea what is causing this and how to minimize it/completely stop it?
     
  21. IDreamofIndie

    IDreamofIndie

    Joined:
    Dec 24, 2014
    Posts:
    37
    It seems it has to do with the Ragdoll Workshop asset I'm using with Final IK. It uses a animated rig that a ragdoll copies/matches. The animated rig doesn't look to be popping but the ragdoll is.
     
  22. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Hi!

    What happens if you switch the Animator's "Update Mode" to "Normal" or "Animate Physics"?
    What does the "popping" look like exactly, is it rapidly flickering, does it happen at all times?

    Cheers,
    Pärtel
     
  23. IDreamofIndie

    IDreamofIndie

    Joined:
    Dec 24, 2014
    Posts:
    37
    After doing a quick build it is gone. Looks only to be in the editor.
     
  24. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    That hints me that it might be that IK is updated in LateUpdate each floating frame, but Ragdoll Workshop maybe is doing it's thing in FixedUpdate. In the Editor the framerate is slower and so sometimes there can be more than 1 FixedUpdate called per frame, which might be messing something up.
     
  25. Wiseman17

    Wiseman17

    Joined:
    Aug 17, 2013
    Posts:
    21
    Hi Partel,

    Your component looks really nice and I've enjoyed the videos.
    I have 2 questions about it. Sorry if they are duplicate, but I really can't read all the 24 pages :)

    Q1: Imagine I have a kick animation and a character is kicking a door. Is it possible with a help of FIK to "stop" the kicking leg from passing through door in case if it is not broken by the kick? And let it pass otherwise?

    Q2: Is it possible to blend from ragdoll lying on the ground to a certain lying animation? Imagine in your "bomb" demo on Youtube your character is not landing on his feet but going all ragdoll after this beautiful flight and then I want him to get up gracefully.

    Thanks beforehand.
     
  26. Nixellion

    Nixellion

    Joined:
    Jun 17, 2015
    Posts:
    4
    Hello, Partel Lang!

    We are currently planning to use FinalIK for a couple of tasks for our game, one of them is Aiming.

    The problem is, that for our pipeline and approach we chose to put a range-weapon bone outside of the wrist in the hierarchy. So it goes like:

    Reference
    --range weapon
    --hip
    ----spine

    instead of
    Reference
    --hip
    --spine
    ----spine1
    -------arm - elbow - wrist - weapon

    The question is, is it possible to somehow adapt or setup AimIK to work with this bone structure?
    Thanks!

    P.S.: Answering my own question - I came up with a mix of LookAt script and full body biped ik. LookAt on weapon bone, and bipedIK's arms attacked to this weapon. Works so far, but maybe there is a more elegant solution?
     
    Last edited: Jun 17, 2015
  27. Hedonsoft

    Hedonsoft

    Joined:
    Jul 11, 2012
    Posts:
    168
    I'm using a keypress to enter/exit aiming mode but the transition is very jittery. Am I putting this in the wrong place?

    Code (CSharp):
    1. void LateUpdate()
    2.         {
    3.             if(ik!=null)
    4.                 rightHand.positionOffset += rightHandOffset;
    5.             if (Input.GetKey(KeyCode.P))
    6.             {
    7.                 weapon = anim.GetInteger("Weapon");
    8.                 if (weapon > 0)
    9.                 {
    10.                     useAim = !useAim;
    11.                     useIK = useAim;
    12.                     Debug.Log("Aim: " + useAim);
    13.                     if (useAim == true)
    14.                     {
    15.                         rightHandTarget = GameObject.Find("RightHandTarget").transform;
    16.                         leftHandTarget = GameObject.Find("LeftHandTarget").transform;
    17.                         anim.SetBool("Aiming", true);
    18.                     }
    19.                     else
    20.                     {
    21.                         rightHandTarget = null;
    22.                         leftHandTarget = null;
    23.                         anim.SetBool("Aiming", false);
    24.                     }
    25.                 }
    26.                 else
    27.                 {
    28.                     Debug.Log("Can't Aim");
    29.                 }
    30.             }
    31.         }
     
  28. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Hi, Wiseman17, sorry for the delay

    Q1: Yes, for example the easiest way would be probably to just limit the position of the foot relative to the character:

    Code (CSharp):
    1. public FullBodyBipedIK ik;
    2.  
    3.     public float maxFootZ;
    4.  
    5.     void LateUpdate() {
    6.         // Foot Z in character space
    7.         Vector3 footZ = ik.transform.InverseTransformPoint(ik.references.leftFoot.position).z;
    8.  
    9.         float offsetZ = footZ - maxFootZ;
    10.  
    11.         // If foot is closer than max Z, do nothing
    12.         if (offsetZ < 0f) return;
    13.  
    14.         // Compensate for the offset so the foot never goes beyond maxFootZ
    15.         ik.solver.leftFootEffector.positionOffset -= ik.transform.forward * offsetZ;
    16.     }
    Q2: Very soon, I will upload the next version of FinalIK this week and it will include a "Ragdoll Utility" that does just that. If you're in a hurry, let me know, I'll put together a quick patch.

    Hi!

    You can add an empty gameobject to where the weapon should be in his hand, use it as the Aim Transform.
    Then you need just 2 lines of code to put the "range weapon" to where the empty gameobject is after AimIK is done:

    Code (CSharp):
    1. rangeWeapon.position = aimIK.solver.transform.position;
    2.         rangeWeapon.rotation = aimIK.solver.transform.rotation;
    You'll have to make sure that code runs after AimIK, so add it to a higher value in the Script Execution Order.

    Hi!

    When you write
    Code (CSharp):
    1.  rightHandTarget = GameObject.Find("RightHandTarget").transform;
    , you'll probably assign that rightHandTarget as the IK target?
    In that case the IK target position will jump from one place to another in a single frame.
    When you are not changing the IK target position smoothly, you'll need to lerp the weight in/out smoothly.

    So if you wish to stop aiming, just lerp out the IK weights, not need to set IK target to null. Then if you wish to resume aiming, just lerp the weight back in again, smoothly with Mathf.SmoothDamp or Mathf.Lerp.

    Cheers,
    Pärtel
     
  29. Hedonsoft

    Hedonsoft

    Joined:
    Jul 11, 2012
    Posts:
    168
    Looking into Lerp() now but as I was playing around I found that changing
    Code (CSharp):
    1. Input.GetKey() to Input.GetKeyUp()
    actually made it better. I mean it's still not great but functional.
     
  30. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,347
    also try not to use GameObject.Find in a Update loop. expensive call. try to set it as a parameter on the script. saves a lot of processing time
     
    Partel-Lang and Hedonsoft like this.
  31. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    6,497
    Is there a limit to how much stuff I'm able to put on a solver? Like, can I use an FBBIK grounder, Aim IK, and Look At IK all on the same thing? I'm only going to be animating one or two things at a time so performance is a non-issue.
     
  32. Wiseman17

    Wiseman17

    Joined:
    Aug 17, 2013
    Posts:
    21
    Hi Partel,

    Thanks for the answers.
    No great hurry for the ragdoll stuff, and thanks for your work beforehand :)
     
    Partel-Lang likes this.
  33. Carpe-Denius

    Carpe-Denius

    Joined:
    May 17, 2013
    Posts:
    809
    How would you do entering a car?
    I have a mocapped animation for that, but it doesn't fit every car. Would you use the animation as a base or use IK only?
    "sitting in car" is practically completely overwritten by IK.
     
  34. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    No limit here, you can stack up as many components as you wish, they work like layers, each one reads the pose of the character, solves and writes the results back on the bones. You'll just have to keep in mind the order in which they update, it needs to be logical. Grounder updates automatically with the IK solver(s) it is associated with.

    Hi!

    You can use FBBIK effector positionOffset to adjust the mocap animation to fit each vehicle:
    Code (CSharp):
    1. ik.solver.leftHandEffector.positionOffset += wheelOffset;
    wheelOffset is the offset of the current vehicle's steering wheel from the mocap position of the steering wheel.

    Cheers,
    Pärtel
     
  35. Carpe-Denius

    Carpe-Denius

    Joined:
    May 17, 2013
    Posts:
    809
    The position between opening the door and sitting down is wrong, too, so I would have to match the body first to the opening position and then to the entry (since some doors are more narrow the foot tends to stick trough the car because the animation has bigger steps) and then to the seat, so I thought maybe it is easier to scrap it altogether.

    But it seems that you prefer using the animation and put IK on top, so I will try that. Thank you
     
  36. Augmented_Island_Studios

    Augmented_Island_Studios

    Joined:
    Feb 16, 2012
    Posts:
    58
    Hello.

    I have a few questions that I did'nt seem to find an answer for in this thread (just took a quick look on it, sorry if have been answered).

    I made a character with bendy limbs but I want to use Iks to make it look around and use a flashlight aiming with its hand, but in order to keep the bendy limbs animation, I have to set the character with a Generic type of rig in Unity, Humanoid destroys the animations and is mandatory to use Humanoid rigs to be able to use IKs in Unity (currently).

    I wanted to know if it's possible to use Final IK to get the result I want? (I guess Final IK does work with generic rigs as I've seen from the videos).

    Here's a picture of the character's arm and I used CAT in 3Ds Max and set it up with splines IKs:
    upload_2015-6-25_10-45-44.png

    Thanks
     
  37. Yokil

    Yokil

    Joined:
    Sep 9, 2012
    Posts:
    26
    I am experiencing the final ik where you want to make a character ride a bike, i wonder if you could give me any direction.

    Thanks
     
  38. arcdragon1

    arcdragon1

    Joined:
    Oct 15, 2012
    Posts:
    118
    Hi, team.
    i try to use Recoil.cs.
    i use full body biped ik's left hand effector position with recoil.cs but left hand don't move with recoil moving.
    character is rifle aim anime posing.
    could you help me?
     
  39. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Hi!

    Yes you can use Final IK on a Generic rig.
    If you want third person flashlight aiming, you can use AimIK for it. Just use it as you would with a normal gun.
    It was done perfectly in Forgotten Memories, using Final IK. :)

    Hi!

    Yes, you can do it exactly like in the Driving Rig demo scene. Just pose a copy of the character to the bike, then parent key bones (hand, feet, thighs) to the bike parts and use them as FBBIK effector targets.

    Hi!

    Effector.position has priority over positionOffset, so if positionWeight is 1, the effector will be pinned to effector.position, ignoring positionOffset.

    To solve the problem, you can either use positionOffset instead of position for the left hand or add effector.positionOffset to effector position.
    You can do the latter by using the FBBIK solver's OnPreRead delegate:

    Code (CSharp):
    1. void Start() {
    2.             ik.solver.OnPreRead += OnPreRead;
    3.         }
    4.  
    5.         void OnPreRead() {
    6.             ik.solver.leftHandEffector.position += ik.solver.leftHandEffector.positionOffset;
    7.         }
    So each time before FBBIK reads the pose of the character (Recoil has updated the positionOffset by then), you'll add that positionOffset to the position value.
     
  40. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    I'm finally back from Unite Europe in Amsterdam, it was an amazing experience and so cool to actually meet so many Final IK users. Thanks to all who came by the kiosk to say hi! :)

    10632857_10206213863719998_8829623438111702756_n.jpg

    I was too busy to even announce it, but you may have already noticed Final IK 1.0 is available for Unity5! :D
    I also have a new website and a Google Group for improving the support.

    When you upgrade, make sure to backup your project.
    Also, open a new scene, delete the old RootMotion folder and reimport. Major changes were made to the demo assets so that is definitely necessary.
    I also had to rename the RootMotion.FinalIK.Demos namespace to RootMotion.Demos to support other future RootMotion packages so if you are referring to any of the FinalIK demo scripts, you'll have to rename "using RootMotion.FinalIK.Demos;" to "using RootMotion.Demos;".

    Cheers!
    Pärtel
     
    MIK3K, WendelinReich and theANMATOR2b like this.
  41. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    571
    Wanted to say hi but there was always a big crowd at your booth. One of the opportunities I missed unfortunately.
     
  42. arcdragon1

    arcdragon1

    Joined:
    Oct 15, 2012
    Posts:
    118
    oh wonderful easy solution!
    very thanks!
     
  43. Nadan

    Nadan

    Joined:
    Jan 20, 2013
    Posts:
    339
    Hi! I recently bought Final IK and still learning.

    What would be the best way of using Final IK and ragdolls?

    Before I've had a character in T-pose, then I've added the Unity's Create Ragdoll to make one. I've used Animator to animate the character. And when the character dies I've set the Animator component and IsKinematic to false. This way the character has turned into Ragdoll.

    Now I got a character that has Full Body Bibed IK skript. I tried to use the Unity's ragdoll system and it added all the colliders with rigidbodies to it but it didn't work.

    I noticed there is a demoscene Mapping To Ragdoll that has ragdolls. How are these made?

    I could just destroy the character and instantiate a ragdoll prefab but it would lose the limbs position etc.
     
    Last edited: Jun 27, 2015
  44. arcdragon1

    arcdragon1

    Joined:
    Oct 15, 2012
    Posts:
    118
    oh, i also try to recoil dummy humanoid, doesn't working...
    set left position.


    set left hand effector.

    now recoil but left hand doesn't following.

    use code.
     

    Attached Files:

    • ik1.PNG
      ik1.PNG
      File size:
      104.2 KB
      Views:
      1,159
    • ik2.PNG
      ik2.PNG
      File size:
      15.4 KB
      Views:
      1,153
    • ik3.PNG
      ik3.PNG
      File size:
      355.4 KB
      Views:
      1,143
    • ik4.PNG
      ik4.PNG
      File size:
      11.8 KB
      Views:
      1,150
  45. giordano123

    giordano123

    Joined:
    Jun 16, 2015
    Posts:
    5
    Hello..pardon for my question as i was just a noob when comes in animation.. Does "final IK" can help with my problem?

    here's the scenario:

    i have a set of animation in mechanim that i want to convert in legacy.. but when the animation are converted in legacy and tested it, my models are messed up,it's foot are uneven.. i want to convert a mechanim animation to legacy along with the "foot IK"
     
  46. chaneya

    chaneya

    Joined:
    Jan 12, 2010
    Posts:
    402
    Partel,

    I thought you might be interested in seeing the fruits of your labor in an actual game.
    My game "Balancing Act" would have been much more difficult to create without Final IK, so thank you.
    Final IK took care of foot IK and keeping the character grounded in both biped upright as well as prone/crawling. I was able to modify your code to seamlessly switch between grounded crawling on all fours and upright, thanks to your support.

    I released "Balancing Act" a few months ago on both iOS and Android. It's free to play so there is no cost.
    Android
    https://play.google.com/store/apps/details?id=com.permafrostgaming.balancingact
    iOS
    https://itunes.apple.com/us/app/balancing-act/id916254100?mt=8

    And if you just want to take a quick look at the trailer.


    Again thanks for making Final IK and selling it on the Asset Store. :)
    Allan
     
    Partel-Lang likes this.
  47. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,295
    does final IK contain a solution to easily setup and manage Ragdoll for non humanoid character ?
     
  48. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,987
    Hey, maybe see you next time then.. Btw you also missed the opportunity to get some candy and a scarf :D

    Hi, Nadan, and thanks for the purchase!

    The latest version (1.0) has the RagdollUtility component that makes it easy to go to ragdoll from a IK-configured pose and smoothly blend back to animation, even use IK on top of the ragdoll simulation. Check out the "Ragdoll Utility" demo scene. Without the utility you'd have to disable the IK components when you switch to ragdoll.

    Hi!
    There is a mistake in the code, it's supposed to be
    Code (CSharp):
    1. ik.solver.leftHandEffector.position += ik.solver.leftHandEffector.positionOffset;
    , not just =

    and also make sure ik.solver.leftHandEffector.position is set to something (the left hand target position) in every frame, otherwise it will be accumulated by the code above.

    Hi!

    No, Final IK doesn't have anything for that, sorry.
    You might want to try to find an animation baking/recording tool from the Asset Store. One that would simply bake a playing Mecanim animation to a Legacy animation clip.

    Hey, thanks for sharing that! It's awesome to see such fun looking games made with the help of Final IK, I'll go download it ASAP and add it to my little list of FinalIK-powered games. :D

    Hi, Damien, nope, not Final IK, it's primarily a kinematics tool, not a dynamics one, sorry.
     
    WendelinReich likes this.
  49. Nadan

    Nadan

    Joined:
    Jan 20, 2013
    Posts:
    339
    Ok, I did that and this is exactly what I was looking for. Good thing that I updated to the latest version as well, lots of goods to try out. :) thanks!
     
    Last edited: Jun 28, 2015
  50. Nadan

    Nadan

    Joined:
    Jan 20, 2013
    Posts:
    339
    Hi, I'm having problems assaining the RagdollUtility to my character.

    My character has Full Body Bibled IK and I added the Ragdoll Utility script to it. But I get these errors:

    Code (csharp):
    1. IndexOutOfRangeException: Array index is out of range.
    2. RootMotion.FinalIK.RagdollUtility.get_isRagdoll () (at Assets/RootMotion/FinalIK/Ragdoll Utility/RagdollUtility.cs:368)
    3. RootMotion.FinalIK.RagdollUtility.FixedUpdate () (at Assets/RootMotion/FinalIK/Ragdoll Utility/RagdollUtility.cs:289)
    I noticed that the Dummy in the example scene has Colliders and Character Joints in the limbs. Do I need to add them as well with Unity's Ragdoll system?