Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    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. graum

    graum

    Joined:
    May 27, 2013
    Posts:
    9
    I'm working on setting up a robot arm similar to the CCD IK Demo scene. All the joints use Rotation Limit Hinge components. I need the end effector to aim at the target and attempt to get as close to it as possible. The AimIK component aims properly at the target but does not attempt to get closer. The CCD IK component gets close to the target but isn't always oriented in the right direction. Is this possible? How would I achieve a setup like this?

    Thanks for any help!
     
  2. SammmZ

    SammmZ

    Joined:
    Aug 13, 2014
    Posts:
    174
    If I'd make something like this I would probably make a procedural ball animation. Like having two basic points for the ball on the ground, the ball in the upper state, and then tweening the ball between those points. That upper point also could be useful for adjusting the IK of a hand as well (and it will be separate from the ball itself, so it will give you much freedom for tweaking). Syncing ball "animation" with procedural uma characters and different movement animations will be a pain, but with a procedural ball with tweenings, it will be super easy.
     
  3. h8476532

    h8476532

    Joined:
    Mar 14, 2022
    Posts:
    17
    Hello!
    Can final ik constrain end orientation in ccd ik?

    Best regards,

    Tony
     
  4. Cuculain

    Cuculain

    Joined:
    Jan 31, 2017
    Posts:
    5
    Hi,

    I'm using the interaction system to have a character pickup a glass and with the help of offset pose hold it evenly.

    Is there a way to make this pose the new default pose without having to apply it all the time in late update?

    This so I can dynamically play an animation or make further interaction without resetting first to the default pose.

    Hope the question make sense, thankful for any insights or pointers.
     
  5. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,563
    Hey,
    What do you mean exactly by "IK breaks", are there any errors, or does it work differently for every variant or what?

    Hey,
    If you're using Photon, then you should use OnPhotonSerializeView to write the Y of the character controller to the stream and for the remotes that read it, they should apply that Y to avatar position: avatar.position += Vector3.up * (height - avatar.position.y);

    Hey,
    You should use Animation Warping. Take a look at the "Soccer Kick" demo. It's matching the foot to the ball, but can use the same technique for hand too.

    Hey,
    There's no solver in Final IK that can solve for both the position and rotation of the target. If your rig is a standard KUKA or UR5 robot, I've made custom solvers for those before.
    It is also possible to setup PhysX to work sort of like an inverse dynamics solver. Basically like a ragdoll with both ends linked to kinematic rigidbodies that will be your controllers. Here's an example about that.

    Hey,
    You could use HumanoidBaker to bake the animation with that offset pose into a new animation clip. Only way to prevent applying it in lateupdate.

    Cheers,
    Pärtel
     
  6. h8476532

    h8476532

    Joined:
    Mar 14, 2022
    Posts:
    17
    Thank you for your reply!!
     
  7. h8476532

    h8476532

    Joined:
    Mar 14, 2022
    Posts:
    17
    Is that possible to use in other robots that is 6 DOF like staubli or just can use in KUKA and UR?
     
  8. Cuculain

    Cuculain

    Joined:
    Jan 31, 2017
    Posts:
    5
    Thank you, I've been experimenting with HumanoidBaker as you said. I must be missing something, the animation comes out stunted if I don't release fbbik solver for the right arm which is the one affected, and if I keep it on the offset returns to default before playing animation
     
  9. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,563
    Staubli looks just like KUKA so the script in the industrial robots package might just work. Haven't tried myself, don't have the robot model.

    Hey,
    Any chance you could send me a repro project/package about that? Or a step-by-step on how to reproduce?

    Best,
    Pärtel
     
  10. h8476532

    h8476532

    Joined:
    Mar 14, 2022
    Posts:
    17
    Thank you fpr your replay! I will try it.
     
  11. Bullybolton

    Bullybolton

    Joined:
    Apr 13, 2022
    Posts:
    2
    Hey Pärtel,

    I'm looking to VRIK in conjunction with a Machine Learning model that predicts joint positions for the rest of the skeleton. In my mind, I think that the predicted positions could work like real world trackers. Currently in VRIK, you can set bend goals for the arms and leg, but I'd be looking actually make the elbows and knees targets. Would you be able to advise me on how to achieve this?

    Thanks,
    Chris
     
  12. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,563
    Hey,
    Sorry I don't have a proper solution for that.. All I have is this example for VRIK calibration for elbow trackers. But the cost of that is that hand targets are not 100% accurate anymore.

    Best,
    Pärtel
     
  13. the_ocuvox

    the_ocuvox

    Joined:
    Aug 19, 2018
    Posts:
    8
    Hey, I'm actually doing the same thing (maraton_envs) if you want to link?
     
  14. the_ocuvox

    the_ocuvox

    Joined:
    Aug 19, 2018
    Posts:
    8
    Partel,
    All of these demos seem to be missing their GUI (2020.3.30 but also 2021).
    A lot of them are broken in other ways.
    Are there dependencies?
    What was the last version of Unity they were stable in?
     
  15. SeriousDonut

    SeriousDonut

    Joined:
    Mar 15, 2013
    Posts:
    3
    We're having a real weird issue and have tried many solutions, but we can't quite figure this out. Every time the head-facing angle exceeds the angle difference allowed between head and body, the moment the body rotates to correct it throws the hips way out. Here is a video showing what it looks like. We used one of the Final IK default characters to make sure it wasn't a rig issue.

    https://i.imgur.com/BiwUje5.mp4

    We tried playing with all the settings in the VR IK component, but none were able to remove this effect (without removing pelvis movement entirely).
     
    TakuyaBabuya likes this.
  16. TakuyaBabuya

    TakuyaBabuya

    Joined:
    Dec 17, 2020
    Posts:
    9
    I would like to also report the same issue using the 2.1 version. We've tried all settings with no luck too. Using 2021 LTS.
    Luckily our git repo had a previous version installed (2.0) and it fixed the problem.
     
  17. SeriousDonut

    SeriousDonut

    Joined:
    Mar 15, 2013
    Posts:
    3
    We managed to find a 2.0 version somewhere deep in the recesses of some other project repositories and were successful in replacing the faulty implementation. Looks like it fixed the issue. Thank you very much for your insight, it's been a great time-saver!
     
  18. nicew

    nicew

    Joined:
    Sep 6, 2014
    Posts:
    5
  19. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,563
    Hey,
    Which demos were you talking about exactly? I just tried loading up a bunch of them in 2021, didn't find any broken GUI or anything. Maybe try deleting Plugins/RootMotion and reimport everything in case some editor scripts have gone missing or something.

    Hey,
    Haven't seen that one before. Can you let me know how to reproduce this? I tried rotating the head target in all directions in the "VRIK (Basic)" demo, didn't see anything like in your video.

    Hey,
    Adjust the localRotation/Position of the IK targets. VRIK matches the rotation of the bones to their targets, so if you copied IK targets from another character with different bone orientations, they won't match and need to be adjusted.

    Best,
    Pärtel
     
  20. Arjun-Gupte

    Arjun-Gupte

    Joined:
    May 31, 2013
    Posts:
    54
    Hey, I seem to have an issue getting the rotation values when I use an async function. I am trying to get the rotation values from an async function(I can't use coroutine because I need some return values). But when I move the limb and check the values in the async function, they do not match the current rotation of the joint.
    I'm attaching an small project along with this which has the issue.

    Project details:
    Add finalIK to the project. Add LimbIK to gameObject named "Top" with the 3 bones as "Top", "Middle", and "Bottom"

    The scene is an empty scene and it consists of multiple empty gameObjects arranged in a straight line vertically. FinalIK is added to the top of the Hierarchy. A script contains references to said gameObjects in a list. In an update function, the rotation values of the gameObjects are printed. A function exists to print the same objects' values in an async function that is called when the keyboard button period(.) is pressed.

    Steps to Replicate:
    1. Press play button
    2. Move the Target joint forward so that the IK has a bend
    3. Press the Period key on keyboard.
    Expected Outcome:
    The rotation shown in the console from the Update function and the async function are the same.

    Actual Outcome:
    The rotation shown in the console from the Update function and the async function are different.
     

    Attached Files:

  21. Misscelan

    Misscelan

    Joined:
    Mar 8, 2013
    Posts:
    176
    Hi,

    I have this standard 3d adventure game for which I was using Final IK for different tasks, now I'm the process of porting it to VR. The camera is place approximately where the head of the player is located (not parented to any bone though).

    Depending on the animation played you can see a bit of the head clipping through the screen and I was wondering if I could attach any Final IK component that would be processed on top of all the other IK component and would prevent the upper body and head to cross the camera plane.

    Thanks!
     
  22. Rail9

    Rail9

    Joined:
    Feb 21, 2020
    Posts:
    28
    Sorry it has taken me quite a while to reply.

    The synchronization of the Y-axis did not work with the implementation in PhotonSerializeView, and the synchronization worked by using the easier method, Photon Transform View, and associating the component with PhotonView.

    I would like to use VRIK.Solver.Locomotion.Weight to synchronize the animation because I need to change the value of VRIK.Solver.Locomotion.Weight from 0~1, but as mentioned above, the settings from the script using OnPhotonSerializeView did not work.

    Code (CSharp):
    1.  
    2.     void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
    3.     {
    4.         if (stream.IsWriting)
    5.         {
    6.             stream.SendNext(vrik.solver.locomotion.weight);
    7.         }
    8.         else
    9.         {
    10.             float vrikLocomo = (float)stream.ReceiveNext();
    11.             vrik.solver.locomotion.weight = vrikLocomo;
    12.         }
    13.     }
    14.  
    I tried the method I researched but it did not work.
     
  23. halley

    halley

    Joined:
    Aug 26, 2013
    Posts:
    2,495
    I rigged up a Godzilla model with armature in Blender, and got it working with the FBBIK just fine. It's always been easy with humans, thought I'd try it here. I added a LookAtIK, but cannot get the Head bone +Y to look directly at the target. It always seems to dip the head bone down about 25~30º below the gaze target object.

    I tried using the vestigial head-end empty bone, I tried using fewer spine segments leading to the Head bone, I made sure none of the clamps were on, I removed the Head from the FBBIK, I used the Head bone as the "eye" bone in LookAtIK, none of these seemed to pan out. There are no animations. Ideas on what I can look into, to troubleshoot or ensure the Head +Y is fully directed at the target?



    (Oh, 2021.3 lts, and up-to-date Final IK as of this writing.)
     
  24. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,563
    Hey,
    That async function just reads the bone rotations too early, before LimbIK has updated for the frame. Try using LateUpdate of a script that has a higher value in the Script Execution Order than LimbIK has, to call TestFunction from.

    Hey,
    Have you tried VRIK? That is an IK component designed specifically for VR and making the head follow the camera.

    Hey,
    Sure that OnPhotonSerializeView even gets called? It needs a PhotonView component, that script added to its Observed Components and also the script inheriting the IPunObservable interface.

    Hey,
    LookAtIK samples the pose when it initializes to find out which axis of the head bone is pointing forward. Probably the model has its head rotated down in its default pose. Should work if you just rotated the head bone up in the Editor.
    You can also overwrite LookAtIK's bone axes with a script like this:

    Code (CSharp):
    1. public class LookAtInit : MonoBehaviour {
    2.  
    3.     public LookAtIK ik;
    4.  
    5.     public Vector3 spineForwardAxis;
    6.     public Vector3 headForwardAxis;
    7.     public Vector3 eyeForwardAxis;
    8.  
    9.     void Update () {
    10.         if (!ik.solver.initiated) return;
    11.  
    12.         ik.solver.head.axis = headForwardAxis;
    13.         foreach (IKSolverLookAt.LookAtBone spineBone in ik.solver.spine)
    14.         {
    15.             spineBone.axis = spineForwardAxis;
    16.         }
    17.         foreach (IKSolverLookAt.LookAtBone eyeBone in ik.solver.eyes)
    18.         {
    19.             eyeBone.axis = eyeForwardAxis;
    20.         }
    21.  
    22.         Destroy(this);
    23.     }
    24. }
    25.  
    Cheers,
    Pärtel
     
    halley likes this.
  25. halley

    halley

    Joined:
    Aug 26, 2013
    Posts:
    2,495
    Worked perfectly. I forgot that the IK works on a sampled basis, and not just a bone direction basis. That script will come in handy when I develop the other characters who have even more bent "resting" posture.
     
  26. Arjun-Gupte

    Arjun-Gupte

    Joined:
    May 31, 2013
    Posts:
    54
    Can this call still be an async function? Because, in the test function, no matter what delay I put in, it would still show the wrong values.
     
  27. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,563
    Hey,
    Yeah, sorry, not much of an expert with the async stuff. Using await Task.Delay() is what causes the problem because you can't (probably) tell it to execute the code at the correct time in the frame (when the IK has been applied to the pose).

    Best,
    Pärtel
     
  28. VR_Junkie

    VR_Junkie

    Joined:
    Nov 26, 2016
    Posts:
    77
    Hello, I am using VRIK for my multiplayer VR game (4 players total) and am thinking about using FinalIK for the AI enemies. In order to keep with VR performance standards I was wondering how many FinalIK enemies you feel I can have on screen at once in a standard optimized VR game.
     
  29. Tomza

    Tomza

    Joined:
    Aug 27, 2013
    Posts:
    596
    Hey,

    How to use the VRIK script with a two-handed weapon for a VR player (Oculus)? it is possible to add a weapon to a right hand in the bone hierarchy, but how to make the left hand attached to the gun as well to make both hands go with a gun?
     
  30. Tretiak

    Tretiak

    Joined:
    Jan 22, 2018
    Posts:
    49
    Hi I recently bought FinalIK v2.1 and im learning so I have a bit stupid question but couldnt find answer in demos or this thread.
    I used old unity animator IK before to attach both hands to weapon but now Im trying with finalIK, so im seting transform target with

    Code (CSharp):
    1. public void attachLeftHandToTarget(Transform target) {
    2.         ik.solver.leftHandEffector.target = target;
    3.         ik.solver.leftHandEffector.positionWeight = 1;
    4.     }
    This method is called once (not in update)
    It works but rotation isnt same as when I used same target rotation with unitys animator IK. When I set rotation weight to 1 then whole arm is strangly rotated. Should I use rotation weight to 1 and play around with target rotation or Im doing it completly and choose different approach ? sorry Im new to final IK. Is there some good example of setting target with position rotation by code ? thanks
     
  31. FaberVi

    FaberVi

    Joined:
    Nov 11, 2014
    Posts:
    146
    @Partel-Lang
    I'm trying to make a VR player that uses VRIK and has only the torso, arms and hands (no legs and head). I have left the leg fields blank, as suggested in-editor but I get the following error:

    IndexOutOfRangeException: Index was outside the bounds of the array.
    RootMotion.FinalIK.IKSolverVR + Locomotion.Reset_Procedural (UnityEngine.Vector3 [] positions, UnityEngine.Quaternion [] rotations) (at Assets / Plugins / RootMotion / FinalIK / IK Solvers / IKSolverVRLocomotion_Procedural.cs: 168)
    RootMotion.FinalIK.IKSolverVR + Locomotion.Reset (UnityEngine.Vector3 [] positions, UnityEngine.Quaternion [] rotations) (at Assets / Plugins / RootMotion / FinalIK / IK Solvers / IKSolverVRLocomotion.cs: 41)
    RootMotion.FinalIK.IKSolverVR.Solve () (at Assets / Plugins / RootMotion / FinalIK / IK Solvers / IKSolverVR.cs: 415)
    RootMotion.FinalIK.IKSolverVR.OnUpdate () (at Assets / Plugins / RootMotion / FinalIK / IK Solvers / IKSolverVR.cs: 309)
    RootMotion.FinalIK.IKSolver.Update () (at Assets / Plugins / RootMotion / FinalIK / IK Solvers / IKSolver.cs: 64)
    RootMotion.FinalIK.IK.UpdateSolver () (at Assets / Plugins / RootMotion / FinalIK / IK Components / IK.cs: 27)
    RootMotion.FinalIK.VRIK.UpdateSolver () (at Assets / Plugins / RootMotion / FinalIK / IK Components / VRIK.cs: 309)
    RootMotion.SolverManager.LateUpdate () (at Assets / Plugins / RootMotion / Shared Scripts / SolverManager.cs: 113)
     
  32. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,563
    Hey,
    What kind of IK would you need on the AI enemies? 4x VRIK on the players doesn't hurt much even on Quest.

    Hey,
    You're kinda reinventing the wheel here, could just grab something like Hurricane VR to do all the interaction physics and stuff for you, then you can just apply VRIK on top of that (they have example scenes for that). Will save you a year or work figuring out how to do all the interactions.
    Anyway, if you want to put the left hand IK target on an object that is parented to the right hand, it's a bit of a problem, because the IK target positions and rotations are fed into the solver before it starts updating and they are not updated in the middle of the solving process. So the right hand being moved by the solver will not move the left hand's IK target before the solver is complete. You'll have to calculate the target position and rotation of the left hand based on the target position and rotation of the right hand. There's an example about that included in the package, it's called Second Hand On Gun.

    Unity IK uses universal rotations for the hands (independent of bone orientations of the model). It can because it only works for Humanoids. Final IK works by matching bone rotations to target rotations 1:1, so it's dependent on bone orientations. If the rotation of the hand is correct and it's just the elbow that is weirdly rotated, could set rotation weight to 0, set "maintain hand rot" to 1 and call ik.solver.leftHandEffector.bone.rotation = target.rotation; in LateUpdate().
    That way it'll maintain the animated bending direction of the limb and probably look better.
    Can also use Bend Goals to put the elbows where you need them to be.

    Hey,
    That's odd, that line should not be called if you have no leg bones assigned in the Refences.
    If you set locomotion weight to 0 does the error still occur?

    Best,
    Pärtel
     
  33. look001

    look001

    Joined:
    Mar 23, 2017
    Posts:
    111
    Hey there, I have a problem when adding final ik to a procedurally generated rig. I have setup all bones excatly as the standard 3ds Max Biped skeleton, with keeping in mind that my character in T-Pose and not I-Pose. After diling up the weights the character arms (especially the right) change rotations even in the default position as you can see here...
    Here is a video showing the rotations of the bones:
    https://youtu.be/uf8rW-hnCic


    And finally the code:

    Code (CSharp):
    1.  
    2. var references = new BipedReferences
    3. {
    4.     root = gameObject.transform,
    5.     pelvis = pelvis.transform,
    6.     // ... bones ...
    7. };
    8. _fullBodyBipedIK = gameObject.AddComponent<FullBodyBipedIK>();
    9. _fullBodyBipedIK.SetReferences(references, spineBones.First().transform);
    10. _fullBodyBipedIK.solver.SetLimbOrientations(BipedLimbOrientations.MaxBiped);
    11.  
    The code is called in a coroutine wich should not be a problem. Hopefully this is enough information to understand the problem.
    I tried out many things but nothing changed the final result. Any ideas what is going wrong? Thank you for your support!
     
    Last edited: Oct 10, 2022
  34. amitghimire

    amitghimire

    Joined:
    Jun 15, 2022
    Posts:
    12
    Hi Everyone,


    I am trying to animate the pepper robot in VR, especially its head and arm controlled by a human user using Kinect Body Tracking or VR. I will need to implement the DOF limitation of the robot joint as well, I believe using Rotation limit is the way to go for this. If not, please direct me in the right way to apply joint constraints for each joint in IK chain. How do I have rotation limit on all axis? Or two axis while locking one axis? For example for pepper robot arm, the shoulder has 2dof with angle range limitation on two axis, the elbow has 2dof with angle range limitaiton on two axis and wrist has one dof with angle limitation. Is there any way to solve IK for these constraints in FinalIK?


    Another requirement is I need the end effector to follow both user hand position and orientation. I tried using the CCDIK and FABRIK component but both seem to be only following target position. How do I make the IK chain to follow both position and orientation of target transform?


    Any directions will be highly helpful.
     
  35. FaberVi

    FaberVi

    Joined:
    Nov 11, 2014
    Posts:
    146
    Locomotion weight 0 fix the problem!
     
  36. Rail9

    Rail9

    Joined:
    Feb 21, 2020
    Posts:
    28
    Hello!

    I spent quite a bit of time trying to implement a synchronization process in VR, but just attaching a Photon Transform View to a Photon View should work, but it did not work properly in VR.

    I'm sure there must be a way to do this as it works fine in normal TPS, but I don't have much time right now so I'm going to put it on hold for now.

    Thanks for your kind response!
     
  37. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,563
    Hey
    Could you please send me that rig as a unitypackage so I could take a closer look here?

    Hey,
    There's no solver that could solve both for the position and the rotation of the target in Final IK (guess it's not "final" after all). Those kinds of robotics solvers are just hardly ever used in game dev and very slow compared to other types of IK).
    You could try using physics to solve that robot though. Here's an example about that.

    Best,
    Pärtel
     
  38. FaberVi

    FaberVi

    Joined:
    Nov 11, 2014
    Posts:
    146
    @Partel-Lang is it possible to insert a lerp of the values regarding vrik? I would like to add some damping in the various movements to simulate some weight. If so, how can I do it? Thank you!
     
  39. nathanjams

    nathanjams

    Joined:
    Jul 27, 2016
    Posts:
    305
    @Partel-Lang

    Have you considered releasing an updated version of VRIK PUN component for Netcode?
     
  40. beevik_

    beevik_

    Joined:
    Sep 27, 2020
    Posts:
    107
    I just started using the Final IK package and have run into an issue with the 'Rotation Limit Angle' component that I don't know how to resolve.

    In the CCD IK demo, the only rotation limit axis I can get to work correctly is the default (0, 1, 0) axis. If I change it to anything else like (1, 0, 0) or (1, 1, 0), the limit behaves as though the axis is still (0, 1, 0).

    Here is an example:


    And here is how the constraint-violating looks in the scene:


    I'm probably doing something wrong, but I'm not sure what it is. Any help is appreciated.

    EDIT: I noticed that the code assumes the bone rotation starts within the limit. So I modified my example to ensure a valid starting rotation. But the problem still arose; the bone was still able to violate its angle rotation limit, and it behaved as if the limit axis was always (0, 1, 0).

    EDIT #2: I just realized that my mental model of the purpose of the "axis" was wrong. It is not intended to represent the axis of the cone of allowed motion. Rather, It's intended to represent the visual axis of the body being limited (before the body's transform has been modified at runtime). So the user should always try to align the axis with the model's visual axis.
     
    Last edited: Oct 22, 2022
  41. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,563
    Hi, yes, you can lerp the solver parameters. Can use Mathf.Lerp, MoveTowards or SmoothDamp.
    Something like ik.solver.leftArm.positionWeight = Vector3.MoveTowards(ik.solver.leftArm.positionWeight, 1f, Time.deltaTime);

    If I find some time for it... hope it's not abandoned by Unity before I do, lol.

    Hey,
    Yeah, just like physics joint limits, rotation limit rest rotations are stored in Start and that will be the starting point of the limit. So you are right, it's the easiest to understand if you align the limit's axis with the model's visual axis.

    Bet,
    Pärtel
     
    nathanjams likes this.
  42. Felinde

    Felinde

    Joined:
    Sep 19, 2021
    Posts:
    18
    Hi everyone! In the demo scene "Interaction Pick Up 2-Handed" I was looking for a method to rotate the holdpoint towards the character for a cleaner pose, without having the box between your hands tilted, do you have any ideas? Thank you!
     
  43. ShakiitheWolf

    ShakiitheWolf

    Joined:
    Oct 22, 2015
    Posts:
    4
    Hey im having an issue i can't seem to figure out on my own. I'm using VRIK in my VR battle royale game. When the match starts, you are parented to a ship that flies over the map. About halfway across the map the legs start shifting over so ur feet aren't underneath you anymore. the object that the vrik script is on is the one that is shifting away from the initial position and it won't let me just position it back over. any help would be appreciated!!! :D Thanks!
     
  44. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,563
    Hey,
    This patch should fix it.

    Hey,
    Are you calling ik.solver.AddPlatformMotion() to let VRIK know it's on a moving platform (as in the "VRIK (Moving Platform)" demo)?

    Best,
    Pärtel
     
    Felinde likes this.
  45. TakuyaBabuya

    TakuyaBabuya

    Joined:
    Dec 17, 2020
    Posts:
    9
    Hi, I'm having the same issue as SeriousDonut has. The root transform of the humanoid GO kept on drifting away. Would it be possible to have a video call (Zoom/Discord) to see if this is a potential bug?
     
  46. Felinde

    Felinde

    Joined:
    Sep 19, 2021
    Posts:
    18
    Thank you so much! I still have a problem that I cannot solve it. In the event that the cube is inclined, the z axis doesn't align. Any ideas?
     
  47. ejsingson

    ejsingson

    Joined:
    Aug 11, 2019
    Posts:
    3
  48. Dekosta

    Dekosta

    Joined:
    Sep 10, 2022
    Posts:
    3
    Hello, Having an issue with strafing, the player with the scripts (lookatIK etc) when strafing is moving in a big circle and I "BELIEVE" its due to the head LookatIK script's transform/gameobject its looking at in the distance is NOT moving with the character when im strafing sideways, its only moving with the character when moving forward and backwards.

    And I cant parent it under the player, that freaks out the controller.
    Some help or ideas is very appreciated!

    EDIT: Solved the issue. It was the target of the heads lookatIK. I had selected the wrong headlookatobject under the characters locomotion script.
     
    Last edited: Nov 6, 2022
  49. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,563
    Hey,
    Any chance you could send me a repro package or instructions? I can't get that bug to show up.

    Hey,
    I see, please try this then, should fix it.

    Here, made a DampedT script for you, basically just converted DampedTransformJob to a MonoBehaviour.

    Cheers,
    Pärtel
     
    Felinde and ejsingson like this.
  50. ejsingson

    ejsingson

    Joined:
    Aug 11, 2019
    Posts:
    3
    I feel so bad. I don't have finalik yet! But I plan on buying it very soon. I will download the package and put it to good use. Thank you so, so much. That was so kind of you Pärtel!