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

    TRuoss

    Joined:
    Dec 5, 2012
    Posts:
    85
    Hi,

    i´m currently buildinh an FPS with the FinalIK: Full Body Biped IK and AimIK. I got everything working fine so far and i´m very happy with it.

    But now i started with the Network and i can not find any information about how to sync the IK stuff over the network. Are there any Information?

    I tried a few things with Network Transform Child but it breaks the IK and is not looking the same on different Clients.

    If there is someone who could share some information about this, i really appreciate it :)
     
  2. SamPav

    SamPav

    Joined:
    May 24, 2015
    Posts:
    13
    I guess I can help a little.

    When it comes to networking (I am using Photon), you basically want to synchronize the head movement + hand movement, right? Well, just create empty gameobjects - one for head, one for left hand, one for right hand. Create a script so that these gameobjects follow your head and hands. Attach the bones of your avatar under these gameobjects - left hand bone under the left hand gameobject etc. That will make your full body avatar work pretty well.

    The final step is to instantiate these gameobjects on network and send their position to other people. That's it!

    (Btw, I recommend to make sure the gameobjects are childs of the avatar - that way, if you want to interpolate you can assign them to your script.)
     
    Partel-Lang and nomax5 like this.
  3. TRuoss

    TRuoss

    Joined:
    Dec 5, 2012
    Posts:
    85
    Thanks SamPav, i will try it later and give feedback here. thx
     
  4. nomax5

    nomax5

    Joined:
    Jan 27, 2011
    Posts:
    365
    Thanks SamPav
    I came here looking for information on sync'ing IK over the photon network and it sounds like you have a working solution, thanks for that.

    Any chance you could post a code snippet
     
  5. Darioszka

    Darioszka

    Joined:
    Jan 22, 2015
    Posts:
    12
    Hello
    I would buy this plugin. I have 2 questions:
    For example: I have a horse object with Grneric Rig animations in Unity. I want to use these animation and add my own other animations. I want to use IK. Can I do this with Your plugin?
     
  6. TRuoss

    TRuoss

    Joined:
    Dec 5, 2012
    Posts:
    85
    @SamPav i tried what you have written, but i couldn´t get it to work. But that gave me the right hint how to get it working myself. I will post a code snippet when i´m back home.

    For now i copied/send part if the ik.solver.lefthand... and the gunTarget and cam positions to get it working. For tests i recommend duplicate the Character and try copy the values you want from your local Player to the duplicate. So you don´t have to build. That was a huge time saver for me.
     
  7. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    I guys, sorry for being slow these last few weeks. Dead and Buried is released now so I can put all my focus back to my assets :)

    Hi,
    FIK is not a tool for animation authoring, it is more like a procedural layer on top of your normal animation. There is no tool included for baking the results though.

    Hi,
    Yes you would probably not want to parent the cart to the player. Instead, you'll have to make a script that controls it's motion or use some kind of a physical rig with colliders and stuff. Depends on how realistic you want the simulation to be. I'd start by making a rig for the cart and get it to stay in front of the player as close as possible with minimum motion for the handles. It might be possible to build that cart like a car using wheel colliders. Then attach it to the player's Rigidbody with a joint. Once you have that, it should be relatively easy just to use the FBBIK effectors to link the hands to the handles.

    Hi,
    Normally you'd just sync all the IK targets and weights and have each client solve their IK locally.

    Hi,
    What kind of IK would you need? There is the GrounderQuadruped that can be used for foot placement correction on 4-legged creatures. There are also IK components that you can use to control where the head looks and stuff like that.

    Cheers,
    Pärtel
     
    Deleted User likes this.
  8. Darioszka

    Darioszka

    Joined:
    Jan 22, 2015
    Posts:
    12
    I need inverse IK.
     
  9. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    Inverse inverse kinematics? That would be forward kinematics, bro :)
     
    LacunaCorp likes this.
  10. Darioszka

    Darioszka

    Joined:
    Jan 22, 2015
    Posts:
    12
    Heh sorry I'm poor in English, ofcourse IK is inverse kinematic.
    Now in Unity I cant use IK when I want to add animations to my horse. I want add animations with IK system.

    Thanks
     
  11. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    What kind of IK do you need?
     
  12. Darioszka

    Darioszka

    Joined:
    Jan 22, 2015
    Posts:
    12
    I would like move some point in foot and move all bones in leg by moving that one point.
     
  13. Deleted User

    Deleted User

    Guest

    With PuppetMaster you have ragdoll creation built in, could we have this also with Final IK to have built in animation creation as a bonus? I know this is supposed to be real time but that would be really huge to create/modify animations inside Unity. And is this tool only for experienced developers or could someone like me who is not really an animator use it? Is there Playmaker support?
     
  14. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    Yes that is possible with LimbIK and FullBodyBipedIK components in FinalIK.

    I even started working on that a year or 2 ago. I got stuck though because of the Humanoid animation creation API that was completely closed/hidden in Unity. It would have required a nasty DAE/FBX export/import hack so I decided to give it a rest until that API opens up.
    There is Playmaker support though, in a package under Assets/Plugins/RootMotion/FinalIK/_Integration.
     
    Deleted User likes this.
  15. SamPav

    SamPav

    Joined:
    May 24, 2015
    Posts:
    13
    This is how I do it on network. I have a script on each of the three gameobjects that I mentioned, which makes sure the gameobjects follow your head/left hand/right hand.
    Code (CSharp):
    1.    
    2.     public int index = 0; // 1 if head gameobject, 2 if lefthand gameobject, 3 if righthand gameobject
    3. void Update () {
    4.         if (photonView.isMine) {
    5. //            print ("update");
    6.             switch(index) {
    7.             case 1:
    8.                 transform.position = ViveManager.Instance.head.transform.position;
    9.                 transform.rotation = ViveManager.Instance.head.transform.rotation;
    10.                 break;
    11.             case 2:
    12.                 transform.position = ViveManager.Instance.leftHand.transform.position;
    13.                 transform.rotation = ViveManager.Instance.leftHand.transform.rotation;
    14.                 break;
    15.             case 3:
    16.                 transform.position = ViveManager.Instance.rightHand.transform.position;
    17.                 transform.rotation = ViveManager.Instance.rightHand.transform.rotation;
    18.                 break;
    19.             }
    20.         }
    21.     }
    The ViveManager script is attached to the camera rig and looks like this >

    Code (CSharp):
    1.     public GameObject leftHand; // asign controller left here
    2.     public GameObject rightHand;// asign controller right here
    3.     public GameObject cameraRig;// asign camera head here
    4.  
    5.     public static ViveManager Instance;
    6.     // Use this for initialization
    7.     void Awake () {
    8.         if (Instance == null)
    9.             Instance = this;
    10.     }
    If you make sure the gameobjects are childs of your avatar, then you just instantiate your avatar on network and send positions of gameobjects via photon view. Of course, every gameobjects needs to be parent of the particular bone, so head gameobject is parent of head bone etc. Thats it really.
     
  16. TRuoss

    TRuoss

    Joined:
    Dec 5, 2012
    Posts:
    85
    @SamPav thanks for the snippets.

    @Partel-Lang do you know this Unite 2016 talk? Starts at min 29. Maybe that can boost the FinalIK performance.
     
  17. Hedonsoft

    Hedonsoft

    Joined:
    Jul 11, 2012
    Posts:
    168
    Hi Partel. I'm trying to use AimIK to setup a simple aiming system but I'm doing something wrong. When I move the mouse down the character looks up and vice versa.

    When I pick up the gun using the interactionsystem it finds the Target parented to the Camera

    Code (CSharp):
    1. foreach (FullBodyBipedEffector e in effectors)
    2.                 {
    3.                     interactionSystem.StartInteraction(e, interactionObject, true);
    4.  
    5.                     hasGun = true;
    6.  
    7.                     //var target = interactionObject.GetComponentInChildren<Target>();
    8.                     aim.solver.target = Camera.main.GetComponentInChildren<Target>().gameObject.transform;
    9.                 }
    Then in LateUpdate() I do the updates

    Code (CSharp):
    1.  void LateUpdate()
    2.         {
    3.             ik.solver.Update();
    4.             aim.solver.Update();
    5.         }
    why are the aiming directions inversed?
     
  18. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    Hi,
    Thanks for the link, very interesting... Good points in there, but you know if you optimize something that gets called 100000 times a frame just a little bit, you can get pretty good results. If there are only a few calls per frame though, it will be little more than nothing.

    Hi,
    Check the "Axis" of AimIK, make sure it is not inverted.

    Best,
    Pärtel
     
  19. ksam2

    ksam2

    Joined:
    Apr 28, 2012
    Posts:
    1,079
    I have some colliders I use as trigger but it's weird that final ik reacts to those colliders too!!!


    Using Unity 5.5
     
  20. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    Hey, looks like you found a bug there, thanks!
    Please import this patch.

    Cheers,
    Pärtel
     
    ksam2 likes this.
  21. Tricktale

    Tricktale

    Joined:
    Jan 23, 2015
    Posts:
    42
    Hi, I'm trying to get a creature working with Aim IK and FABRIK together. The image shows how the creature is rigged, with the purple box signifying the root bone that has an Aim IK script attached that looks at the player, and the light blue squares are tentacles that have a FABRIK script attached.

    I need the tentacles to contort as the root bone rotates to look at the player.
    The problem is that at runtime the FABRIK scripts seem to be ignored until I disable and enable them again, and then everything works correctly.

    Is there something I'm doing wrong here?

    finalik.jpg
     
  22. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    Hi,
    Weird stuff...
    Based on that information maybe disabling/enabling changes the update order of things somehow...
    Make sure AimIK updates first and FABRIK later. Do that by disabling the components and calling ik.solver.Update(); from LateUpdate.

    Best,
    Pärtel
     
  23. emrys90

    emrys90

    Joined:
    Oct 14, 2013
    Posts:
    755
    Does FinalIK update child collider positions for physics? I'm using AimIK to direct an attack, and using OnTriggerStay methods to detect attacks, but it doesn't register the hit when I aim down to hit something on the ground. It looks like the collider passes through it, but wondering if that's at a point that physics wouldn't be aware of it?

    I tried to do the solving in FixedUpdate as well, but it appeared to have made no difference.
     
    Last edited: Dec 9, 2016
  24. Narcotic904

    Narcotic904

    Joined:
    Jun 11, 2013
    Posts:
    14
    How do I set AIMIKs aim target to my crosshairs position? For example I am displaying the crosshair like this.

    Code (csharp):
    1.  
    2. GUI.DrawTexture(new Rect(Screen.width / 2, (Screen.height / 2) - 64.0f, 64, 64), crossHair);
    3.  
    I have tried doing this but it isn't really working correclty. aimTransform is a blank gameobject i have in the world.

    Code (csharp):
    1.  
    2. Vector3 screenPos = Vector3.zero;
    3.                             if (anim.GetBool("aiming") == false)
    4.                             {
    5.                                 screenPos = camera.ViewportToWorldPoint(new Vector3(0, (Screen.height / 2) + 64, camera.farClipPlane));
    6.                                 anim.SetBool("aiming", true);
    7.                                 aim.solver.transform = weapon.weaponGfx[16].transform;
    8.                                 aimTransform.position = screenPos;
    9.                                 aim.solver.target = aimTransform;
    10.                              
    11.                             }
    12.                             else
    13.                             {
    14.                                 screenPos = camera.ViewportToWorldPoint(new Vector3(0, (Screen.height / 2) + 64, camera.farClipPlane));
    15.                                 aimTransform.position = screenPos;
    16.                                 aim.solver.target = aimTransform;
    17.                             }
    18.  
    any suggestions?
     
  25. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    Hi!
    Just did this test:
    1. Opened "Aim Weapon"
    2. Added a sphere collider to the right hand
    3. added this script:

    Code (CSharp):
    1. void Update () {
    2.         Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    3.  
    4.         if (Input.GetMouseButtonDown(0)) {
    5.             if (Physics.Raycast(ray)) {
    6.                 Debug.Log("Hit");
    7.             }
    8.         }
    9.     }
    Everything seemed to work as expected, the position of the collider was updated by IK when I moved the target around.

    Hi,
    Try Camera.ScreenToWorldPoint instead of ViewportToWorldPoint.

    Best,
    Pärtel
     
  26. Tricktale

    Tricktale

    Joined:
    Jan 23, 2015
    Posts:
    42
    Thanks, Partel. I changed the Script Execution Order in Project Settings, placing AimIK before FABRIK and it works correctly now. :)

    EDIT: I spoke to soon. For some reason clicking an object in the hierarchy that has either an AimIK or FABRIK script removes the script from the execution order. This is really strange.

    Also, what's the best way of making AimIK slowly turn to look at the target transform? I've tried lerping solver.IKPositionWeight, but the resulting rotation with a fast moving target is still too fast.

    Thanks.
     
    Last edited: Dec 12, 2016
  27. emrys90

    emrys90

    Joined:
    Oct 14, 2013
    Posts:
    755
    Any thoughts as to what my problem could be then? If I resize the collider of the object on the ground, it doesn't register the hit until I make it tall enough for where the sword would pass through it without AimIK.

    Also, you're running that in Update, which would be different from when physics calls things like OnTriggerStay which is what I am using. Could that be why your test worked?
     
  28. Unityraptor81

    Unityraptor81

    Joined:
    Nov 28, 2016
    Posts:
    29
    Hi @Partel-Lang

    I've extensively tested during one week the package with offset correction in game and you've made my day... everything it's just perfect !

    I was also searching à way to open/close fingers when gripping object. Is there a way to do this through VRIK ?

    Thank you so much

    Jay
     
  29. TommiH

    TommiH

    Joined:
    Jan 14, 2008
    Posts:
    253
    Hello,

    We have a quadruped character, and Final IK makes it look great for the most part. However, when walking up or down on steep slopes, it starts to look weird. The torso gets rotated to match the ground, which is good, but the legs are also rotated, which looks like the animal has its very own gravity.

    Any thoughts how we might be able to rotate the legs a little backward when climbing and forward when descending?
     
  30. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    Hey,
    That is because the custom editors of IK components force the script execution order in OnEnable.
    Try using the IKExecutionOrder component.

    You could interpolate the target transform instead of the weight. If you need turning to be smooth and at a consistent speed, you'll have to interpolate it spherically, not linearly. So take the direction from the root of the chain to the interpolated target, then use Vector3.RotateTowards or Vector3.Slerp to rotate the interpolated target towards the un-interpolated target around the root of the chain.

    Hey,
    Yes, it is most likely the update order of things. In Update the character has not been animated yet, so it is in the position where it was in end of the last frame, when IK had been applied. In OnTriggerStay it might be animated already (depending on your Animator's Update Mode), but IK as not applied yet.

    Any way you could delay your raycasting code until IK has applied? Maybe using the ik.solver.OnPostUpdate delegate.

    Hi, glad to hear stuff works :)
    About the fingers, check out the "Finger Rig" demo. But I always advise people to use simple animation for fingers. Solving 10 IK chains for that level of detail is quite inefficient.

    Hey,
    You could decrease "Min/Max Root Rotation" and/or "Root Rotation Weight", see if it that helps.

    Best,
    Pärtel
     
  31. Tricktale

    Tricktale

    Joined:
    Jan 23, 2015
    Posts:
    42
    Thanks Partel, you've been a great help. I'm really enjoying using FinalIK, it's really bringing all my characters to life. Vector3.RotateTowards works really well for creating a gradual turn.

    I tried using the IKExecutionOrder component. It solves the problem of the FABRIK components not updating properly, but has introduced a new issue, where the FABRIK chains are getting twisted around the root bone as it rotates to look at the target. Any ideas as to what might be causing it?
     
  32. emrys90

    emrys90

    Joined:
    Oct 14, 2013
    Posts:
    755
    Not really, I'm using trigger and collision events in a lot of places to be able to handle hit boxes, weapons, and so on. It would be much better if I could continue to use those events. I have the animators set to update in FixedUpdate. Can you think of any way I could continue to use the OnTriggerStay events? I'm not using raycasts to check if a weapon hits a hit box, but checking if the actual collider passes through the hit box by using OnTriggerStay.

    It seems like what I need is a way to update FinalIK between the animator and physics. I tried making SolverManager.UpdateSolver public, and called that in OnAnimatorIK, but then AimIK is no longer getting applied.

    EDIT:
    I think I found a solution! I disabled the AimIK component always, I changed
    SolverManager.UpdateSolver to be public, and I call it from a coroutine that waits for fixed update. With this order the coroutine seems to be called after the animator is updated, allowing FinalIK to work, and before OnTriggerStay events are called.
     
    Last edited: Dec 15, 2016
  33. montyfi

    montyfi

    Joined:
    Aug 3, 2012
    Posts:
    548
    @Partel-Lang Haven't worked with Final IK for a year and I am pleasantly surprised to see you have added VR support and examples! Thanks a lot! Pity there is no Vive examples, but I hope I will manage to make it work.
    I'm just starting with it (basic demo) and have a problem with a player height. In my case the avatar is higher then me, that causes bent knees even if avatar/me is standing. Could you give an advice how to correctly neglect player/avatar height difference?
     
  34. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    Hey,
    How did you set up the IKExecutionOrder, did you make AimIK solve first?

    You could also disable the Animator and the IK component, then call animator.Update(Time.deltaTime) in FixedUpdate and ik.solver.Update() right after that.

    Hey,
    There's no better solution than scaling your avatars to match your real height and proportions.
    But you could also just lift the tracking space object (not sure how its called in vive), but that could be a problem if you try to grab something from the ground.
    In Dead and Buried it is like that, all avatars and players are normalized, so if you are shorter, you are just lifted to the avatar's height. So far nobody has noticed haha, seems to work :)

    Best,
    Pärtel
     
  35. fup

    fup

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

    Can you elaborate on how you normalized the avatars and players? I'm playing around with VRIK and it's mostly awesome except I'm having scaling issues. Whatever I do I cannot get my hands and head in sync with the avatar's. How do I go about getting it right for different player proportions? Thanks for any advice! I really appreciate what you're doing. Amazing stuff.
     
  36. Tricktale

    Tricktale

    Joined:
    Jan 23, 2015
    Posts:
    42
    Hi, yes AimIK was first, followed by the three FABRIK components. I tried it with all different combinations.
     
  37. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    Hey,
    Basically we just all players up so that when they start/reset, the OVR rig will be placed so that the camera is at the height of the avatar's eyes. For all characters and players, thats all there is to it. If a kid played it, and you matched him up with the avatar, it would look like the kid was hanging in the air.

    We haven't done anything in terms of scaling the arms or matching proportions so far. Sometimes the arms of the avatar appear too short, but we just havent bothered with that :). But if you wished to do that, the best way to scale arms would be to multiply the localPositions of the forearm and hand bones. A value greater than 1 wound stretch the arms. You could check the distance from the head target to the hand target, compare it to the length of the arm and make a multiplier based on that.

    Hey,
    Any chance you could package that stuff and send it to me? Otherwise its just a lot of guessing and will take forever.

    Best,
    Pärtel
     
    eagle2990 likes this.
  38. fup

    fup

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

    Thanks for the reply.

    Just to confirm - When the scene starts the transform of the entire [CameraRig] is adjusted so that wherever the hmd camera is at scene start (with person wearing it) matches up with the avatar's eye position (when avatar is standing upright in something like the t-pose)?

    I have another question related to this. I followed the VRIK setup video here:



    but when i put on the hmd the camera displays as though I'm looking from the neck. How do I setup VRIK so that when i wear the hmd it displays as though I'm looking from the character's eye position? I've tried all kinds of things but I always get strange results. I must be missing something simple.

    Thanks for this advice. It's probably going to be useful!
     
  39. LacunaCorp

    LacunaCorp

    Joined:
    Feb 15, 2015
    Posts:
    147
    Hi everyone,

    I'm having an issue with the interaction system and could really use some help. I've been debugging all day to no avail.

    So, I'm using UMA, and building a procedural weapon system, which is working perfectly with Final IK apart from one detail- when I have the character unholster their weapon with the interaction system, they are not picking it up properly. It's a basic normal curve (0 at 0s, 1 at 0.2s, 0 at 0.4s) with a pick up event at 0.2s. However, the character's hand never aligns with this position.

    This is the result:



    And these are the settings:



    Any ideas?
     
  40. b14de1

    b14de1

    Joined:
    Jul 25, 2012
    Posts:
    12
    Hi @Partel-Lang, VRIK is great! As you keep adding features we all need do you have plans to hook VRIK up to a character controller, so the lower solvers can be weighed to animations for free roam movement and blended out when idle and moving about room scale? If not, do you have any thoughts on that?

    Thanks
     
  41. ParadoxSolutions

    ParadoxSolutions

    Joined:
    Jul 27, 2015
    Posts:
    325
    Hello @Partel-Lang,
    I noticed that on puppet master 0.5 that it now says: "Joint breaking, blowing up puppets piece by piece."
    Are there any videos demonstrating this?
    Thanks!
     
  42. Tricktale

    Tricktale

    Joined:
    Jan 23, 2015
    Posts:
    42
    Thanks Partel, I've sent you an email with the package.
     
  43. fup

    fup

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


    I'm experimenting with VRIK for a VR fighting game.


    When the player punches "through" a collider I'd like to see the VRIK character's fist stop at the collider, just like a real punch.


    Can you give me some guidance on what parts of FinalIK and/or PuppetMaster I need to use to make this happen? I have VRIK working with a character but I'm unsure how to make the fist stop at a collider and for the rest of his body to respond correctly.


    Thanks for any help.
     
  44. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    Hey,
    Yes, you got that first part right.

    About looking from the neck. Make sure that in the Editor the camera is where eyes are AND the head target is where head bone is. You probably moved the camera, which also moved the head target that is parented to it, so it made no difference.

    Hey,
    The gun is parented to one of the bones of the character when it is holstered, right?
    Could you tell me what happens if you pick up a gun that is not parented to anything, will it work right?

    Hey, I'll probably add a demo like that in the future, yes. But if you need to get started right away, I suggest you make a standard 8-direction strafing animator controller. Something like the "Grounded Strafe" state in the "Humanoid Third Person" controller. Make the "Forward" and "Right" parameters follow the direction from the root of the character to the HMD. Use that when touchpad or some other input is used for walking from A to B and procedural locomotion when the player is doing his stuff in roomscale. You can use ik.solver.locomotion.weight to blend between those 2 modes.

    Sure, here you go. Its just me pointing a mouse at the bones of a skeleton, blasting away its limbs.

    Thanks, I'll reply to that email ASAP.

    Cheers,
    Pärtel
     
    montyfi likes this.
  45. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    Hey,
    You could for example just spherecast from the HMD towards the hand target and put the hand target to HMD + Vector3.ClampMagnitude(hit.direction, hit.distance).
     
  46. fup

    fup

    Joined:
    Jan 18, 2016
    Posts:
    76
    Do you mean the VR HMD camera should be moved out of [CameraRig] and parented to the character rig? I'm doing the following at the moment but it just puts the camera at the chin of the player:

    upload_2016-12-19_13-41-17.png
     
  47. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,552
    No no.. I meant move the CameraRig so that the Camera (Eye) matches with the eyes of the avatar. But after you do that, make sure that the VRIK_HeadTarget still matches the position and rotation of the head bone of the avatar.
     
  48. fup

    fup

    Joined:
    Jan 18, 2016
    Posts:
    76
    Sorry Partel, I'm struggling to understand. Is it possible you could edit your VRIK(beta) demo scene so that the camera is positioned at the eyes? (currently, if i run that scene, following the setup in the video above, the camera is *always* at the chin).

    upload_2016-12-19_13-58-43.png
     
  49. LacunaCorp

    LacunaCorp

    Joined:
    Feb 15, 2015
    Posts:
    147
    Hi Partel, thanks for the reply. Not sure why I didn't think of this but to confirm, it does work as intended when the gun is a root object. How would you recommend I deal with this (I'm using UMA btw, with the correct biped limb orientation set)? Is there an offset which I can supply or would it be best to rebuild my own logic?

    Thanks,
    -Josh
     
  50. manuel_rochon

    manuel_rochon

    Joined:
    Nov 9, 2015
    Posts:
    23
    Hi Partel,
    I have a question about the pull controls in the FullBodyBipedIK solution.
    I was assuming that pull was similar to MotionBuilder, when it's OFF, it would not pull on the rest of the body when the effector for an arm is going further than the length of the arm, but it does not seem to be the case.
    Is there a way to remove pulling on the rest of the body for some body parts?
    Ideally I would like to be able to blend that effect in and out.

    Also, on VRIK, right now the orientation of the character seems completely given by the orientation of the hmd. Would be nice if you could provide a solution that let's us choose between the head and an average of the controllers, and a blend between the two solutions ideally. The goal is to try to deduct the player orientation mainly from the controllers, so that turning just the head, tries to keep the orientation steady. I know that doing a solver to try to find the player orientation solely based on the controllers is not easy, I've been trying to solve that for a while. But you seem good with these kinds of things, if you find a way that works, it would be awesome!

    Thanks!
    Manuel