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

Something weird happening here :smile: If I change my terrain layer from Default to Ground layer Grounder FBBIK script doesn’t work correctly. I’m pretty sure setting between default and my ground layer is exactly same on project setting/physic … and on the layer section of Grounder FBBIK it sets to everything.

So everything is same between Default layer and my Ground layer why it works with default layer but not with my ground layer?

@Partel-Lang hi, can i use Final IK to build a hand Rig? trying to find a solution to use with oculus Quest hand tracking

Hello!
I’d like to animate the right-hand effector position and rotation during a man that is running. I know how to do this in the ā€œstandardā€ mode:

  • The Effector transform is not a child of the Man root transform.
  • Press play, and during the animation of the man running, press pause at time T: set the Effector pos and orientation, and save its Transform values.
  • Press Stop, and add the Effector Keyframe at time T (I’m animating the effector inside the classic Animation Window).

The problem is that this workflow is very frustating. Maybe there is a quick way to do that?
For example, I found this reply form you:

I tried to use EditorIK and it works, so my new workflow is:

  • The Man animation is played from a Timeline.

  • I set the Effector position as a child of the Man root transform, otherwise it would be too difficult to recalculate by hand all the absolute Effector positions if I’ll use the same running animation for another Man in another position.

  • I scrub the timeline cursor at time T, when I want to move the Effector

  • I move the effector pos and rot, and I immediatly see the changes in the editor

  • Inside the Animation Window of the Effector, at time T, I add a keyframe with the same pos and rot of the current transform of the effector inside the scene.

Everything works fine.
My question is: is this the right way to go, or it is still a workaround and there is a simpler way to do everything?

Thank you!

Hey Guys, just started using Final IK! Excited for all the amazing applications.

What would be a good approach to get a 6 legged giant boss to walk on the ground on various terrain during his walk animation?

Iv’e added Grounder IK to the Character, on the same Game-object as the Animator. Should I add CCDIK, or Limb IK, or Leg IK to each leg?

There isn’t really any Youtube tutorial of Final Ik being fully applied to a non biped/quardraped, as far as grounding the legs.

Iv’e seen the 2 videos on the mechanics spider with 6 legs and I applied CCDIK to the Limbs, but the video is very short and does not show how to ground the 6 legged spiders legs.

The other video is of a procedural walk animation on the same robot spider. Is there any tutorial on how to achieve this?

Would I have to manually raycast to the ground from the feet to find the ā€œTargetā€ of the CCDIK component at runtime? Ir is there a built in way for a CCDIK/Leg IK/Limb Ik to seek the ground?

I’m really not sure how this all works, I was hoping to read and learn, but the documentation does not explain anything about Grounder IK unfortunately.

Grounding, aiming, and looking works out of the box with bipeds, so Im happy with that.

Hi all,

first of all, PƤrtel, thanks for the awesome asset and your seemingly never-ending patience answering questions! =)

I fear mine will also be one that was asked time and time again, but I’m not able to find an answer in this thread or the documentation. Sorry for that in advance.

Final IK works great and did so out of the box. And as long as my character is stationary, everything is peachy. But when I move her around, the effectors don’t move along. Resulting in poses, where her limbs are pointing to the starting point of the character in the scene (as one would expect, if the effectors stay in one place gg).

My setup is: one game object (see above: ā€œPlayer_neuā€) that has all the scripts attached to it as well as the animator and parents the imported character with its armature.

A workaround is, to create empty game objects as targets for each limb and the body and parent them to the said main player object. But that seems not to be the correct way to do it. Right?

If anyone could point me in the right direction, it would be much appreciated.

Cheers,
Volkerror

Hey,
What do you mean exactly by ā€œdoesn’t work correctlyā€ does it just not do anything or is it jittery or what does it look like?
Please make sure if your character has any ragdoll colliders on it, that they are not included in Grounder’s layers.

Hey,
Please import this package. It is a finger mapping tool that can map your avatar’s fingers to any set of target fingers (including Quest hands) independent of bone orientation differences.

Hey,
I’m currently working on Timeline integration. It is still an early WIP and therefore undocumented, but the FBBIK part of it is usable already. The tool is called FinalDirector, you can get the package from here if you wanna try it early.
Here’s a workflow video of me using it to turn a sword hit animation into a spear thrust animation.

Hey,
About which IK component to use, depends on the model, can you share a screenshot or something?
The mech spider use in the video is included in the project, please check out the ā€œMech Spiderā€ demo. You might be able to use the same scripts (MechSpider.cs, MechSpiderLeg.cs) for your character, but they were developed just for demonstrating the IK, not as a universal tool for rigging all kinds of creature.

Hey,
The IK effector positions are defaulted to where their bones are at Start. After that they will not move on their own, they simply don’t know where you want them to be or what you want to use them for unless you tell them.

So before you weigh in position/rotation weight of an effector, you will have to set target position/rotation to where you want the hand or leg to be.

