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. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,925
    Hey,
    You'll just need to assign not the Vive controllers, but empty child gameobjects as VRIK targets. Then you can adjust their localPosition/Rotation according to the bone orientations of your character.

    Hey,
    Replied to your email yesterday.

    Hey,
    Final IK is not a tool for animation authoring, but for making realtime procedural adjustments to the animations. Those adjustments are dynamic and calculated each frame.
    That said, I do have a baking tool in development and I'm planning to add it to Final IK at some point.
    You can get an early version of it from here, just wanna put it out there to gather some early feedback.

    Import it to a project with Final IK inside. Min Unity version 5.5.0

    To get started, go to the "Humanoid Baker" demo, play the scene, and click on "Bake Clip" on the Humanoid Baker gameobject.

    To bake another clip, go to the "Humanoid Baker Clip Sampler" animator controller and replace the animation clip in the "Clip 1" state or add another state and change "Clip State" to that in HumanoidBaker.

    To bake with another character, delete the dummy and add the other one as a child of Humanoid Baker. Assign the "Humanoid Baker Clip Sampler" animator controller to it's Animator.

    More info about baker parameters in the tooltips, but other than that, it is very raw and undocumented. A lot of work is still to be done on it to ease the workflow, but the core functionality is already there.

    Would appreciate it if you have any feedback or errors to report regarding this tool.

    Hey,
    No, but it might actually be easiest to solve this using PhysX. Please import this package with some custom industrial robot solvers. Take a look at the "KUKA Inverse Dynamics" scene. It has the robot set up with physics components, the first part attached to a kinematic rigidbody and also the last - that is the target. The InverseDynamics component just sets some parameters to make PhysX work something like an inverse dynamics solver. The good thing about is that you can use the Joints to set up all kinds of limits and also use the colliders if you need to.

    Hey,
    You could unassign the eyes from the LookAtIK, then run this logic after each LookAtIK update (use the ik.solver.OnPostUpdate delegate):

    Code (CSharp):
    1. Vector3 eyeDir = eyesTarget.position - (leftEye.position + rightEye.position) * 0.5f;
    2.         bool eyesClamped = false;
    3.         eyeDir = RootMotion.V3Tools.ClampDirection(eyeDir, head.rotation * headForwardAxis, eyeClampWeight, eyeClampSmoothing, out eyesClamped);
    4.  
    5.         Quaternion f = Quaternion.FromToRotation(leftEye.forward, eyeDir);
    6.         leftEye.rotation = f * leftEye.rotation;
    7.         rightEye.rotation = f * rightEye.rotation;
    You could also add 2 AimIK for the eyes and make them update after the LookAtIK, but the above method would be more efficient.

    Best,
    Pärtel
     
    AthrunVLokiz likes this.
  2. dred

    dred

    Joined:
    Apr 8, 2013
    Posts:
    30
    Thanks, i will try your tool and give feedback asap. Have a nice day!
     
  3. noethis

    noethis

    Joined:
    Nov 11, 2013
    Posts:
    105
    Hi, I'm using Editor IK for posing characters in the editor. I'm trying to come up with a general approach for posing biped characters--FBBIK does a lot but I also need to be able to pose neck/head/spine better. So I tried using a combo of FBBIK and Look At IK but it seems they don't play nice together even though I edited the EditorIK script to update both solvers (the FBBIK seems to squash Look At). Any ideas?

    EDIT: Or should I be using FBBIKHeadEffector or OffsetEffector instead?
     
    Last edited: Nov 28, 2018
  4. green-giant

    green-giant

    Joined:
    Jun 21, 2013
    Posts:
    11
    I am running into a problem with my character using the FingerRig. Depending on the direction the hand is facing in the world the finger either bends up like it should or spins around to weird angles like sideways. I have attached an image that hopefully illustrates the nature of the problem.

    I am new to Final IK, and rigging models, so I suspect I setup something wrong in the rig. I thought maybe it was something to do with bone roll, so I went back into my model in blender or made sure they were all consistent (a couple were pointing in different directions)

    Any insight you can provide about how to make the finger bend consistently in the right direction would be appreciated.

    As a side note, I should mention the fingers are important here because the character is a puppeteer guiding a dynamic marionette hanging from his fingers
     

    Attached Files:

  5. Censureret

    Censureret

    Joined:
    Jan 3, 2017
    Posts:
    214
    hey guys so i just picked up this asset. I want to use it with my sword combat (where two actors fight eachother) i want to create the effect of having two swords hitting eachother (Where one is blocking and the other is attacking).

    However i am not quite sure how to do it so i was wondering if anyone had any experiance with such a case? i thought of using the interactable system but i am not quite sure how?

    Thank you in advance
     
  6. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,925
    Hey,
    Maybe you updated LookAtIK after FBBIK? Also, "Maintain Head Rot" should be set to 1 in FBBIK Body settings.
    Here's a script for FBBIK + LookAtIK in Editor, just in case.

    Hey,
    Do the fingers get messed up when you rotate the character in Editor and then hit play, or is it when you rotate the character while playing? Would it be possible for you to isolate the issue and send me a repro so I could take a closer look? Not sure how to reproduce it here. It should not be a problem with your rigging though.

    Hey, thanks for the purchase!
    Not the InteractionSystem. Have you seen the "Motion Absorb" demo? Also, how it's usually done without any IK is detecting a collision of the swords and just crossfading out of the attack/block animation or reversing them and then crossfading out. Probably a good idea to try that first if you already haven't.

    Cheers,
    Pärtel
     
  7. wirelessdreamer

    wirelessdreamer

    Joined:
    Apr 13, 2016
    Posts:
    97
    Found a small bug in VRIK. When a pelvis target is set, and position and rotation are both set to zero, the body doesn't rotate freely, but when you unset the pelvis target the body rotates with the head as expected. Expected behavior would be when position and rotation effectors are set to zero, it shouldn't matter if a pelvis target is set.

    Great work on Final IK as always its a pleasure to use :)
     
  8. noethis

    noethis

    Joined:
    Nov 11, 2013
    Posts:
    105
    Thanks Pärtel, that script worked. Looks like it was an order of operations issue.
     
  9. green-giant

    green-giant

    Joined:
    Jun 21, 2013
    Posts:
    11
    Pärtel,

    The issue is after I hit play and rotate the hand. The fingers are fine when I rotate in editor, but still exhibit the same behavior when i hit play.

    I tried the same test on the finger demo rig, and it works fine, so it seems like its something I am doing wrong. I just am not sure what it is


     
    Last edited: Dec 21, 2018
  10. LazyOnion

    LazyOnion

    Joined:
    Mar 6, 2018
    Posts:
    15
    Hello, first of all thanks for this awsome asset.

    So, we 're making a vr multiplayer game, in which there are several tools/weapons axes/swords etc and also every player is calibrated before hand so he has different scale.For vrik is it better to have animations for weapon grabs and use ik to direct the the place where the grab will take place, or to do it completely with ik? How would be the best way to approach this?

    I 've tried with vrik_vrtk package but some of the grabs especially in square/polygon tools are not ideal.
     
  11. smurf88_unity

    smurf88_unity

    Joined:
    Jul 24, 2018
    Posts:
    1
    Hello, I've been using FinalIK and really enjoying this tool. I just have a question about a certain use case. I saw earlier that you had posted a Hit Reaction script that could apply a force to a rig with the FullBodyBipedIK class.
    I was wondering if it is possible to do the same thing with a rig that has the VRIK class.
     
  12. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,925
    Hey,
    Thanks, that is indeed a bug. Please import this fix.

    Hey,
    Thanks, that is a bug too, that should fix it.

    Hey,
    Doing it with animation would be quite tricky, as the hand is already locked to the controller with IK. I've always used the method of moving the hand target to the object and then back to it's default local position/rotation relative to the controller because it's much easier to do. About an animation based approach, not sure, I mean there are so many angles you can grab things from in VR. You should create animations for all possible angles and then warp the hand from animation space to world-object space somehow, perhaps in a similar was as in the "Soccer Kick" demo. Just not sure if the results would be worth the effort though.

    Hey,
    Sure, please check out the "VRIK (Hit Reaction)" demo.

    Cheers,
    Pärtel
     
  13. green-giant

    green-giant

    Joined:
    Jun 21, 2013
    Posts:
    11
    Thanks Pärtel! This works great!
     
  14. HQureshi

    HQureshi

    Joined:
    Apr 13, 2018
    Posts:
    2
    Hi, I just bought the asset a couple of days ago. Is there a way to use this with VRTK? When I move around, the legs act very weird and don't look natural. Also, how can I move up and down slopes properly? The character doesn't seem to follow the terrain.

    Thanks
     
  15. Glader

    Glader

    Joined:
    Aug 19, 2013
    Posts:
    365
    This is great news, I'm looking forward to the benefit of the new job system. I assume in Unity2019 we'll see this mature more? And hopefully support the VR IK?
     
  16. iklw1115

    iklw1115

    Joined:
    Nov 14, 2018
    Posts:
    15
    Hello.
    Is it impossible to calibrate the model to the position of the user's head while executing the application?
    Since people who use various stature use the executed application, I want to be able to process it on the application.
     
  17. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,925
    Hey, thanks for the purchase!
    The procedural locomotion solution in VRIK was designed for Dead and Buried, so it's only meant for shuffling the feet around in a couple of square meters space. For walking and roomscale locomotion it would be better to use animation - make an 8-direction strafing blend tree to make the character follow the horizontal direction towards the HMD with root motion/scripting. About slopes, you should use a capsule collider on the character root and also please check out the "VRIK (Grounder)" demo for foot placement correction on the slopes.

    Hey,
    Yes, it will definitely mature as will also the AnimationJob framework. A Job version of VRIK will be made when I see some real performance gain from using the AnimationJobs. Currently AimIKJ and CCDIKJ are actually about a third slower than the old MonoBehaviour versions when solved on a single character and about the same when solved on 8 or 16 characters. Unity devs are looking into reasons why and hopefully we'll be able to speed things up eventually.

    Hey,
    You can calibrate the avatar to the player's height like this;

    Code (CSharp):
    1. float size = (ik.solver.spine.headTarget.position.y - ik.references.root.position.y) / (ik.references.head.position.y - ik.references.root.position.y);
    2.             ik.references.root.localScale *= size;
    Best,
    Pärtel
     
  18. iklw1115

    iklw1115

    Joined:
    Nov 14, 2018
    Posts:
    15
    Where should I go for that Code?
    Also,why does the Dummy model keep tiptoe when turning down?
    Why can not everybody move and look down only at the neck?
     
    Last edited: Dec 7, 2018
  19. OfficialHermie

    OfficialHermie

    Joined:
    Oct 12, 2012
    Posts:
    457
    I love your Baking Add-On, thank you.
    It works fine as far as I can see.
    I would love to have an option to make the record exactely as long as the original animation.
    In my case, I would like to use FinalIK to position the arms to hold a weapon.
    If I could limit the bake to the start / end of the original loop, I could simply replace the original animation with the FinalIK-baked version without any hassles.
    Would that be possible?

    Edit: Oh man, I was stupid... It's there: "Bake Clip". :)
     
    Last edited: Dec 6, 2018
  20. OfficialHermie

    OfficialHermie

    Joined:
    Oct 12, 2012
    Posts:
    457
    ps: When I went to the asset store today, it said "FinalIK: Update, 40 €", and I thought hmmmm, ok, and then I clicked to purchase it. But it wouldn't purchase, it would just update. Personally, I have no problem with paid updates, your support is (together with Kalagaan from VertExMotion and Hair Designer) absolutely amazing.
     
  21. adhochero

    adhochero

    Joined:
    Feb 2, 2017
    Posts:
    38
    I still have yet to get final ik vr working. when i attach the VRIK to the character the legs and rest of the body lags behind the head like the ground is sticky and it being pulled by the head.

    mainly what i am trying to do is have the head linked to the vr headset. but not the hands, except if you pick up an object then i want your hand and the object linked to the controller.

    but i can't figure it out. half the things i try cancel out the animations and the other half ignore the hand links
     
  22. Tesrym

    Tesrym

    Joined:
    Dec 2, 2012
    Posts:
    55
    Using 2019.1 alpha 11
    InvalidOperationException: Destroying a GameObject inside a Prefab instance is not allowed.UnityEngine.Object.DestroyImmediate (UnityEngine.Object obj) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.bindings.cs:313)RootMotion.Dynamics.PuppetMaster.RemoveUnnecessaryBones () (at Assets/Plugins/RootMotion/PuppetMaster/Scripts/PuppetMasterSetup.cs:284)RootMotion.Dynamics.PuppetMaster.SetUpTo (UnityEngine.Transform setUpTo, System.Int32 characterControllerLayer, System.Int32 ragdollLayer) (at Assets/Plugins/RootMotion/PuppetMaster/Scripts/PuppetMasterSetup.cs:56)RootMotion.Dynamics.PuppetMasterInspector.OnInspectorGUI () (at Assets/Plugins/RootMotion/Editor/PuppetMaster/PuppetMasterInspector.cs:125)
    Cannot "Set Up PuppetMaster" when using the Puppet Master script.


    With the upgraded prefab system, the original must be "unpacked".
    Code (CSharp):
    1.  
    2. ...
    3. // Removes all bones that don't have a Rigidbody or a Collider attached because they are not part of the simulation
    4. private void RemoveUnnecessaryBones() {
    5. UnityEditor.PrefabUtility.UnpackPrefabInstance(transform.root.gameObject, UnityEditor.PrefabUnpackMode.Completely, UnityEditor.InteractionMode.AutomatedAction); // <--
    6. ...
    7.  
     
  23. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,925
    Hey,
    It should go to a new script and you should run that code when the player is standing straight. You can also check out the "VRIK (Calibrator)" dmeo, there's a calibration tool included for VRIK that already does that.

    When the avatar tiptoes too much, it must be too short for the player. If it only happens when looking down, try reducing the value of "Neck Stiffness" in the Spine settings.

    Hey,
    Thanks, but there has been no paid update to FIK, that must be some other thing or an asset store bug or something.

    Hey,
    The procedural locomotion built in to VRIK was designed for shuffling the feet in a couple of square meters space, it's not good for roomscale or A-B locomotion. I suggest you make standard 8-directional strafing blend tree and make it follow the horizontal direction towards the HMD with root motion and/or scripting.

    About the hands, can't you just keep hand position/rotation weight at 0 until you want to pick up an object, then set IK target position/rotation to the object and blend in the weights?

    Hey,

    1. Before making a ragdoll of the character, duplicate it and unpack the prefab of the duplicate (you can also just drag in the model from the assets if the prefab setup is too complex and already has a lot of gameplay components), use it to create the ragdoll with BipedRagdollCreator.

    2. Add PuppetMaster to the ragdoll instance.

    3. Assign the original prefabbed character as "Animated Target" in PuppetMaster.

    4. Click on "Set Up PuppetMaster".

    So the point is that if "Target Root" is not the same gameobject as PuppetMaster's own gameobject, it will not have to duplicate it and destroy any gameobjects or components from the duplicate, it will keep the original character as Target Root untouched.

    Best,
    Pärtel
     
    Tesrym likes this.
  24. LVermeulen

    LVermeulen

    Joined:
    Jun 26, 2013
    Posts:
    11
    What would be the best way to change FBBIK at runtime to have the arm effectors only effect the hands? (So disable them pulling the shoulder). If that is possible. I am trying to have the animation reach as far as possible with just their arms (and turn this off/on)
    Pull/Reach/Push/PushParent are all at 0
     
  25. Onat-H

    Onat-H

    Joined:
    Mar 11, 2015
    Posts:
    66
    Hi Partel,
    I wanted to ask if there are any plans to integrate Final IK with the Timeline?
    Best wishes,
    Onat
     
  26. Vegetables

    Vegetables

    Joined:
    Aug 15, 2016
    Posts:
    10
    Hi,

    I'm trying to set up an IK rig for what is essentially a hose or a snake fixed on one end. However, I have a specific requirement that I can't seem to figure out how to achieve if it's even possible.

    The hose tip needs to face in a specific direction, but I want to avoid kinking in the hose that occurs depending on the current hose tip rotation. Also, the hose may have only 2 or more than 3 bones, so I can't use a TrigonometricIK solver or LimbIK solver.

    hoseik1.png
    I've tried both FABRIK and CCD rigs. I found the following post in this thread:

    So I understand that neither solver can do this alone. So I've attempted a slightly different approach using an extra bone with a Rotation Angle constraint to prevent it from bending so the last bone is always pointed down the hose tip hoping that the rest of the chain would follow:

    hoseik2.png

    This approach sort of works, but the bone at the base of the hose tip can "fall off" when the target is moved to certain positions permanently breaking the rig. I've tried to compensate by extending and shortening the bones as needed so the next-to-last-bone would always be able to reach the position, but this leads a bunch of other problems and it still doesn't solve the kink issue.

    If anyone has any advice or just wants to tell me this is impossible, please do.
     
    Last edited: Dec 10, 2018
  27. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,925
    Hey,
    You could just set FBBIK solver iteration count to 0, in which case it will work much like BipedIK or Unity's built in humanoid IK and will also be much faster. Another option would be to set ik.solver.FABRIKPass to false.

    Hey,
    It's in my todo list, but way down the line to be honest as you are I think the first or second to ask and it would require writing some kind of wrapper classes for each solver. The new AnimationJob versions of CCDIK and AimIK (CCDIKJ and AimIKJ) added in the last version should be usable with Timeline though, haven't tested that yet.

    Hey,
    Please import this package, it has some custom solvers for some industrial rigs. Take a look at the "KUKA Inverse Dynamics" scene, it demonstrates how Unity's PhysX can be set up to work as an "inverse dynamics" solver.
    Basically just set up the rig with Rigidbodies, Joints and optionally colliders as if it was a ragdoll. Then attach the root to a kinematic rigidbody and also the last part to a kinematic rigidbody - that will be your end effector. Then add InverseDynamics.cs to the root kinematic rigidbody. You can use joint limits and colliders for internal and/or external collisions if you need to, I have managed to use this to solve all kinds of complex rigs with prismatic joints and what not.

    Best,
    Pärtel
     
    Vegetables likes this.
  28. Vegetables

    Vegetables

    Joined:
    Aug 15, 2016
    Posts:
    10
    Thank you! I will look into this.
     
  29. fengkan

    fengkan

    Joined:
    Jul 10, 2018
    Posts:
    18
  30. fengkan

    fengkan

    Joined:
    Jul 10, 2018
    Posts:
    18
    I found the calibration demo, I will begin from there.
     
    Partel-Lang likes this.
  31. iklw1115

    iklw1115

    Joined:
    Nov 14, 2018
    Posts:
    15
    Thank you.
    A problem occurred while creating a game with Photon. . .
    First of all, Dummy has been rotating all the way when I created a room and entered the room.
    The second one uses HMD, two controllers and three trackers.
    Outputting each coordinate to CSV File will make the operation heavier.
    The second one is irrelevant to FINAL IK, but I'd be happy to give you advice on these two problems.
     
  32. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,925
    Hey,
    The rotating sounds like a circular dependency issue, that usually happens if you have the IK targets parented to the root of the character. VRIK rotates the root to follow the head target rotation, but if the head target is parented to the root, it will turn away again. Kind of like a dog chasing it's tail.

    I'm sorry I dind't understand the second question, why do you need to output the corrdinates to CSV?

    Best.
    Pärtel
     
  33. iklw1115

    iklw1115

    Joined:
    Nov 14, 2018
    Posts:
    15
    I am still unable to solve the problem of becoming tiptoe.
    I want to output with CSV file because I want to see the behavior of the Player data.
     
    Last edited: Dec 13, 2018
  34. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,925
    Hey,
    Did you try reducing "Neck Stiffness" and "Spine Rot Stiffness" in spine settings and increasing the avatar scale?
    Also try adding a stretch curve to the legs. Go to the "VRIK (Basic)" demo and copy the stretch curve over from the Pilot's leg settings to your own.

    Not sure I can help you with the CSV thing.

    Best,
    Pärtel
     
  35. blake_seow

    blake_seow

    Joined:
    Aug 3, 2012
    Posts:
    12
    Hello! Thank you for the awesome works!
    I'm running into a problem with full body biped IK.

    I'm creating a game where player can pose there character by select each bone and rotate as they want (just like how we rotate a transform in Unity). Now I trying to add final IK as a additonal tool on top of that for them to pose the character.

    What I do is, when user is dragging the hand point, then I will set arm weight of full body biped IK to 1, and snyc the solver position with their mouse positon. It works very well. When they done dragging, and want to select the arm bone to rotate it with my methed, I will set arm solver weight to 0, and using my script to manage the rotation.

    Now the problem is, I can't find a way to apply the rotating result player manualy made back to final IK, basicly when arm IK is enabled again, it gonna ingore the rotation change of my script, and reset the rotation.

    Is there any function I can call to update the current bone roation to final IK? So next time when IK is enabled, it will use the current roation as a start? Thank you!
     
  36. wirelessdreamer

    wirelessdreamer

    Joined:
    Apr 13, 2016
    Posts:
    97
    Any chance you have a knuckles Integration package, to drive a VRIK character with steam 2.0 skeletal tracking data? I've been playing around with the interaction example with knuckles, and would love to add that to my game.
     
  37. Michael2790

    Michael2790

    Joined:
    Nov 27, 2017
    Posts:
    8
    hi Partel
    How can i access the weight variable in fbbik from another script?
    upload_2018-12-17_10-4-27.png
     
  38. Spabbage

    Spabbage

    Joined:
    Feb 15, 2015
    Posts:
    18
    Hi,

    Are there any examples of VRIK working with the interaction system?

    I'm trying to use the interaction system to place the users hand on a wall when they get close to it so their hand doesn't go through it.

    It seems to work fairly nicely apart from the interaction is transitioning from the spawning hand position and not the current position.

    Thanks
     
  39. olvr

    olvr

    Joined:
    Apr 27, 2017
    Posts:
    1
    Is it possible to add shoulder targets for the VRIK script? We have a scenario where we only have positions of targets but not the rotations. Being able to set shoulder targets could let the character rotate the body based on the shoulder positions.
     
  40. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,925
    Hey,
    Your arm rotation script probably just applies the rotation to the arm once and the next time FBBIK updates, it will overwrite the pose and it will be lost. I'd suggest to maintain the FK rotation offsets in an array of rotations and apply them every time after FBBIK updates.
    So just make a Quaternion[] rotationOffsets that has the same length as the number of bones in the rig and every time you rotate a bone, you update the rotationOffsets[boneIndex] value.
    The rotationOffsets then need to be applied to the pose after FBBIK updates. You can register to the ik.solver.OnPostUpdate delegate to get a call from FBBIK each time it is done updating. Then from there you can apply the rotationOffsets to each bone.
    That way your FK rotation script would work like a modifier layer on top of FBBIK.

    Hey,
    No plans for that in the immediate future, sorry. But as much as I've read, seems like SteamVR Skeletal Input API requires a very specific bone structure and specific bone orientations for the hands and it outputs some kind of FK animation. So in the unlikely case that your avatar has exactly the same kind of bone structure in the hands, you should be able to map each bone rotation directly to their Hand Skeleton. But even if your avatar's bone orientations are different, it's not really an IK problem, it's a matter converting those Hand Skeleton bone orientations to your own. In QuaTools.cs (RootMotion namespace) there is a helper method for that:
    Code (CSharp):
    1. public static Quaternion MatchRotation(Quaternion targetRotation, Vector3 targetforwardAxis, Vector3 targetUpAxis, Vector3 forwardAxis, Vector3 upAxis)
    So if Hand Skeleton has -Z forward and +Y up for each bone, but your avatar has for instance -X forward and +Y up, then you can match the bone rotations like this:
    Code (CSharp):
    1. bone.rotation = QuaTools.MatchRotation(boneTarget.rotation, new Vector3(0, 0, -1), new Vector3(0, 1, 0), new Vector3(-1, 0, 0), new Vector3(0, 1, 0));
    ..with bone being a bone in your avatar hand hierarchy and boneTarget the corresponding bone in the Hand Skeleton.

    Hey,
    Code (CSharp):
    1. ik.solver.IKPositionWeight;
    It's a bit confusin, I know, but it's named like this because it is inherited from the IKSolver class that is the base class for all solvers and most have position and rotation weight. But in the case of FBBIK, IKPositionWeight is just the master weight.

    Hey,
    No, sorry, InteractionSystem only works with FBBIK.
    If its a VR game, then you could instead of using InteractionSystem, make a sphere cast from the body (HMD position + Vector3.down) to the hand and if it hits a wall, move the hand IK target closer to the body along the raycast direction. If it doesn't hit, move it back to it's default localPosition. Havent' tried it myself though.

    Hey,
    Not really, that would require rewriting almost everything. But maybe you can use the Chest Goal of the spine...
    Code (CSharp):
    1. ik.solver.chestGoal.position = ik.solver.headTarget.position + Vector3.Cross(rightShoulderPos - leftShoulderPos, Vector3.up).normalized.
    Maybe that'll do it.
    Also set chest goal weight to 1.

    Best,
    Pärtel
     
  41. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,053
    Hello! Soo, VRIK locomotion... Where can I find the script ?
     
  42. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,925
    VRIK is VRIK.cs and the procedural locomotion that it has is a part of it, you can find the settings in the bottom of the component.
     
  43. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,053
    Okay, by locomotion I mean mecanim, so I can controll with touchpad..?
     
  44. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,925
    Hey,
    Ok I see, you'll basically need a standard 8-direction strafing blend tree to make the character follow the horizontal direction towards the HMD with root-motion/script. And set locomotion weight to 0 in VRIK settings. Here's a demo and example script to get you started. The animation used in that are not the best for such a thing, I've found Kubold's Movement and Rifle Animsets from the Asset Store to be pretty good. That's what I used in Dead and Buried at least.

    Best,
    Pärtel
     
    mattis89 likes this.
  45. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,053
    Thanks alot! :)
     
  46. a-t-hellboy

    a-t-hellboy

    Joined:
    Dec 6, 2013
    Posts:
    148
    Hey there,

    I want the head of my character follow camera look in Y axis and upper body of my character follow camera look in X axis. What should I do ?
     
  47. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,053
    Is it made for oculus or steam VR?
     
  48. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,053
    Okay its oculus..Got any steam vr? .. Looked good ! .. What is it that defines it only works with oculus? What to rewrite?
     
  49. iklw1115

    iklw1115

    Joined:
    Nov 14, 2018
    Posts:
    15
    Hey,Last time I had a birthday.
    I solved the problem of standing up.
    Please let me have a new question.
    When manipulating the model using VRIK + HTC Vive, how much is the difference between the actual movement of the person and the movement of the model?
    How many milliseconds?
     
  50. fengkan

    fengkan

    Joined:
    Jul 10, 2018
    Posts:
    18
    Just saw this.



    Wish this can bring Lang some new inspiration. :)
     
    mattis89 likes this.