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

Hey,
If you have “Auto Sync Transforms” disabled in Physics Settings, will need to make sure you call Physics.SyncTransforms() after Final IK components have updated.

Best,
Pärtel

Hello,

I’m relatively new to Final IK, but after testing and setting it up, I can see that your asset is incredibly powerful and efficient. However, the documentation feels a bit “old-fashioned”, though it remains very comprehensive.

I have a question: I’m trying to implement procedural walking/gluing with Grounded. I’m not sure if there’s already a script available for this, but I haven’t come across one; the only reference I found was on the mechspider. So, I was wondering if it’s possible to create procedural walking using the tools in your excellent asset, and if so, how to go about it.

To better illustrate what I’m asking: https://youtu.be/HdHCION1QCA?t=17
(I take FImpossible Créations (Legs Animator) video because it is the best for the exemple i want with Final IK)
Or your VRIK which use procedural walk foor biped ik.

Thank you in advance for any help you can provide.

Can I ask a conceptual question?
Is Human IK in Maya (or other software) the same as FullBody IK in game engines? They both seem capable of things like moving one hand to affect the entire body. Can Human IK be considered Full-Body IK, or is there no clear definition distinguishing the two?

I have never used Maya’s Human IK, but the FullBody IK in game engines is often implemented differently.

(1) Unity’s native FullBody IK treats the LookAt IK and limbs as TwoBone IK for separate solving, so it does not move the whole body.

(2) FinalIK has a similar method to Unity’s native approach, as well as a method that uses the Multi-Chain FABRIK.

(3) Unreal Engine’s FullBody IK used to use an iterative method for solving, but now it uses a physics-based simulation method based on PBD (experimental).

If Human IK specifically requires a human-like model, then it is likely to be similar to the methods in Unity/Final IK, which require some known skeletal hierarchy structures.

1 Like

Hey,

the VRIK has procedural locomotion, but it doesn’t look as good as that Legs Animator thing, but VRIK also has a procedurally driven animated locomotion mode (more info here). Then there’s the Mech Spider, but again, Legs Animator seems to do that better and probably easier to setup.

Hey,

I’d say Full Body IK is any IK that deals with the full body, all the limbs and the spine, as a whole. So for example pulling the character from the hand would also affect his spine and legs. There’s no difference if a Full Body IK works in a 3D app like Maya or a game engine, under the hood it’s basically the same thing.

Best,
Pärtel

Hey All - I’m using FinalIK with Playmaker and getting good results. Here is my situation

  • I have multiple interaction targets
  • Player presses button, interacts with first target.
  • While player interaction on first target is paused, player presses button and interacts with second target

When I move between targets like this, the interaction ignores the interaction target curve. Instead, the player’s hand just snaps to the new target in a single frame. How can I adjust my interactions so that moving from one interaction to another continues to use the smooth interaction curve? Any advice or feedback is appreciated. Thanks!

Nevermind, I figured it out. I was using FBBIK Limb to control the model instead of the actual interaction system… All good!

1 Like

Okay, I spoke too soon. I believe that my logic is set up well, but every time I move an effector from one target to a second target, the effector teleports to the hand pose instead of slowly moving as an interaction. My logic is as follows:

  • Player press C
  • Start Interaction with Interaction Object (THIS INTERACTION WORKS PERFECTLY)
  • Player press A to activate left hand effector
  • Player click on next Interaction Object
  • Start Interaction with next Interaction Object
  • Left hand effector position immediately changed to next Interaction Object. Interaction speed is ignored and the effector simply changes from position 1 to position 2 in a single frame.

Can anyone help me troubleshoot this! Thank you!

Hey,

It has been a limitation of the Interaction System since forever, I mean not being able to go smoothly from interaction to interaction. A solution has been to use a single interaction object for something like a keyboard, pause the interaction with the finger on a key, then move the interaction target via animation or code. But I finally found some time to address this issue, so please grab this patch. Should be able to go smoothly from interaction object to another object now if you call the interaction with interrupt = true.

Cheers,
Pärtel

1 Like

What’s happened to the docs? It’s not available anymore :frowning:
https://www.root-motion.com/finalikdox/html/index.html
https://www.root-motion.com/finalikdox/html/classes.html

EDIT. Weird, I can see the page from the Chrome browser on my phone, but it can’t be found with a Chrome on laptop. Both devices connected to the same wi-fi. Is anyone else experiencing similar issues?

1 Like

Hey,
Should work if you remove the “s” from “https”.

Best,
Pärtel

2 Likes

It works! Thanks a lot!

Hey - thanks so much for patching that! What great timing! The interactions now move smoothly between interaction objects. It’s great, so thank you again.

Is there a way to make it so that the interaction does not go back to the starting point at the end? Each time I do an interaction, the hands go back to starting position, and THEN they move to the next interaction point. I would like to be able to go to interaction point 1, and directly to interaction point 2, without putting the hands back down.

This crappy gif illustrates the current issue: Sample gif

Thanks so much for any help you can provide!

Hey,
Please try this, does it improve things?

Also try tweaking “Switch Interaction Speed” on the InteractionSystem component.

Best,
Pärtel

1 Like

Worked like a dream - thank you. :pray:

Question - when working with rotation limit hinges, what is this area of overlap? I am adjusting the min and the max, but I can’t seem to make it so that this area in red disappears? It is always blue for some reason.

thank you, once again.

Final_IK
I feel like it should be a very basic thing but I don’t understand how to handle it.

  1. I have an animation (actually a one frame pose) with a Humanoid character with a hand behind the back.
  2. I put a game object exactly where the hand is to use it as Hand Effector
  3. I add Bend Goal to be sure elbow is controlled as well.
  4. My goal is to get a starting pose similar to the original one (from the animator) but with IK hand enabled. Unfurtunately, FBIK solve the upper arm quite difefrently and rotate it weirdly.

What’s the intendent approach to this case? Is there a way to limit the Upper Arm rotation in certain axis? Or maybe I can deliberately add rotation offset to the upper arm bone?

PS. Needed to mention that I tried to use “Rotation Limit Angle” but somehow it works great while limiting animated bones rotations but influences the arm rotation very mildly when IK goals are in use.
FinalIK_RotationLimit

edit. Reading documentation is great practice! I find out that FBBIK is saving “zero” bones rotations on start and then uses that rotations in calculation. So, disabling FBBIK component before posing a character and then enabling it again did a great job for controlling the starting pose and somehow fixed most of teh elbow issues. But I still eager to know what are the intendent ways to control bones rotation more precisely during the IK calculations.

edit2. Unfurtunately, disabling&enabling FBBIK is not solving the issue. It works only once when we start without enabled FBBIK. As soon as we enable it for the first time it saves the “zero pose” values and further enable toggle will not trigger those values update. Is there a way to “reinitialize” FBBIK except deleting it and adding on runtime again?

Hello,
I’m new to final IK, the features I have tested so far are really useful like grounder. I wanted to make my player aware of the surroundings while walking, like touching the wall and placing the hand on the correct position while climbing. Please guide me through the process or point out the system included in Final IK for these. Also I am really interested in using puppet master too.

Hi Partel-Lang,
Does FinalIK have a plan to launch an iterative method IK solver that is applicable to any model like UE’s FullBodyIK? I found that although I can imitate that effect to a certain extent by combining different IK solvers, its constraint and other settings are really convenient and the effect is outstanding and irreplaceable.

Hey,
Since 0 is the default rotation, then min is supposed to be negative and max positive. If you see that overdraw, you have either both negative or both positive and the rotation of the object will snap to closest limit as soon as you hit play.

1 Like