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. Deleted User

    Deleted User

    Guest

    Hi Partel,

    Firstly I'd just like to say thank you for your excellent plugin, I've thoroughly enjoyed playing with it and seeing under the hood of really well-realised IK.

    I'm having a really rudimentary difficulty with the VRIK script; I'm trying to set it up so that based on available inputs it dynamically selects target positions, bend goals etc. This is based on availability/visibility of input controllers, we're working with vive, leap and some proprietary in-house trackers.

    My issue is that having set the models VRIK class as a variable called 'ik', using:
    ik.solver.spine.headTarget.position = headTarget.position; //Where headTarget is the Camera (eye) transform of the Vive prefab
    OR
    ik.solver.leftArm.target.position = leftHandTarget.position; //Where leftHandTarget is a transform adjusted child object of the Controller (left) component

    Keeps giving me NullReferenceException. To clarify, this is a script running on a modified [CameraRig] prefab packaged with the SteamVR plugin. All help would be greatly appreciated! Thanks once again
     
  2. kerrmedia

    kerrmedia

    Joined:
    Nov 4, 2015
    Posts:
    250
    Yikes, a lot to learn, I didn't realize I was looking at Assets from the bot that were already added to the project and not the source IK files.
     
  3. LVermeulen

    LVermeulen

    Joined:
    Jun 26, 2013
    Posts:
    40
    I am trying to make VRIK work when the player is off the ground (the camera rig has a rigidbody attached, can fly and go under water)
    Is there anyway to make the legs/torso move to the players position, but not do the walking movement? So the feet are still right below the head

    Also I am trying to figure out how to teleport the player - calling 'solver.Reset()' after moving the camera rig results in the player still lerping all the way to the new position
     
  4. Deleted User

    Deleted User

    Guest

    I found a solution to the above - just setting the target transforms (instead of position & rotation) removed the error. I think I'd copied the code from one of the tutorial videos, I understand that Final IK has evolved somewhat over the years!
    Cheers,
    O
     
  5. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,556
    Add
    Code (CSharp):
    1. Debug.Log("IK: " + ik);
    2. Debug.Log("headTarget: " + headTarget);
    before you call those lines, use it to check which one of them is null.

    For the movement, set locomotion weight to 0, then write a one-liner that just moves the root along with the HMD, maintaining a certain offset from it:
    Code (CSharp):
    1. ik.transform.position = HMD.position + rootRelativeToHMD;
    About teleporting, when you teleport, also move the root of the character. Call solver.Reset after moving the character root, not after moving the camera rig.

    Cheers,
    Pärtel
     
  6. fup

    fup

    Joined:
    Jan 18, 2016
    Posts:
    76
    Hi,

    A quick one this time... Can I simply scale the root of a puppetmaster character or should I use the puppet scaling script?

    Thanks
     
  7. gekidoslayer

    gekidoslayer

    Unity Technologies

    Joined:
    Sep 27, 2016
    Posts:
    134
    couple of quick questions - have a character set up with finalik, grounder, aimik and lookat, working great, except for a few small details. such a cool system!

    question 1:

    I can't figure out how to blend in and out of the 'ik' version of my character - for the sprint animation for example, I want to 'not' do the aiming thing and just play the raw animation?

    I thought it would be the weight property, but doesn't seem to be affecting the ik, it's still applying even if the weight is zero.

    for details: I have aimik / lookat / final ik & grounder on a single character, but want to blend in and out of the 'aim / lookat' functionality at various points...

    question 2:

    to get a character's second hand to target appropriate points on a weapon, is the interaction object system the right way to go? most of the demos / tutorials I've seen are using the animation's relative position for the hands, but in my case, there are multiple weapons, I'd like to be able to define appropriate 'grab' points for the weapons and have the ik setup grab the weapon as necessary - the positioning afterwards would be (ideally) driven by the aim / lookat system...

    Thanks in advance!
     
  8. EddieChristian

    EddieChristian

    Joined:
    Oct 9, 2012
    Posts:
    725
    First I got to say this is one Package I was Excited about finally buying! :) So the reason I got it was to work with the Oculus using their SDK. I noticed you had one SteamVR video tutorial. I was wondering if you have any that were just Oculus. Mostly I am looking to get the character walking and turning with the joysticks.

    And I am really wondering how I would blend this with Opsive's Third Person Controller or Invector's Shooter Template
     
    Last edited: Aug 28, 2017
  9. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,556
    Hey,
    You can just scale the root uniformly, the puppet scaling script is for showing you how to scale individual muscles as well.

    Hey,
    1. The weight property should do just that. Setting aimIK/lookAtIK.solver.IKPositionWeight to 0 will disable those solvers.
    Maybe it's the effect of FullBodyBipedIK and Grounder you are still seeing, set FullBodyBipedIK's solver.IKPositionWeight to 0 too make sure it is not.

    2. The InteractionSystem is probably an overkill in this case. If you have multiple weapons, you can define left hand offsets for each weapon, then write:
    Code (CSharp):
    1. ik.solver.leftHandEffector.position = ik.references.rightHand.TransformVector(currentWeaponHandOffset);
    in LateUpdate normally, but in this case, when using multiple solvers on top of each other, you'll need to mind the update order of those solvers. That code will probably need to run after you have solved both AimIK and LookAtIK, so use the fullBodyBipedIK.solver.OnPreUpdate delegate to get a call right before the FBBIK updates.

    Hey,
    No tutorial like that for oculus, but the set up process for the IK part if almost exactly the same. Just need to parent those IK targets to the HMD and hand controllers, that's all. There is a demo with the Pilot set up for Oculus under Plugins/RootMotion/FinalIK/_Integration.

    Cheers,
    Pärtel
     
  10. Enumerator_T

    Enumerator_T

    Joined:
    Nov 5, 2014
    Posts:
    16
    I have an issue with yout Mech Spider Controller script.

    I'm using the HTC Vive and i set the camera transform to the eye of the htc vive but when i turn my head to face a direction it continiously turns the mech in that direction instead of turning towards my eye direction and stopping, The eye is on the mech (needs to be as it's first person), is there anything you can do to help me?

    The camera can rotate 360 on the x,y,z axis.
    The camera is attached to the mech.
    The mech rotates continiously in the direction and does not stop rotating.

    Sigh... i just bought your package a few days ago but this is the only problem I've run into.
     
  11. Vortavasail

    Vortavasail

    Joined:
    Apr 22, 2016
    Posts:
    44
    why does VIRK keeps trying to bounce back to 0.0.0 world position when locomotion weight is set to 1 .
    i have to move the toor speed above 200 to make it work.
    is that normal ?

    this is a networked game
    only the client is moving the Avatar.
    its not instantiated at 0.0.0.
    this only happens with UMAs With Mcs it does not
     
  12. igoraleftinovich

    igoraleftinovich

    Joined:
    Feb 11, 2017
    Posts:
    17
    Hello everyone! I'm trying to do a turret aiming with final ik. A have already configured AimIK and rotation limits. The aiming works fine and now I need to do aiming was not immediately, but with some speed. How could I do it?
     
  13. cwmanley

    cwmanley

    Joined:
    Aug 8, 2013
    Posts:
    205
    Hello,

    I am working on a set of Full Body Biped IK Offset Modifiers.


    Is there any way to return the fbbik component to it's starting state with-out creating a new fbbik solver?

    Thanks
     
    hopeful likes this.
  14. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,556
    Hey,
    The camera should not be parented to the mech. Otherwise the mech would turn towards the camera and the camera in turn would be turned by the mech and it becomes sort of a circular dependency issue. Make a little script that just moves the camera along with the mech, but don't touch the camera's rotation.

    Hey,
    Try calling ik.solver.Reset() after you spawn or teleport the character to another position.

    You'll just need to interpolate the position of the target, but do not just lerp it's position, it needs to be rotated around the turret using Vector3.RotateTowards:

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. public class AimTargetRotator : MonoBehaviour {
    5.  
    6.     public Transform target;
    7.     public Transform rotateAround;
    8.     public float minDistance = 1f;
    9.     public float maxRadiansDelta = 1f;
    10.     public float maxMagnitudeDelta = 5f;
    11.  
    12.     void LateUpdate() {
    13.         Vector3 dir = transform.position - rotateAround.position;
    14.         Vector3 targetDir = target.position - rotateAround.position;
    15.  
    16.         dir = Vector3.RotateTowards(dir, targetDir, Time.deltaTime * maxRadiansDelta, Time.deltaTime * maxMagnitudeDelta);
    17.         transform.position = rotateAround.position + dir;
    18.     }
    19. }
    Use the GameObject with that script attached as the target of AimIK.

    Hey,
    Nothing other than going through all the parameters you change programmatically and reset them to whatever the defaults you are using by code.

    Best,
    Pärtel
     
    cwmanley likes this.
  15. pgeorges-dpt

    pgeorges-dpt

    Joined:
    Apr 7, 2016
    Posts:
    43
    Hi,

    I have a ParticleSystem emitting on my SkinnedMeshRenderer that is using VRIK. For some reason, when I move, my SkinnedMeshRenderer clearly gets solved correctly by VRIK but the changes to the SkinnedMeshRenderer don't reflect in my ParticleSystem.

    Any ideas?

    Thanks!
     
  16. igoraleftinovich

    igoraleftinovich

    Joined:
    Feb 11, 2017
    Posts:
    17
    Nice solution! Works perfectly! Thanks!
     
  17. DGordon

    DGordon

    Joined:
    Dec 8, 2013
    Posts:
    649
    Any chance you can implement this into timeline so it overrides animations properly?
     
    rneron1 likes this.
  18. LVermeulen

    LVermeulen

    Joined:
    Jun 26, 2013
    Posts:
    40
    I am trying to use Puppetmaster + AimIK for a non-biped flying monster type thing, and having some issues with general stableness.
    A gif showing scene view: https://gfycat.com/gifs/detail/ElatedKnobbyFirecrest
    Any idea what I can adjust so its better pinned here? Or is it just that I have probably have joints set up incorrectly
     
  19. Catttdaddy

    Catttdaddy

    Joined:
    Mar 17, 2015
    Posts:
    55
    I have a couple of problems that I would need specific answers to in order to use VRIK. VRIK seems to have good potential but I cant get a few specific things to work properly. I am a beginner level coder so I hope to get some specific answers that can help.
    1. VRIK Players head follows the camera but how can I get the camera to follow the head?
    This is a severe problem for me as when I choose to run an animation or apply a force to the player the player's body is moved but the camera is unaffected. I would really like to know how to get the camera to follow the players head at least for short periods of time.

    2. How can I run animations for player movement opposed to the locomotion system that is currently used?
    I found the IKSolverVRLocomotion.cs script that seems to be controlling the locomotion system.
    The code is a bit complex but from the variables it seems like it shouldnt be that hard to do if I knew where to initialize the animations. This would also go for when the head is under s specific distance from the floor/feet go into a ducking animation with the legs layer mask.

    I would appreciate any help from anyone. I know Partel attempts to help with quick answers and is very busy. Often the answers I see are above my coding skills to understand or implement. I would really appreciate anyone who can give me information on how to work through these issues. Thank you.
     
  20. Stiffy89

    Stiffy89

    Joined:
    Feb 2, 2017
    Posts:
    6
    Hey Partel,

    Thanks for putting up this asset, its been fun to play with so far! I am kind of new to unity in general and i was going through your two handed pick up demo in the asset pack. I tried to recreate the two handed pick up of the sphere in my own scene and used the pick up sphere script and noticed that when the sphere was orientated correctly, the character picks up the object perfectly, however when the sphere is slightly rotated, the arm bends in a weird way to match the bones which have been parented to the sphere itself. Is there something im missing with a pivot point from the sphere? I have attached some photos for you to have a look.
     

    Attached Files:

  21. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,556
    Hey,

    It's about the update order of things. VRIK normally solves in LateUpdate, which is after the ParticleSystem has already updated so it will not know about the changes VRIK does to the pose of the character. You could disable the VRIK component in Start:
    Code (CSharp):
    1. ik.enabled = false;
    , then update it manually in Update:
    Code (CSharp):
    1. ik.solver.Update();
    . You'll have to keep the Animator disabled though, as it updates after Update and would overwrite any IK or you could keep it disabled and update that in Update too, before VRIK, by calling
    Code (CSharp):
    1. animator.Update(Time.deltaTime);
    Hey,
    I'm only beginning to look into the Timeline integration. Technically I think it can be done, will just probably be quite tedious to work with IK targets and other parameters in the Timeline framework.

    Hey,
    Do those hands have muscles too or just the forearms? If there are no hand muscles, it is only the muscle spring that is handling the rotation of those forearms and that might not be enough to keep the ragdoll pinned to the animation close enough, especially when there is not much "Muscle Spring" in PuppetMaster. Try adding hand muscles if you don't have them already. Just add Rigidbody, Collider and a ConfigurableJoint that is positionally locked, then expand the Muscles array in PuppetMaster and add the hand joints to that. Increasing "Solver Iteration Count" might help too.

    Hey,
    1. Make a new gameobject, parent the CenterEyeAnchor to it. Parent that new gameobject to what the CenterEyeAnchor was originally parented to. Then add this script to that new gameobject:
    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. public class HMDAnimationDelta : MonoBehaviour {
    5.  
    6.     public Transform headBone;
    7.     [Range(0f, 1f)] public float animationWeight;
    8.  
    9.     private Vector3 lastHeadPos;
    10.  
    11.     void Start() {
    12.         lastHeadPos = headBone.position;
    13.     }
    14.  
    15.     void LateUpdate() {
    16.         transform.position += (headBone.position - lastHeadPos) * animationWeight;
    17.  
    18.         lastHeadPos = headBone.position;
    19.     }
    20. }
    If you set "Animation Weight" to 1, the camera will inherit positional motion from the animation.

    2. If you wish to switch to locomotion animation, just blend ik.solver.locomotion.weight to 0 and play the animation.
    If you wish to resume to procedural locomotion, call ik.solver.Reset();, then blend ik.locomotion.weight back to 1.

    Hey,
    Difficult to say based on those pictures alone, could you send me that scene so I could take a closer look?

    Best,
    Pärtel
     
  22. fup

    fup

    Joined:
    Jan 18, 2016
    Posts:
    76
    Hi,

    PuppetMaster lends a certain amount of wobblyness to my characters, which I'd like to reduce.

    In the docs you mention that it's possible to "Reduce the number of muscles. Do you absolutely need 3 spine muscles or the feet or hand muscles?".

    I tried removing the leg muscle elements in the inspector but then the character's legs just flayed around. I then removed the joints, rigidbodies and colliders on all the leg limbs and it seems to be working fine. Is this correct or do I need to edit anything else?

    Are there any other settings I can tweak to make it appear less wobbly?

    Many thanks.
     
  23. AlexandreDelan

    AlexandreDelan

    Joined:
    Oct 4, 2016
    Posts:
    16
    Hi Partel,

    I want to ask you some advices.

    I'm working with VRIK and the Locomotion part (with head and two controllers) for a FPS game.

    Using HTC Vive, I have real-world movement (standard behavior) but also movement with the pad to walk/run.

    I try to fine-tune all parameters but I was thinking if it was possible to mix your Locomotion feature with a walk/run skeleton walk/run animation.

    For now, the locomotion looks like more to a robot walk than a human walk.

    What do you think about it?

    Alternatively, do you plan to improve the Locomotion feature in the next release.

    Many thanks in advance,


    Alex
     
  24. DGordon

    DGordon

    Joined:
    Dec 8, 2013
    Posts:
    649
    Sure.

    My use-case (and this may not work out so well as you're saying) is to use this for cutscenes to easily change where a targets head is looking, or stretch out an arm, or whatever. Not complicated animation, but to handle minor things very easily. For example: if the lookatik system worked in the timeline, we could add another animation track controlling the lookat transform to easily animate the characters head and eyes.

    Furthermore, it would be great to have this work with the new Octane, which would mean it has to be compatible with Editor-Only ... meaning, everything can work properly without running the game. I gave it a shot and was hitting some weirdness most likely related to the ik system resetting the original transform and causing everything to distort over repeated scrubs or animating the target game object.

    I don't think *everything* needs to be useable in the timeline to still make this an excellent timeline tool for creating cutscenes.
     
  25. Mantou

    Mantou

    Joined:
    Feb 6, 2014
    Posts:
    3
    Is there anyway to apply Final IK on an animated animal such as a dog or cat?
     
  26. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,556
    Hey,
    Wobblyness can be reduced by increasing Muscle Spring and Solver Iteration Count in PuppetMaster. Reducing the number of muscles is for optimizing. If you remove all leg muscles, the legs will be able to ragdoll anymore, they'd just be animated as they were.
    If you are using BehaviourPuppet, you can also remove wobblyness by setting the Normal Mode to "Unmapped". It will maintain 100% animation accuracy until there is a collision.

    Hey,
    Yes, you can blend out ik.solver.locomotion.weight once there is some pad input and just use a normal 8-direction strafing blend tree for while the pad is being used to make the avatar follow the HMD. When the player stops, blend locomotion.weight back in.
    I am working on improving the locomotion, but it'll take some time.

    Hey,
    It is possible to run FIK components in edit mode with the help of this script:

    Code (CSharp):
    1.  using UnityEngine;
    2. using System.Collections;
    3. using RootMotion.FinalIK;
    4.  
    5. [ExecuteInEditMode]
    6. public class EditorIK : MonoBehaviour {
    7.  
    8.     private IK ik;
    9.  
    10.     void Start() {
    11.         ik = GetComponent<IK>();
    12.  
    13.         ik.GetIKSolver().Initiate(ik.transform);
    14.     }
    15.  
    16.     void Update() {
    17.         if (ik == null) return;
    18.  
    19.         if (ik.fixTransforms) ik.GetIKSolver().FixTransforms();
    20.  
    21.         // Apply animation here if you want
    22.  
    23.         ik.GetIKSolver().Update();
    24.     }
    25. }
    Hey,
    Depends on what exactly you need to do. Some IK components (FullBodyBipedIK, BipedIK, VRIK) were designed for biped avatars (although can be used on quadrupeds if necessary). Other components (CCD, FABRIK, AimIK...) work with any hierarchical bone structure. The Grounder can be used on any creature.

    Cheers,
    Pärtel
     
  27. DGordon

    DGordon

    Joined:
    Dec 8, 2013
    Posts:
    649
    I already have that working fine in an inspector editor. What I didn't get working properly (and I figured it makes more sense to make a formal request) was creating a timeline playable. It kind of works, but something was going wrong with the transforms when scrubbing or animating a target's position. It twists the model, as if its constantly resetting the original position and moving it from there, or something.
     
  28. ooneko

    ooneko

    Joined:
    Jul 23, 2017
    Posts:
    1
    Hello, I'm non programmer and Unity newbie... but I want to develop a VR games. I tried using FINAL IK (VR IK) and oculus rift + touch. I wanna make a virtual body on unity. I succeeded head and hand position tracking, but hand rotation is very unnatural. In this game, she twists her palm outward. I made video to explain this problem.

    It's video→


    and I have doubt.
    Where can I set up Rotation of handsets?
    I made "Left:RightHandanchor" / "RotateOffset" game object, but if I set rotation in "RotateOffset", her arms also rotate together, and it does not work well.
    I want to only repair "hands" rotation.

    Please advice me...

     
  29. Fairennuff

    Fairennuff

    Joined:
    Aug 19, 2016
    Posts:
    88
    Hi Partel,

    Just a QQ about the interaction system. I am making a VR game, but don't have a fully body avatar. Just floating hands. My enemies of course use FBBIK and puppetmaster. In my game both players and enemies can use all the weapons I've setup. Right now, enemies use the interaction system and IKTargets to pickup and hold weapons while my player has some generic animations for holding items. What I am wondering is if there is a way I can use the interaction system on my player hands to animate the holding of items. I'm not worried about picking them up or animating them, just animating the floating hands to follow the IKTargets like the enemies hands do. Since I dont have a FBBIK on the player hands (because its not a FBB) I don't believe the interaction system will work.

    Anything I can do to use this?

    Thanks!!
     
  30. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,556
    Hey,
    I'm planning to look into the Timeline asap. If it looks like something is resetting the original position, it must be the FixTransforms() call. It won't be needed if all bones used by the IK are animated and animator updates before the IK.

    Hey,
    Didnt really understand if the issue was that the hands were oriented wrong relative to the controllers or was the problem with the twisting of the wrist bone relative to the forearm that causes skinning issues. Anyway, if it was the former, the IK targets need to match the orientation of the bones, so the hand IK targets that are parented to the hand anchors need to have their localRotations adjusted to compensate for the orientation difference between the hand bone and hand anchor. If it was the latter, please take a look at the "VRIK (Twist Relaxer)" demo scene, you can add TwistRelaxer components to the forearms or forearm roll bones that might help with this wrist twisting problem.

    Hey,
    I think the easiest would be to just use animation for the hands. You can create those animations in Unity too, using the Animation Window. However, these guys have made an excellent job on using the FingerRig for those first person hand interactions.

    Cheers,
    Pärtel
     
    DGordon likes this.
  31. rneron1

    rneron1

    Joined:
    Jun 16, 2017
    Posts:
    9
    Can't wait for the fix about Timeline issue, it will be a rock solid tool for us!
     
  32. Infrid

    Infrid

    Joined:
    Jan 14, 2012
    Posts:
    67
    Hello, not the happiest of customers here. I purchased full price, months ago for VR development. I now see it's on sale, and part of Unity's VR bundle.

    However, the VR examples are worthless for anyone not using the pilot model. I have tried hours and hours to get any other model to perform remotely well. I would very much appreciate sending you a file with a model in it, and seeing if you can send me a scene with it configured - I've lost literally *days* trying to get it to work. The whole business of thumb-axis and localrotation offset's is just beyond tedious. I bought the asset so I don't have to figure out all that stuff.

    Also, I see nothing at all regarding dealing with the fact that VR user's have different body sizes. Surely a comprehensive VR Ik solution would have at least a tiny bit of support for calibrating the head/hand positions.

    I hope you can get back to me and setup the model I'd like to use. Months on and my purchase is *utterly worthless* : I got the latest update, hoping that being bundled with Unity as part of their VR bundle would've inspired a smoother VR workflow; it's not the case. I feel extremely sore that Unity are giving your product _way_ more kudos than it deserves for VR.
     
  33. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,556
    Hey, thanks for your honest feedback and of course, please send me that model to support@root-motion.com, I'll see what the problem(s) are.

    About the different body sizes, you can just scale the character root, as for the arm length, automatic arm scaling and stretching has already been added to the next version, will be published shortly.

    Best,
    Pärtel
     
    Infrid likes this.
  34. thedog88

    thedog88

    Joined:
    Mar 5, 2017
    Posts:
    1
    how would i tie a locomotion system into this. i want to add in trackpad locomotion (think onward) but still use this system. any pointers? total newb to unity.
     
  35. SureSight

    SureSight

    Joined:
    Aug 2, 2013
    Posts:
    65
    I am using the Biped IK with Solvers IK targets for characters to interact. In particular I want to be able to place the right hand of the player on the enemy's wrist.

    I can't just set the player's Right Hand Solver to the enemy's wrist bone because I need to offset the position/rotation in order for it to look right.

    In this case I have set the player's Right Hand solver as game object rightHandSolver. I then add rightHandSolver as a child of the desired rightElbow bone of the enemy.
    However, this produces weird results and does not animate the player's hand relative to the enemy's wrist as the enemy's struggle animation plays.

    What am I doing wrong?
     
  36. CraigGraff

    CraigGraff

    Joined:
    May 7, 2013
    Posts:
    44
    @malrion

    Do you happen to still have the setup that you used for mapping Morph3D to VRIK (via References in the VRIK script)? If so, could you please post a screenshot of the hookup? I've been trying to figure out what goes where and I can't seem to make heads or tails of it (pretty much literally).

     
  37. fup

    fup

    Joined:
    Jan 18, 2016
    Posts:
    76
    Hi Partel,

    I've been trying to get in touch with you via email about your availability for work but I get the feeling my emails aren't reaching you. Maybe they ended up in your junk folder? A search for "Superstar" in the title would find them.

    Cheers

    Mat
     
  38. gearedgeek

    gearedgeek

    Joined:
    Jun 19, 2015
    Posts:
    236
    I'm looking to purchase Final IK but I have a question and kind of confused on what Final IK is for. If you use Final IK, do you need to use animations like for the movement?
     
  39. Orczillabot

    Orczillabot

    Joined:
    Aug 16, 2017
    Posts:
    5
    I'm new to both Unity and Final IK. I want to use a correct Assets folder hierarchy to minimize time-sinking mistakes, and after importing Final IK, I'm a little unsure about the Gizmos and Editor contents. Having seen the following:
    (https://docs.unity3d.com/Manual/SpecialFolders.html)

    ... and,
    (http://wiki.unity3d.com/index.php/Special_Folder_Names_in_your_Assets_Folder)

    ... but then there's Griffo's structure posted a long time ago here: https://forum.unity.com/threads/fin...cd-ik-1-0-released.222685/page-4#post-1507008.

    Don't I need to move the files in Assets/Plugins/RootMotion/FinalIK/Gizmos to Assets/Gizmos, e.g. Assets/Gizmos/RootMotion/FinalIK?

    Don't I need to move the files in Assets/Plugins/RootMotion/Editor to Assets/Plugins/Editor, e.g. Assets/Plugins/Editor/RootMotion?

    Thanks for any clarification.
     
  40. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,556
    Hey,
    You can just blend ik.solver.locomotion.weight down to 0, then you'll be able to use traditional locomotion animation for the footwork, but still keep the upperbody locked to the head and hand IK targets.

    Hey,
    Got your mail, just replied...

    Hey,
    You still need to use baked animation, Final IK just gives you tool to bend that animation to match the dynamic game environment. Stuff like foot placement correction, procedural interactions, aiming correction... etc, there are more than 50 demos in the package for all the stuff you can do with it. Please take a look at some of the videos about Final IK on my youtube channel to get a better overview.

    Hey,
    All that depends on the version of Unity you are using, they have changed how the special folders work a couple of times while Final IK has been on the Store. I used to have Assets/Plugins/Editor/RootMotion when the Editor needed to be inside Plugins, but not anymore, so since Unity 5.3 or something I use Assets/Plugins/RootMotion/Editor to keep all RootMotion stuff in a single place.
    The gizmos of FIK are only used as component icons, not used for Gizmos.DrawIcon, so you can keep them where they are.

    Best,
    Pärtel
     
  41. sandBucket2

    sandBucket2

    Joined:
    Mar 26, 2016
    Posts:
    29
    I'm using final IK for the first time, but how come the hand effector is above the character's head? I can scale my character to match the position but is there anyway to fix it to scale?
    image.png
    Here you can see more effectors above the characters head.
    upload_2017-9-16_9-59-37.png
    I've edited the mixamo character (bending the arms from tpose) so that there are no warnings.
    Any help is appreciated and thanks.
     
    Last edited: Sep 16, 2017
  42. sandBucket2

    sandBucket2

    Joined:
    Mar 26, 2016
    Posts:
    29
    upload_2017-9-16_10-4-38.png
    This is how my character is set up
     
  43. dwaldrum

    dwaldrum

    Joined:
    Jun 20, 2015
    Posts:
    48
    Having a super strange problem. I'm using the interaction system and things used to work great. I'm not sure if it's the recent unity update, or something that happen to my project, but certain things seemed to have been inverted. For example:

    The triggers won't work anymore, if my player walks into a trigger, it won't work, but if I turn my player around so they are backwards, it works. If I rotate the trigger to be on the opposite side (using the angles), it will work if my player is look forward.

    In addition, I have a world space canvas placed at the same point as my trigger and I use a lookAt so it looks at the player when they get in range, as soon as that happens the canvas inverts so it's backwards.

    For the life of me I can't figure out what's going on, I even tried removing the character and just using a cube as my "player" and it's still happening.
     
  44. ColtonKadlecik_VitruviusVR

    ColtonKadlecik_VitruviusVR

    Joined:
    Nov 27, 2015
    Posts:
    197
    Hey @Partel-Lang

    Just wanted to mention something thats somewhat annoying and I don't know if you can do anything about it. Sometimes while working on a humanoid's animations (adding events etc.) in the editor the pose freezes even after stopping preview mode. I have found that this alters something in FBBIK. For example, NPC was in TPose before pressing play. Watched the interaction, everything looked perfect. Edited something in idle animation and now skinned mesh is stuck in that pose before playing in editor. Watch the interaction again and the elbow is way too high. Do you know why skinned meshes get stuck like this or how to reset them so I can avoid this issue?

    Cheers,
    Colton
     
  45. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,556
    Hey,

    All the effector positions are defaulted at Start to whatever the current positions of their bones are at that time. After that, they will not be moved at all by the IK component. So I'm guessing the effector positions are right where the character is in the Editor before you hit play. It is up to you to tell the IK component where the effector positions should be and up to the IK component to solve according to those positions.

    Hey,
    Nothing has changed in FIK that might cause such a thing at least... Maybe your character got inverted or rotated 180 degrees around it's root? Perhaps the scale of the character is (1, 1, -1)? Make sure the character is looking towards the root's blue axis.

    Hey,
    FBBIK samples the pose of the character at initiation to find out which way to bend the limbs. So if the sampled pose is different, limb bending angles will be different.

    If you work on those animations, don't use your actual gameplay character. Make a duplicate of that character and mess around with that, much safer.

    Best,
    Pärtel
     
  46. ColtonKadlecik_VitruviusVR

    ColtonKadlecik_VitruviusVR

    Joined:
    Nov 27, 2015
    Posts:
    197
    Also, for anyone else having this issue, if your working on a humanoid, turn on IK Pass in the animator, preview an animation and scrub to the pose you want to keep, then stop preview and disable IK Pass. This is set the pose of the character everytime.
     
  47. Vassa91

    Vassa91

    Joined:
    Sep 19, 2017
    Posts:
    4
    Hi Partel!
    I have a VR project where i need to track not only the head and the hands of the player, but also the feets, using a couple of vive trackers.
    Is it possibile with VRIK to set the trackers positions as the feets of the character and use the solver to "track" the other parts of the leg?
    My player doesn't need to move in the virtual space, so a walk/run cycle for the legs is not needed, but i really need a precise tracking of the feet to make it work in a flawless way.

    I'll wait for an answer, meanwhile a big thank for your time and your work on this plugin!
     
  48. syscrusher

    syscrusher

    Joined:
    Jul 4, 2015
    Posts:
    1,104
    Hello, Partel

    I bought Final IK some time ago, but ended up doing a project where I didn't need this tool. That's done at last, and now I'm finally starting to learn Final IK. Loving it so far, but it's a lot of material to learn. :) Thanks for all the video tutorials; they're really helpful.
     
  49. Kaffo

    Kaffo

    Joined:
    Jun 5, 2016
    Posts:
    2
    Hey @Partel-Lang
    First of all, this asset looks amazing and looks perfect for my VR projects, keep up the good work!

    I saw you posted earlier saying you were dropping a new version soon, but looks like I've just missed a sale last week.
    Can you advise on if there will be a sale for the asset any time soon? I'd really like to jump on this in the next few weeks but being a solo dev I don't have the disposable income to drop €95 on any asset I'm afraid!

    Thanks again!
     
  50. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,556
    Hey,
    Yes, in the upcoming version, I've added a calibration tool that can be used to link up to 6 tracked points with VRIK. If you'd need it right away, send me an email to support@root-motion.com with your invoice number and I'll give you a direct download link.

    Great! Thanks for the purchase and just let me know if you have any questions or problems regarding the package.

    Hey and thanks!
    There are sales from time to time, I don't really know when the next one is coming, it is up to the Asset Store staff, not me. But if you have Unity subscription, Final IK is free as it is included in one of the essential packs that come with it.

    Best,
    Pärtel