Search Unity

  1. We've closed the job boards. If you're looking for work, or looking to hire check out Unity Connect. You can see more information here.
    Dismiss Notice
  2. Unity 2017.3 has arrived! Read about it here.
    Dismiss Notice
  3. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

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. CentViRe

    CentViRe

    Joined:
    Dec 6, 2016
    Posts:
    4
    It's not that i want actually, simply it integration with hand Interaction system and target. To save postition of hands in item and finding closest controller to interact with
     
    Last edited: Jan 9, 2018
  2. arnoob

    arnoob

    Joined:
    May 16, 2014
    Posts:
    101
    Hello Partel-Lang !

    I am currently in the process of optimizing my game, and especially the characters. I just realized that Final IK (as well as puppetmaster by the way) won't work when you use the "optimize game object" on the rig. Even without root motion's components, it improves greatly the performance. So my question is, is there some work going on to make your asset work with optimized gameobjects in the hierarchy?
     
  3. skinwalker

    skinwalker

    Joined:
    Apr 10, 2015
    Posts:
    133
    Hey,

    I have a list of game objects that have a component called EffectorData, I want to somehow be able to loop through all of the effectors in ik.solver.effectors and compare the current one, if it's equal to once of these EffectorData game objects.

    I thought that adding FullBodyBipedEffector in the Effector that will let me compare them, but it's not possible.

    My idea was to do something like this:


    Code (CSharp):
    1.  foreach (var effector in ik.solver.effectors)
    2.                     {
    3.                         for (int i = 0; i < actorPoses.childCount; i++)
    4.                         {
    5.                             if(actorPoses.GetChild(i).GetComponent<EffectorData>().EffectorType == effector.Type? // won't actually work, because Type is not available)
    6.                         }
    7.                   }
    But there isn't a way to know which type the current effector is.

    Do you have any suggestions how I can compare them? I need to know that I'm assigning the LeftHand EffectorData to the FullBodyBipedIK LeftHand Effector.

    EDIT : I found this

    Code (CSharp):
    1. var currentEffector =
    2.                     ik.solver.GetEffector(effectorData.EffectorType);
     
    Last edited: Jan 10, 2018
  4. wightwhale

    wightwhale

    Joined:
    Jul 28, 2011
    Posts:
    351
    Yea changing it to a max character seems to have fixed the issue in that case. Our character isn't max or UMA but maya. Unfortunately I have the issue pop up in other places when I switch it to max when I'm not using the gun.
     
    Last edited: Jan 9, 2018
  5. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,519
    Hey,
    Please check out my post on Dec 1, the HandPose and HandTarget scripts in that might help you out there.

    Hey,
    No, that can't be used. With it enabled, we are not able to rotate any bones by script and that is what IK needs to do.

    Hey,
    You can actually define you own limb orientations.

    Code (CSharp):
    1. public BipedLimbOrientations customLimbOrientations;
    (In the RootMotion namaspace)

    Fill that in in the editor, then call:

    Code (CSharp):
    1. ik.solver.SetLimbOrientations(customLimbOrientations);
    To know how to fill in the custom limb orientations definition, you should imagine your character standing in I-pose (not T-pose) with legs together and hands on the sides...
    The Upper Bone Forward Axis is the local axis of the thigh/upper arm bone that is facing towards character forward.
    Lower Bone Forward Axis is the local axis of the calf/forearm bone that is facing towards character forward.
    Last Bone Left Axis is the local axis of the foot/hand that is facing towards character left.

    Best,
    Pärtel
     
  6. wirelessdreamer

    wirelessdreamer

    Joined:
    Apr 13, 2016
    Posts:
    55
    When I move my character around and my camera rig is at different heights, with vrik on the character, and the camera rig changes its height on the terrain, the character is still staying at the old height. Any ideas?
     
  7. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,519
    Hey,
    You should have some kind of a character controller on that character with a capsule collider that keeps it on ground level.
    Or just make a raycast down from the character root position and adjust the Y of the root accordingly.

    Best,
    Pärtel
     
  8. arnoob

    arnoob

    Joined:
    May 16, 2014
    Posts:
    101
    Okay, but wouldn't it be possible to do it by keeping the affected bones exposed, and putting some unity joints on them? It seems that it would make FIK much more performant.
     
  9. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,519
    Even if they're exposed, they still can't be rotated, they are there just for parenting stuff on them or reading their positions/rotations. Read-only basically.
     
  10. RPowers

    RPowers

    Joined:
    May 14, 2015
    Posts:
    40
    Hi. I'm working with VR trying to get the camera to look right, but am having an issue with the camera being inside or just in front of the character's head. I tried placing the target far enough back so the camera is just barely in front of the head when I run. That looks fine, but if I move my head rapidly in game then the character's head takes a few moments to catch up to the target allowing the camera to briefly see parts of the head. For now I've set the scales of the character head to 0 to hide it, but I'd prefer not to do that. It'll cause complications for me later on. Is there a way to make the head not have to catch up to the target and just instantly be in synced with the target for every frame? Hopefully that made sense. I've looked everywhere and can't find a simple solution to this. Thanks!
     
  11. Spaceleigh

    Spaceleigh

    Joined:
    Jun 24, 2017
    Posts:
    1
    Hello. I have been using FinalIK for a few weeks now and love all of the little things you can do with it.

    The issue that I'm having is with VRIK. I'm using a makehuman model for my rig, and everything works fine except the size is off (ie, mesh isn't as wide as your arms). I've seen that others have had similar issues, and following advice I rigged a simple "arm stretcher" that would make my arms match up with the controller position. However, this looks just awful, especially when combined with the locomotion which makes my character tiptoe. I'm trying to figure out a way to calculate the arm length based on controller position, but nothing is working quite right. Are there any plans to include something like this in a future release?

    thanks!
     
  12. DrInternet

    DrInternet

    Joined:
    Apr 6, 2014
    Posts:
    22
    This disables movement of the gameobject and makes feets 'glued' to the ground. I want the gameobject to follow the target as earlier, but without the procedural animation.
     
    Last edited: Jan 15, 2018 at 1:07 AM
  13. ledbetterman

    ledbetterman

    Joined:
    May 5, 2015
    Posts:
    33
    Hey Partel-Lang, really enjoying familiarizig myself with Final IK. Running into some strange behavior in the grounded demo. No matter the direction I press, the pilot runs straight ahead. When I select the "strafe" option in the character controller, I'm able to control the Pilot's direction via the mouse, but now he moves at walking speed. Also, his legs jitter and pop when walking over the stairs in the scene. IK is clearly solving correctly, but the dynamic animation looks a bit off. Is this expected behavior?
     
  14. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,519
    Hi all!
    Final IK just had it's 4th birtday on the Store so I'd like say big thanks to all of you for your support and for helping me improve the package further for the years to come! It has been a real pleasure and always a great honor to see all the cool things you have done with it!
    :)

    Hey,
    It absolutely should be in sync with the target each frame. Maybe you have "Plant Feet" enabled and the feet are sometimes too far to reach and they drag the character down if that happens, causing the head to lose contact with the target. Try disabling "Plant Feet".

    Hey,
    Version 1.7 with automatic arm stretching and arm length multipliers has already been submitted to the Store and is pending review. If you are in a hurry, please send your invoice number to support@root-motion.com and I'll give you the latest right away.

    Yes, without procedural locomotion the character will just stand there. You'll need to use a classic 8-direction strafing blend tree tp move the character towards the horizontal position of the HMD with root motion. Here's a WIP demo to get you started with animated locomotion for VRIK.

    Hey,
    A known issue of the demo character controller with Unity 2017, will be fixed when v1.7 hits the store (currently pending review), but you can download a patch from here.

    Cheers,
    Pärtel
     
    dyupa and blitzvb like this.
  15. EgoAnt

    EgoAnt

    Joined:
    Dec 13, 2014
    Posts:
    16
    I am having some trouble with VRIK. When I hook up my character the hands are bent back 90° compared to what they should be. Any idea how I can solve this? I've tried a couple things but when I try to offset the rotation I end up with my hand twists going along the wrong axis.

    hand-back.jpg
    hand-fwd.jpg
     
  16. DrInternet

    DrInternet

    Joined:
    Apr 6, 2014
    Posts:
    22
    Thank you, that's exactly what I needed.

    Another question: can I somehow use Hand Poser with VRIK? I don't really care about interaction system, I just want to something to interpolate hand bones between two posses.
     
  17. Mikekan13

    Mikekan13

    Joined:
    May 30, 2015
    Posts:
    17
    Hopefully, this explains my problem:
    I feel like I just haven't set it up properly to work with VRTK. I looked at your demo but it didn't seem like that was taking into account vertical movement. I am talking about virtual movement. My control scheme is based on arm swinging with some head watching to make the player walk or run in place irl to move in the game.
     
  18. wirelessdreamer

    wirelessdreamer

    Joined:
    Apr 13, 2016
    Posts:
    55
    @Partel-Lang I've been working with your VRIK locomotion with animation demo, and the body that's moving around turns in really strange directions. what is the best way to get it to behave more natural. I'm looking to have the hips always pointed in the direction we're moving.

    My issue was caused because the head transform I attached to wasn't properly oriented, its working now.
     
    Last edited: Jan 17, 2018 at 6:21 PM
  19. MSellars

    MSellars

    Joined:
    Jul 18, 2017
    Posts:
    1
    Hi Partel

    I'm working with both VRTK and you VRIK and I'm struggling a bit in one aspect. VRTK came up with a script for finger control (pull the trigger and the fingers curl). I like what they've done because they've also coded future applications for when using Valve's Knuckle controllers. I'm using the VRIK to track my movements and i was wondering if there was a way to integrate the two together.