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

Hey,
MechSpider was designed just to demo the IK solvers, not as a universal spider rig, so it is difficult to make it work with your own spider. If you could send me what you have, I’d take a look and see if I can fix it for you.

Hey,
Do you have ground layers included in Grounder’s “Layers” LayerMask? Also please make sure the character controller capsule’s layer and ragdoll collider layers, if you have them, are not included in there. Also whatever those sphere colliders are on the feet, make sure they are not included either.

Hey, glad you found it already, was about to suggest that. Or if you only need the root rotation part of it, can pull the RootRotation() method out of it into your own script.

Cheers,
Pärtel

1 Like

Would you mind “Or if you only need the root rotation part of it, can pull the RootRotation() method out of it into your own script.” That would be great, the controller is a bit overkill.

Here you go :slight_smile:
Just add it to your LookAtIK gameobject.

Thank you very much

All those colliders are on the “player” layer and NOT selected in the layer mask.

I was wondering, is there a reason why the Body Effector in the Full Body Biped IK doesn’t have a Rotation Weight parameter like the old BipedIK component does with the Pelvis Solver?

This would be extremely useful in my usage case, is there any way to get this functionality with FBBIK?

Hi Pärtel,

I just bought the package and I have a few questions in regards to retargeting the skeleton from a Motion Caption software to unity. You see the original Mechanim is very bad at retargeting the skeleton when you stream data from the MoCap software (Motive, using OptiTrack cameras), so I got a suggestion from their support team to use this package but I can’t figure out how to utilize the package.
Trying to stream both full body with active trackers and a VR HMD (HTC Vive Pro) and everything looks fine in Motive but for some reason it doesn’t work in unity. I think i’ve somehow not deactivated Mechanim, but i can’t figure out what the problem is or how to fix it. Any thoughts?

Hey,
Could you send me a repro or something, maybe just a unitypackage with the character and your Grounder setup so I could take a closer look? Otherwise all I can do is guess.

Hey,
That is not supported by the algorithm, but can be done with a bit of additional code. Please check out the “Offset Effector” demo and try rotating the “Pelvis Effector” and “Spine Effector”

Hey,
I’m sorry I have no idea, never tried that and don’t have the hardware to test it here. What is your IK setup, using VRIK?
Do the gameobjects you assign as IK targets move?

Best,
Pärtel

I’m using VRIK, I’m gonna try to follow the VRIK tutorial and experiment a bit. The gameobjects don’t move properly either, but that might be because I haven’t set the solver up properly

If the gameobjects don’t move properly, that is something about whatever it is that makes them move. The IK only reads the position of the targets so that is not a problem with the IK solver.

Hi Partel, thanks for all the work. I’m having some issue with the combination of VRIK (on the player) and AimIK (on the NPCs). This is specifically related to Fix Transforms.

In my setup, there are multiple hitboxes which are child’ed to the bones of the player which are animated and moved around by VRIK, as they are detected by the NPC, they are all added to a list which decides which is the priority target. However, due to Fix Transforms being enabled on the player, NPC’s aimIK.solver.target, despite being the correct player Transform (the prioritised hitbox), it ends up aiming at the “old” position because of Fix Transforms. If I turn that off on the player, the NPC now aims at the correct position when the editor is paused, but once it resumes, the VRIK no longer works properly with the player avatar constantly floating towards the sky. Is there anyway I could keep Fix Transforms turned on, but for the AimIK of the NPC to get the transform position of the target after it’s been moved around by the IK solver instead of before? Screenshot attached to hopefully help illustrate the problem I’ve got. Thanks in advance.

Hi @Partel-Lang

Rather new to Unity but not C#. Interested in buying this asset.

Is this asset something I can use with a baked walking animation on a spider to get it to smoothly climb upside down and vertically on mesh colliders in my scene (like climbing up a pole to the ceiling)? Like… Is this something that can move the end of a leg bone in the armature to a mesh surface without respect to gravity and could therefore move a spider in any orientation of a defined mesh contact layer?

What would be required to accomplish something like this?

Thanks.

Is there a simple way to just use leg locomotion? I cant seem to get the legs to walk like they do in VRIK. I want it in non-VR. just the same leg locomotion, is this possible?

Hi @Partel-Lang ! I was wondering how I would implement thumb-stick transportation with VRIK. I tried using the Oculus OVRPlayerController, but the movement of the legs feels extremely weird.

Hey,
It is a problem with the execution order of things. AimIK by default solves before VRIK, so at the time when AimIK reads the target positions (LateUpdate), they VRIK character is in it’s default pose (set by Fix Transforms in Update).
You could disable the VRIK component in Start() and call vrik.solver.Update() from LateUpdate(). Add the script that does it to a lower value than AimIK has in the Script Execution Order.

Hey,
Yes you can. In the Grounder scene there is an example of a spider-like bot. It can not climb walls, but with “Rotate Solver” enabled and “Root Rotation Weight” set to 0 in GrounderIK, it will consider character root’s Y axis as up axis, so all you have to do is rotate the root’s Y axis to the surface normal.

No, can’t do that, sorry. Only thing I can think of would be to set hand position/rotation weights to 0, then use a script like this to drive the head target:

ik.solver.spine.headTarget.position = new Vector3(transform.position.x, ik.references.head.position.y, transform.position.z);

in LateUpdate(), but I don’t think that will give you very nice results.

Hey, please check out this discussion here.

Cheers,
Pärtel

1 Like

Hey, are there any new features planned for final-IK, Is there a roadmap for it?

Hey,
I have no official public roadmap, but I do have new features I’m working on… Stuff like Timeline support, tools for animating with FIK, UniversalHandPose for VR (posing hands to objects, hand casting)…

This is GREAT.
Keep up the good work, and thank you!

Thanks so much!

Hey @Partel-Lang , I have two questions. How would I scale the world/avatar of the player in VR to make everything the same ratio for players of all heights? Also, how would I hold a weapon or object with VRIK?