If you told me more about what exactly you needed to do with IK, I will probably be able to give you a better answer and some more specific suggestions.

Cheers,
PƤrtel

2 Likes

Hi all!

Please be welcome to join the new RootMotion Discord server.:smile:

Cheers,
PƤrtel

Thanks for the super quick answer! And I am happy to hear, that it’s not my setup, that is causing problems. Just me, as always not exactly knowing what I’m doing using a new asset (I may have joined in 2018, but am using Unity just over two month and Final IK since … this morning… so…:-D).

My ā€œplanā€ is rather simple. I want to move around the character (via NevMeshAgent) and at a given position start an animation - picking up an item at the moment. The animation should be influenced by the effectors.

My solution is having my player parent a bunch of game objects that are targets for the effectors. When the player moves, those game objects move along with the player (that was the subject my question above). On top of that, when the animation is fired, I use OnStateMachineEnter to change the Right Hand Effector Target and set its Position Weight to 1 (and back again when exiting the state).

It seems to work, but I am not sure, if this is the right way to approach things and am afraid of f-ing up everything in the long run… as the window title in my screenshot above shows … that … uh… happened before in another context (don’t ask me about installing github packages if you are as clueless as me lol).

Cheers,
Volker

Hey,
You might wanna try the InteractionSystem, that was designed exactly for interacting with objects in the scene and picking stuff up and so on.

Best,
PƤrtel

1 Like

Cool! I’ll look into that. Thanks again!

And if I could bother you one last time with my initial question, because I think I have to solve this problem even when I use the interaction system …is there something fundamentally wrong with my approach? =)

Cheers,
Volker

hello

can i change Aim IK Target in runntime? (How)

thanks


solved
AIM Controller lol

Maybe a bit unusual question.
I’m using the lookAT IK to rotate an avatar’s head and chest, and this works great twith a target gameObject.
However, instead of a independent target, I would like to work with a rotation transform. Meaning the Ik lookAt target comes from a x and y rotation value. Any hints?
Thx,Volker

Hey,
If you wanna start doing something with IK, you should first set IK target position-rotation to the object you want to move the hand to, then blend in IK position-rotation weight so the hand moves smoothly to that IK target.

If you don’t set IK target position-rotation, how would IK know where you want to move the hand? So it just uses the default position. If you need IK targets to be in character space and move along with the character, assign a gameobject as IK target and parent it to the root of the character.

InteractionSystem already manages all that so you should not have to worry about it.

Yeah, aim controller or this:

aimIK.solver.target.position = something;

Hey,
Could do this:

ik.solver.IKPosition = ik.solver.head.transform.position + Quaternion.Euler(pitch, yaw, 0f) * character.forward * lookAtDistance;

Cheers,
PƤrtel

Thanks PƤrtel.
This makes sense, having pitch and yaw as variables. However, I have no idea where to use this code fragment. Somewhere inside the IKSolverLookAt.cs or LookAtIK.cs scripts?

Hi! 2 questions:

  • If I want to use Final IK for a custom 8-legged model walk entirely procedurally, what would be the recommended method?

-And, if I wanted to use premade animations but wanted to make sure its 8 legs walked with Inverse Kinematics, what would be the recommended procedure then?

Thanks as always!

Edit: I went ahead and tried to basically copy the CCD MechSpider setup, but my spider is not happy lol. See: Imgur: The magic of the Internet
Any ideas?
The model I’m using is a Spider I made in Blender with the legs already attached. Maybe CCD isn’t meant for models that have legs attached??

I figured it out, just by parenting and offsetting the target gameobject, I can use pitch and yaw control.
Another question, can I make the body/root rotate along with the lookAt IK when the traget is moving towards behind the character? My character is only a torso with a spine-neck-head bones.
Currently if the 5764846--607237--lookAtIK.JPG5764846--607240--lookAtIK2.JPG target is moving towards behind the charcter it flips around.

Hi, I have another question.
When I hit play and hit movement keys, my character acts like it’s getting dragged by that target I circled in red. I don’t know what that target even is! I’ve tried changing the ā€˜Foot’ and removing/adding bones but it is still happening… Any ideas?

Hello, I’m having trouble getting Grounding to work for foot placement. I tried both the Biped IK and FBBIK setup and can’t get either to work. I confirmed the bone references and ground layers have been properly set as per the manual and tutorials.

The height offset seems to work (I can lower the character until the foot touches the ground) but past that none of the foot positions or rotations are adjusted (see picture).

We’re currently on Unity 2018.4.20f1 and Final IK 1.9 and make use of several StateMachineBehaviors. IK pass is enabled on 3 of our animation layers, so I disabled it in case it could interfere but it didn’t help.

All those colliders are gizmos and triggers only.

This is basically VRIK without most of the body and hands

I sort of figured it out. LookAtIK Controller is my friend :wink:
Don’t think this one is documented,