Search Unity

  1. Improved Prefab workflow (includes Nested Prefabs!), 2D isometric Tilemap and more! Get the 2018.3 Beta now.
    Dismiss Notice
  2. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  3. Let us know a bit about your interests, and if you'd like to become more directly involved. Take our survey!
    Dismiss Notice
  4. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice
  5. 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. Fairennuff

    Fairennuff

    Joined:
    Aug 19, 2016
    Posts:
    84
    Make sure the Twist axis and axis variables are set correctly and match the bones local axis in relation to the hand.

    Also depends on the model. If its not skinned correctly that can also cause this. Partel can probably give you a better answer though.

    @Partel-Lang I solved my other issues but do have 1 question on the VRIK Calibrator. If I call Calibrate once, everything works perfectly. But if you call it twice, the resulting character/avatar is way to large or small. And any more times beyond that also get odd results. I assume you need to reset the avatar fully to default before calling calibrate again, but saw no Reset() method of any kind. Don't mind writing my own, but I am not sure exactly what I need to reset on the avatar. Is it just scaling the avatar, or all the bones? Thanks!
     
  2. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,714
    Hey,
    You can reset it like this:
    Code (CSharp):
    1. public VRIK ik;
    2. private Vector3 defaultPos;
    3. private Quaternion defaultRot = Quaternion.identity;
    4.  
    5. void Start() {
    6. defaultPos = ik.transform.position;
    7. defaultRot = ik.transform.rotation;
    8. }
    9.  
    10. public void ResetRoot() {
    11. ik.transform.position = defaultPos;
    12. ik.transform.rotation = defaultRot;
    13. ik.solver.Reset();
    14. }
    Please update to the latest FIK (1.7), the TwistRelaxer will be easier to set up and you'll get a "Twist Angle Offset" parameter that might help you fix that issue.

    Would calling ik.references.root.localScale = Vector3.one; before recalibrating fix this?

    Best,
    Pärtel
     
  3. Fairennuff

    Fairennuff

    Joined:
    Aug 19, 2016
    Posts:
    84
    Unfortunately, this only keeps the avatar from getting really big. Doesn't seem to re calibrate accurately after the first.
     
  4. valentin_bourdon

    valentin_bourdon

    Joined:
    Sep 17, 2015
    Posts:
    6
    Hello, thank you again for Final IK, it is wonderful !!

    I am using the interaction system with the trigger. I move the hand of my avatar with a 3D mouse and when I enter the trigger of an object, I press the key "e" as in the script UserControlInteraction. My hand moves well towards the target on the object but before moving it returns to its initial position and then moves. It does not move from the position where it is ...
    There is less to solve this problem so that it leaves the current position where it is to go towards a target?
     
  5. Mikekan13

    Mikekan13

    Joined:
    May 30, 2015
    Posts:
    40
    Hey @Partel-Lang I have 2 VRIK bodys attached to the player. One is a blue glowing body and the other is a normal one. Do you have any idea how I could have the normal body use IK collision against walls. So the blue body would go through walls and the physical body would work how a normal body would and be stopped by walls and objects.

     
  6. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,714
    Hey,
    What is the pose of the player when you recalibrate? Calibration works best if the player is standing straight so if the pose is weird the calibration might not be good.

    Hey,
    Do you have some custom code using the hand effectors before you trigger the interaction or are you trying to switch from one interaction object to another? If its the former, use effector.positionOffset instead of effector position/positionWeight. InteractionSystem will be able to override that. If it's the latter, use a single interaction object for a group of interactions, but instead of switching between multiple objects, make an interaction that takes the hand to an object, pauses it when it's there, then move the interaction target via script or animation. Then call ResumeAll to let go.

    Hey,
    Final IK just handles kinematics, not dynamics. This could be done though, but with the help of PuppetMaster, like in this video of an experimental demo where you can see an active ragdoll follow the VRIK. Here are SteamVR and Oculus versions of that WIP demo (require both FIK and PM to be installed in the project).

    Cheers,
    Pärtel
     
  7. Mikekan13

    Mikekan13

    Joined:
    May 30, 2015
    Posts:
    40
    Sold! Thanks, friend!
     
  8. Fairennuff

    Fairennuff

    Joined:
    Aug 19, 2016
    Posts:
    84
    @Partel-Lang - Basically on start I kick off a coroutine that waits for the headset to be at least 3ft off the ground of the play area to make sure the headset is tracking and is being worn. That coroutine calls calibrate(). after its done calibrating it tells the VRIK Animator to recalculate height.

    The issue I'm running into is if the user does not have tracking, then lifts the headset to put it on, it detects it immediately at 3ft, making the avatar very small. So I put an option in my options menu that reruns that coroutine, calling calibrate again. You can reproduce this in your demo scene. Just only set transforms for the hands and head trackers (as no one really has hips, body, or feet yet. Then hit C to calibrate. Then move the head tracker object down and hit C again, so the avatar is very small. Then raise it back up, or even higher than its normal position and hit C again. You will get some weird inaccurate results. I'm guessing but I image the avatars bones/scale need to be reset to the original before being recalibrated.

    Thanks!
     
  9. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,714
    Hey,
    Please import this patch for the scaling issue.
    About the rest of the body, when you calibrate the pose of the player should match the pose of the avatar as closely as possible, most importantly, the body if you have a body tracker. That is just what calibration does.
    If you only need to reset the height, then do not recalibrate, just call this instead:
    Code (CSharp):
    1. float sizeF = ik.solver.spine.headTarget.position.y / ik.references.head.position.y;
    2.             ik.references.root.localScale *= sizeF * settings.scaleMlp;
    Best,
    Pärtel
     
    Fairennuff likes this.
  10. Fairennuff

    Fairennuff

    Joined:
    Aug 19, 2016
    Posts:
    84
    When the player chooses to re calibrate manually in the options menu it has them stand in a T pose before it actually calls the calibrate function so that they match the avatar. But there isn't a good way to do this in Start() so i just call calibrate assuming the player is already standing.

    And there are no body trackers in this project - just HMD and hands. But I'll grab the patch and try that code to see what works best.

    To add to this, is there a way I can modify the calibrate function to calibrate to a specific Height rather than the HMD? Basically what I'm shooting for is a way that after the player has calibrated their avatar that I can save the calibration/settings to some variables so at the start of the next scene / or next time they play the avatar is automatically calibrated?


    Thanks as always!
     
  11. Fairennuff

    Fairennuff

    Joined:
    Aug 19, 2016
    Posts:
    84
    @Partel-Lang Just gave the code you gave me a shot. It doesn't seem to have any effect on the avatar.

    I call calibrate on start with the hmd on my desk. It makes the avatar barely 3ft tall. So I stand up and hit my calibrate button. With the code you gave me above to effect height nothing really seems to happen. If i call the calibrate function before installing the patch you gave me, it will adjust just not accurately as the first time it was called. Now the calibrate function doesn't really seem to work the second time around... Any thoughts?

    Edit: I have NO idea why... and its a long story how I ran across this but... If I call calibrate() twice in 1 frame (like in a new method that just says Calibrate(); Calibrate(); ) - It works perfectly? but If i call it just by itself, or even 1 frame apart it does not work at all...
     
    Last edited: Feb 8, 2018
  12. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,714
    Hey,
    I saw that, characters calibrating to the correct height with every other Calibrate() call, but I took care of that with the patch in my last post, doesn't seem to happen anymore. Did you import that patch?

    Best,
    Pärtel
     
  13. ClavusVG

    ClavusVG

    Joined:
    Aug 1, 2017
    Posts:
    4
    Hi, we're using VRIK in our game (I believe version 1.5) and I'm running into an issue when parenting our player to a moving platform. The feet make a walking motion while on the platform, as expected since they see that their world position is changing. What's the easy way to fix this?
     
  14. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,714
    Hey,
    Don't remember if it was there in 1.5, but there is a demo and a script for it, please look for "VRIK (Moving Platforms)".
    Also, should be worth it to update to the latest, VRIK has evolved quite a bit since the initial release.
     
  15. Fairennuff

    Fairennuff

    Joined:
    Aug 19, 2016
    Posts:
    84
    @Partel-Lang I did install the patch. It just contained a new version of VRIKCalibrator.cs right? I'll reimport and try again but if it doesn't work I'll just call it twice.
     
  16. ClavusVG

    ClavusVG

    Joined:
    Aug 1, 2017
    Posts:
    4
    Thanks. Seems functionality for this was added in 1.6, so a simple update and a extra few lines of code resolved the issue.
     
  17. Fairennuff

    Fairennuff

    Joined:
    Aug 19, 2016
    Posts:
    84
    Hi Partel. I just double checked to make sure the calibrator was updated via the patch. It was current. Still have to call calibrate 2x times to get it working but that's fine. It does its job!
     
  18. rob_vld

    rob_vld

    Joined:
    Jul 9, 2013
    Posts:
    149
    Hi @Partel-Lang

    Do you see time to create an example for VRIK with motion animations?
    I am having a hard time getting crouching(legs only ofcourse) to work; can IK append to crouching lower than the actual crouching (movement) animation?
     
  19. Fairennuff

    Fairennuff

    Joined:
    Aug 19, 2016
    Posts:
    84
    @rob_vld He posted in this thread a while back an example demo with a VRIK Animator that lets you add an animator to your avatar to handle that sort of thing, I got it walking and jumping without an issue so a crouch/prone setup can't be that hard to do.
     
  20. rob_vld

    rob_vld

    Joined:
    Jul 9, 2013
    Posts:
    149

    Adding animations is not my issue... the problem i have is that i have yet to come across a set of crouching animations that crouch low enough to mimic real life situations...

    The issue i am having is that forcing a crouching animation with VRIK to go lower than it should will show up clunky, especially when moving about...

    edit: btw, unless i missed it, none of the included demo's have a crouching example with movement animations @Partel-Lang ?
     
    Last edited: Feb 10, 2018
  21. Kotulka

    Kotulka

    Joined:
    Jul 15, 2017
    Posts:
    1
    Hi @Partel-Lang ,
    I have a question about NPC's follow to Player like in PuppetMaster demo scene, or
    where 2nd soldier is walking and follows to Player. Is it possible with FinalIK entirely or component of PuppetMaster or yet different way with Mecanim and scripts - cause i'm not a programmer so don't know code possibilities.
     
  22. from2001

    from2001

    Joined:
    Oct 29, 2014
    Posts:
    14
    Hi @Partel-Lang,
    Final IK ver. 1.7

    Adding VRIK on runtime makes following error
    This code successfully works for adding the component and detecting references. But it generates the error after that.
    Code (CSharp):
    1.         var vrik = avt.AddComponent<VRIK>();
    2.         vrik.AutoDetectReferences();
    Is there anything I need to do for adding VRIK comportment?
     
    Last edited: Feb 10, 2018
  23. from2001

    from2001

    Joined:
    Oct 29, 2014
    Posts:
    14
    Hi @Partel-Lang and others,

    Reference for VRIK needs to be set before it awakes. But, the reference can only be set after awake with a script. It's better to be fixed.

    It's tentative solution for now.

    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using RootMotion.FinalIK;
    5. using RootMotion;
    6.  
    7. public class NewBehaviourScript : MonoBehaviour {
    8.  
    9.     public GameObject avt;
    10.     // Use this for initialization
    11.     void Start () {
    12.         avt = addVRIK_to_avatar(avt);
    13.     }
    14.  
    15.     /// <summary>
    16.     /// Add VRIK to avatar
    17.     /// </summary>
    18.     /// <param name="avatar"></param>
    19.     /// <returns></returns>
    20.     GameObject addVRIK_to_avatar(GameObject avatar)
    21.     {
    22.         var vrik = avt.AddComponent<VRIK>();
    23.         vrik.AutoDetectReferences();
    24.         var avatar2 = GameObject.Instantiate(avt) as GameObject;
    25.         Destroy(avatar);
    26.         return avatar2;
    27.     }
    28. }
    29.  
     
  24. AnneDraaisma

    AnneDraaisma

    Joined:
    Jul 14, 2014
    Posts:
    11
    Hi, I’m new to FinalIK and so far I’ve only been playing with the AimIK and the GrounderIK. The results are really great!

    I am working with a large creature where I’d want to eliminate all foot sliding or skating. I am sure FinalIK could solve that problem by pinning or anchoring the feet to the ground when they are grounded in the animation. However, I’m not sure which approach to take. I’m thinking about using effectors to lock the feet in place at specific times during the animation, but maybe it would be easier to extend the GrounderIK, or there will probably be a much easier way. How could I use FinalIK to get this working?

    Thanks in advance!
     
  25. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,714
    Hey,
    Thats weird, could you try the calibration demo, does pressing "C" change the scale every other time? It used to, but not after I added that patch.

    Hey,
    I do have a demo about that, it's still a WIP, but might help you get started. It has no special crouching state, but you could check the height of the HMD and blend to a set of crouching animations. Maybe add a crouch parameter to the Animator and extend the blend trees to smoothly go to crouch.

    Hey,
    I'm sorry I didn't quite understand. Did you mean you needed to get an NPC character to follow the player? In the demos the NPCs do follow them, but there's no pathfinding or anything in that. I suggest you try one of the AI packages in the Store if you are not up to coding it yourself.

    Hey,
    Sorry, seems to be a bit of an oversight on my part, please change line 96 in IKSolverVRArm.cs to this:
    Code (CSharp):
    1. public AnimationCurve stretchCurve = new AnimationCurve();
    Hey,
    The Grounder only handles vertical foot placement correction and foot angles. Skating problems are best fixed in the 3D app used for making the animation. The only way I could imagine fixing it with runtime IK would be to add curves or events to the animation in import settings that define the planting of the feet. I mean make an event for left/right leg each time it is supposed to be planted and each time it is unplanted. Then make a script that stores the position of the foot in the event of planting, weighs in IK position/rotation weight for the foot and releases it when the unplant event fires. I haven't really tried this myself so I don't know how well it would actually work.

    Cheers,
    Pärtel
     
    AnneDraaisma likes this.
  26. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,714
    Sure, send it over, I'll take a look.
     
  27. rob_vld

    rob_vld

    Joined:
    Jul 9, 2013
    Posts:
    149
    @Partel-Lang

    ofcourse, after hours of adjusting stuff... just as i sent you this message i realized i did not have the foot IK enabled..

    it is working now... so *facepalm* ?
     
    Partel-Lang likes this.
  28. Vheanom

    Vheanom

    Joined:
    Dec 21, 2017
    Posts:
    3
    Hello again Pärtel!
    I've been focusing on fixing other things in the scene, and I've finally come back around to take a new crack on VRIK.

    I downloaded 1.7 and I found the new twist relaxer, however I can't find any documentation on how the new twist relaxer work, and no matter where I put it, it doesn't seem to do anything. I'm mainly a graphics person, so I might have missed something that's more obvious to programmers/coders...



    EDIT:
    fixed by simply putting twist relaxer on the forearm and not touching the Ik option! new version of the twist relaxer works really well on the left hand, however on the right hand it works until the hand axis goes to 60 rotation on X then it snaps straight to -60 which makes the entire arm snap and goes from 60 -> 0 -> -60.
    rigging is not really my strongest subject, so any help would be appreciated!

    https://i.imgur.com/RNwixSC.gifv
     
    Last edited: Feb 13, 2018
  29. sasa23x

    sasa23x

    Joined:
    Oct 25, 2016
    Posts:
    3
    Hello,

    I have been trying for few days to get VRIK to work on models other than the ones provided with Final IK package.

    So far, I have a problem with hands, it always looks wrong, and I am not sure if I am missing something.

    Here is how it looks in the Pilot model shipped with Final IK, it's working fine:

    Here's how the Blue man in suit model looks like, the hands are twisted in a wrong way

    This is the link for the Man in suit asset:

    https://assetstore.unity.com/packages/3d/characters/humanoids/man-in-a-suit-51662

    I tried using AutoDetectReferences and also setting them manually (both are the same results).

    Any ideas on how to get this to work please?

    **** Update ****

    I am using Oculus Rift for my tests.
    It looks like the issue is with the hand tracking anchors in the OVRCameraRig. I see some posts saying we need to duplicate, parent and reset both hands position and those would be the anchors for the hand targets. I tries this, but the hands are still completely off. The Oculus local Avatar is just fine.

    Can you please give the right instructions on setting these anchors for Oculus setup?


    Thanks.
     
    Last edited: Feb 12, 2018
  30. AnneDraaisma

    AnneDraaisma

    Joined:
    Jul 14, 2014
    Posts:
    11
    Thanks Partel. I think that will work. At least I now know I don't miss something obvious.
     
  31. rob_vld

    rob_vld

    Joined:
    Jul 9, 2013
    Posts:
    149
    This looks like you are not assigning the correct gameobjects...

    When you assign the GameObjects to the VRIK script for the head and the hands you have to assign the Parent Object to the script... the child object you need to rotate and set before!, so it works in game too

    Just a thought...
     
  32. sasa23x

    sasa23x

    Joined:
    Oct 25, 2016
    Posts:
    3
    Thanks for your answer. Can you please clarify a little bit what you meant by parent and child objects? I duplicate the hands from the model and place it under the hands in the OVR camera rig. These hands under the OVR camera rig is what I assign to VRIK?

    I was able to make it work much better by manually adjusting the hand objects in play mode (to match the oculus avatar), but I think there should be some better (automatic) way that I am missing.
     
  33. rob_vld

    rob_vld

    Joined:
    Jul 9, 2013
    Posts:
    149
    If you check in the demo what is assigned to the hands or head for gameobject, if you check out that gameobject you see there is a parent and child game object

    pre-set the child game object to rotate to the correct position( copy component values during gameplay and paste once out of the game)

    ?
     
  34. sasa23x

    sasa23x

    Joined:
    Oct 25, 2016
    Posts:
    3
    Thanks, this is what I did in my manual trial. So, basically we need to do manual adjustments for position and rotation to get this right. I am new to Unity, but my assumption was that there is some automatic way to do this similar to how animations get applied on different (humanoid) characters.
     
  35. rob_vld

    rob_vld

    Joined:
    Jul 9, 2013
    Posts:
    149
    @sasa23x there are no automatic ways simply because everyone likes to use the controllers used in a different way...

    if you are new to unity i have to say an expert package like finalIK, no matter how well done, is a lot on your plate...

    don't give up though... trial and error to get experience..., do check out his youtube video's
     
    sasa23x likes this.
  36. ysleungrockman

    ysleungrockman

    Joined:
    Mar 16, 2014
    Posts:
    10
    Hi, @Partel-Lang
    I am new to Final IK. I'm currently doing a project that uses HTC Vive, the trackers and your VR IK to control human avatar. But since I want to add animation like walking to the character, there was problem happened that the animation couldn't play correctly. I have added mask to the animation which only the leg parts play. I also tried to reduce the position and rotation weights of left and right legs to 0 and the animation still couldn't play correctly. And I don't want to disable the whole VR IK for the animation since I want the arms to be able to move while the animation play. Do you have any clue on that?

    Also, is it possible to keep the avatar model in the position which is the center of the VR area?
     
    Last edited: Feb 14, 2018
  37. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,714
    Hey,
    Is your model symmetrical? Can't think of a reason it would work differently for the right arm. Can it be improved by adjusting the "Twist Angle Offset" of the right arm's twist relaxer?

    Hey,
    IK will solve the hands so that the rotations of the hand bones will match the rotations of the targets. So different bone orientations require different target orientations (could make it use Humanoid muscle space, but the solver also needs to work with Generic rigs so can't really do that). You'll have to adjust the localRotations of the hand IK targets (that are supposed to be parented to the hand anchors).

    Hey, what exactly do you mean by animation not playing correctly? Could you make a video or screenshots or something like that please?
    Just in case, you also need to set locomotion weight to 0 if you wish to play animation on the legs.

    About keeping avatar model in the center of the VR area, if you disable locomotion, you can just move the root of the character anywhere you like and it will stay there.

    Best,
    Pärtel
     
  38. BernieRoehl

    BernieRoehl

    Joined:
    Jun 24, 2010
    Posts:
    54
    Hi Pärtel

    First of all, thanks for all your help. It's really appreciated.

    I'm still struggling with walking animations. When the user indicates they want to walk, I set the solver.locomotion.weight to zero and play the walking animation. However, there is a kind of "jerkiness" to the legs. When I disable the VRIK component, the jerkiness goes away. I don't want to disable the component, since I want to continue to have IK on my head and hands.

    I would've thought that if solver.locomotion.weight is zero, the movement of the legs wouldn't be affected by IK at all and would be controlled entirely by the animation (just as if VRIK were disabled).

    Any thoughts?


    (PS I just noticed that the person who posted right above me seems to be having the exact same problem)
     
    Last edited: Feb 15, 2018
  39. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,714
    Hey,
    Could you send me a video of that jerkiness please?
    When locomotion is disabled, IK will still run on the legs, as when you move your head, the body will have to move too, so when the pelvis is in a different position, IK needs to put the feet back to where they were in the animation.

    Best,
    Pärtel
     
  40. Leocarson

    Leocarson

    Joined:
    Nov 8, 2015
    Posts:
    1
    I'm trying to make a game that needs me to be able to change some things in the VRIK script component mid-game. I've been trying to figure out how to change the head target, left hand target, and the right hand target, but I can't figure it out. I've looked through some of the code, but still can't find anything. These variables are public, but not in the VRIK script. Does anyone know how to do this?
     
  41. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,714
    Hey,
    Code (CSharp):
    1. ik.solver.spine.headTarget = newHeadTarget;
    2. ik.solver.leftArm.target = newLeftHandTarget;
    3. ik.solver.rightArm.target = newRightHandTarget;
    Please note that changing the target like that would make the solver snap to the new target within a single frame so if you want your stuff to look smooth, it would be better to lerp/smoothdamp the IK targets between those different target positions and rotations.
     
  42. BernieRoehl

    BernieRoehl

    Joined:
    Jun 24, 2010
    Posts:
    54
  43. aaronUnity13

    aaronUnity13

    Joined:
    Nov 5, 2017
    Posts:
    1
    Hi everyone. I just got Final IK and am trying to follow Partel's video tutorials. I am pretty new to Unity Animation so this may be obvious and not specific to Final IK. I would appreciate the help of anyone who can tell me why I am getting this little blue figure in the scene window, whether it has a purpose and if not, how to get rid of it. Thanks
     

    Attached Files:

  44. 00christian00

    00christian00

    Joined:
    Jul 22, 2012
    Posts:
    759
    Hi Partel,
    Still trying to make the spine bend naturally.
    It seem to me the extra spine bones are not used, could it be a bug?
    I have the following bones in the torso: hips->spine->chest with spine as the root node, but it seem chest is not used at all. If I remove it from the spine bones list, it doesn't make any difference in the results.
    Is there any way to make the spine arch?So far it is doing a straight line from the root node to the shoulders.
    I tried using the other bones as root nodes, but the results are worse.

    upload_2018-2-16_18-15-25.png
     
  45. Mikekan13

    Mikekan13

    Joined:
    May 30, 2015
    Posts:
    40
    Hey Partel,

    So I have what was trying to do working now thanks to your experimental demo and puppetmaster but I am running into an issue where the ragdoll hands will pop off the controllers when moving my head back and forth I assume because of the ragdoll's physics. I think maybe if the execution order was changed so final IK went after puppet master it might fix this, but I don't know what script for puppetmaster order would need to be changed. Any help is appreciated and thank you for getting me this far.


     
    Last edited: Feb 18, 2018
  46. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,714
    Hey,
    That initial jerk when you start walking might be the transition from idle to walk being to short or something like that.
    Then you have the knees inverting during the walk cycle. That happens when the animation inverts the knees and VRIK tries to maintain the animated bending direction. Try going to the avatar configuration scene and decreasing the max value of Lower Leg Stretch under "Per Muscle Settings" if this is a Humanoid.

    Hey,
    That is just a Gizmo icon. You can reduce it's size by dragging the "3D Icons" slider or setting it's icon to None:
    Screenshot 2018-02-19 13.08.28.png

    Hey,
    You can bend the spine bones in LateUpdate before IK solves:
    Code (CSharp):
    1. public Transform[] spine;
    2. public Vector3 localBendOffsetDegrees;
    3.  
    4. void LateUpdate() {
    5. foreach (Transform s in spine) {
    6. s.localRotation = Quaternion.Euler(localBendOffsetDegrees) * s.localRotation;
    7. }
    8. }
    Hey,
    Make sure you have "Update Joint Anchors" and "Support Translation Animation" enabled under PuppetMaster. Otherwise the ragdoll won't adjust the the arm stretching.

    Cheers,
    Pärtel
     
  47. BernieRoehl

    BernieRoehl

    Joined:
    Jun 24, 2010
    Posts:
    54
    I'm using the walking animations from VRIK. I've tried both Walk and Walk 2, and I still get the issue. I'm reluctant to do any per-humanoid settings, since users are free to use their own mecanim-compatible humanoid avatars and I want to keep life simple for them.
     
  48. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,714
    Hey,
    I've been working to improve the stability of that leg solver since the last version was published, so please try this patch.

    Instead of using the bending direction sampled from the animation each frame, which has proved to be unreliable, you'll get a "Bend To Target Weight" for the legs. You can use it to keep the bending plane locked to the hips (value of 0) or to the rotation of the foot (value of 1) or anything in between.

    Best,
    Pärtel
     
  49. BernieRoehl

    BernieRoehl

    Joined:
    Jun 24, 2010
    Posts:
    54
    That seems to have done the trick. I set the "Bend To Target Weight" to zero, and the walking animations look a lot better.

    Thanks, Pärtel.
     
  50. Mikekan13

    Mikekan13

    Joined:
    May 30, 2015
    Posts:
    40


    I have both checked. The hand jerk is in the demo you sent too.