Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

[RELEASED] VR Interaction Framework

Discussion in 'Assets and Asset Store' started by BeardedNinjaGames, Jan 28, 2020.

  1. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    890
    Do you realize The Matrix is more than 21 years old now?
    Feeling old yet? :D
     
    attaway and jashan like this.
  2. remiC3D

    remiC3D

    Joined:
    Dec 15, 2017
    Posts:
    26
    Hello everyone,

    I'm trying to use some external custom hand models as a replacement to the supplied example hands in BNG framework.
    But of course, these new models haven't got the same bone hierachy as BNG's/Oculus custom hands, so they can't be animated by BNG's current animator controller.
    They are however, already supplied with custom anim clips and basic poses such as "grip", "relaxed", "point index", and such.

    In your opinion, what would be the easiest method to replace the example hands with these, so they behave and animate the same way?

    I started to copy the hand animator controller in the demo scene, and to replace every anim clip it contains, with clips I am recreating or copying from the asset I bought, but this is quite a tedious work...
    Is there any faster method you can think of ? Maybe some kind of hand avatar reprojection or something (if that makes any sense) ?

    Thanks in advance for your answer !
     
  3. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    890
    To add to @remiC3D question, I would like to know if the VR interaction framework uses the standard humanoid rig from Unity for the hands or it's using a specific one.
    I plan to use Final IK from RootMotion and a full body character with an humanoid rig and I would like to use the characters own hands.
    I have read the manual but there is not much detail about using Final IK with your framework.
     
    Last edited: May 14, 2020
    attaway, sjm-tech and Schneider21 like this.
  4. Starmind01

    Starmind01

    Joined:
    May 23, 2019
    Posts:
    66
    I have made some progress in making zero g with the current setup, but I am not able to get the player's velocity. Am i doing this wrong?
    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. namespace BNG
    5. {
    6.     public class ZeroG : MonoBehaviour
    7.     {
    8.         OVRPlayerController pControl;
    9.         BNGPlayerController bngController;
    10.         CharacterController characterController;
    11.  
    12.         public bool GravityEnabled = true;
    13.  
    14.         private void Start()
    15.         {
    16.             pControl = GameObject.FindGameObjectWithTag("Player").GetComponentInChildren<OVRPlayerController>();
    17.             bngController = GameObject.FindGameObjectWithTag("Player").GetComponent<BNGPlayerController>();
    18.             characterController = GameObject.FindGameObjectWithTag("Player").GetComponentInChildren<CharacterController>();
    19.         }
    20.         void OnTriggerEnter(Collider other)
    21.         {
    22.             if (other.GetComponent<CharacterController>())
    23.             {
    24.                 ChangeGravity(false);
    25.                 pControl.ZeroG();
    26.                 float overallSpeed = characterController.velocity.magnitude;
    27.                 Vector3 moveDirection = transform.forward * overallSpeed;
    28.                 characterController.Move(moveDirection * Time.deltaTime);
    29.  
    30.             }
    31.             if (other.GetComponent<Rigidbody>())
    32.             {
    33.                 other.attachedRigidbody.useGravity = false;
    34.  
    35.             }
    36.         }
    37.         public void ChangeGravity(bool gravityOn)
    38.         {
    39.             GravityEnabled = gravityOn;
    40.             bngController.GravityEnabled = gravityOn;
    41.         }
    42.         void OnTriggerExit(Collider other)
    43.         {
    44.  
    45.             if (other.GetComponent<CharacterController>())
    46.             {
    47.                 ChangeGravity(true);
    48.                 pControl.NormalG();
    49.             }
    50.  
    51.             if (other.GetComponent<Rigidbody>())
    52.             {
    53.                 other.attachedRigidbody.useGravity = true;
    54.             }
    55.         }
    56.     }
    57. }
    58.  
    59.  
     
  5. Muskie

    Muskie

    Joined:
    Jan 21, 2017
    Posts:
    27
    Another quick question as i'm exploring things: how does object highlighting work, if at all? I can move my hand over an object with the HighlightGrabbable script on it, and I've added OutlineEffect to the Center Cam, but there's no visual change (even though HighlightGrabbable toggles the outline script on the mesh renderer object correctly). is this one of those "you can't do this in VR cause it's stereoscopic" things, or am I just doing this wrong?
     
  6. Starmind01

    Starmind01

    Joined:
    May 23, 2019
    Posts:
    66
    I think I have something, but the physics are all wrong.Can anyone tell me why there is a constant force no matter if the player tries to change the direction of the force?



    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using UnityEngine.EventSystems;
    5.  
    6. namespace BNG
    7. {
    8.     public class ZeroG : MonoBehaviour
    9.     {
    10.         OVRPlayerController pControl;
    11.         BNGPlayerController bngController;
    12.         CharacterController characterController;
    13.         public Rigidbody rb;
    14.         public float speed;
    15.         public bool GravityEnabled = true;
    16.         public Transform trackingSpace;
    17.         public OVRInput.Controller left;
    18.         public OVRInput.Controller right;
    19.  
    20.         private void Start()
    21.         {
    22.             pControl = GameObject.FindGameObjectWithTag("Player").GetComponentInChildren<OVRPlayerController>();
    23.             bngController = GameObject.FindGameObjectWithTag("Player").GetComponent<BNGPlayerController>();
    24.             characterController = GameObject.FindGameObjectWithTag("Player").GetComponentInChildren<CharacterController>();
    25.         }
    26.         void OnTriggerEnter(Collider other)
    27.         {
    28.             if (other.GetComponent<CharacterController>())
    29.             {
    30.                 ChangeGravity(false);
    31.                 pControl.ZeroG();
    32.                 rb.useGravity = false;
    33.                 rb.isKinematic = false;
    34.                 rb.velocity = trackingSpace.rotation * OVRInput.GetLocalControllerVelocity(left) * speed;
    35.  
    36.             }
    37.             if (other.GetComponent<Rigidbody>() && !other.GetComponent<CharacterController>())
    38.             {
    39.                 other.attachedRigidbody.useGravity = false;
    40.  
    41.             }
    42.         }
    43.         public void ChangeGravity(bool gravityOn)
    44.         {
    45.             GravityEnabled = gravityOn;
    46.             bngController.GravityEnabled = gravityOn;
    47.         }
    48.         void OnTriggerExit(Collider other)
    49.         {
    50.  
    51.             if (other.GetComponent<CharacterController>())
    52.             {
    53.                 ChangeGravity(true);
    54.                 pControl.NormalG();
    55.                 rb.useGravity = true;
    56.                 rb.isKinematic = true;
    57.             }
    58.  
    59.             if (other.GetComponent<Rigidbody>() && !other.GetComponent<CharacterController>())
    60.             {
    61.                 other.attachedRigidbody.useGravity = true;
    62.             }
    63.         }
    64.     }
    65. }
    66.  
    67.  
     
  7. remiC3D

    remiC3D

    Joined:
    Dec 15, 2017
    Posts:
    26
    I'm not sure what's happening here, but a common issue I had when trying to give te player a non-kinematic rigidbody in FPS or VR games is that it tries to solve physics collisions by displacing the player (out of collision), and then it keeps the velocity that this brutal change of position has engendered.
    In other words, maybe (just maybe) that when the player releases the pole, the capsule collider (I guess there is one?) around the player collides with the pole, and unity then gives the payer a new position to solve this collision. This change of position sends the player upwards, leftwards, rightwards etc... depending of what seem to be the best direction to solve this collision. And since there are no other forces around, he will continue moving in a straight line, at a constant speed, until he leaves the zero-g zone.

    But again, that's just a hypothesis.

    And if it was the case, I have no perfect solution for this, appart from stopping using rigidbodies on the player and find other ways to simulate gravity (or zero-gravity in your case).

    On a side note, being able to push oneself away from the ladder and then fall according to physics is a requested feature on VRIF Discord server, and some guys here (maybe BNG too) said they were working on a rigidbody solution that would allow this. Maybe you should ask them there...
     
  8. Muskie

    Muskie

    Joined:
    Jan 21, 2017
    Posts:
    27
    Hey, so I did a bit of futzing about, and implemented some basic emissive-based Object highlighting.




    @BeardedNinjaGames, let me know if you want the code. I don't want to share it here because it's just a slight modification of GrabbableHighlightMaterial, and y'know, paid asset and all! Mind you, it's pretty simple, I just stripped out the materical picker stuff and just had it toggle the Emission Keyword on the shader and set a color. (I'm sure much more can be done here, but it's simple and works with the URP lit shader so it's all I need for now lol)
     
  9. toddkc

    toddkc

    Joined:
    Nov 20, 2016
    Posts:
    89
    There's a channel for code sharing on the discord, if you are also on there or would like to join.
     
  10. Chris-Wenzlick-bencin

    Chris-Wenzlick-bencin

    Joined:
    Mar 3, 2020
    Posts:
    2
    Hi, everyone! I've got the demo scene running on the Valve Index, but the hand models are offset from the controller orientation by 90 degrees such that the in-game hands point upward when they should be pointing forward. Does anyone have a recommendation on how to fix this? Any advice would be greatly appreciated!
     
  11. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    890
    My guess is no one has a Valve Index to test this, so you're leading the way.
     
  12. Chris-Wenzlick-bencin

    Chris-Wenzlick-bencin

    Joined:
    Mar 3, 2020
    Posts:
    2
    Yeah, I was afraid that might be the case. Still, no harm in checking, right?
     
    atomicjoe likes this.
  13. Muskie

    Muskie

    Joined:
    Jan 21, 2017
    Posts:
    27
    ...there's a discord? o.o
     
  14. toddkc

    toddkc

    Joined:
    Nov 20, 2016
    Posts:
    89
  15. G_Trex

    G_Trex

    Joined:
    Apr 20, 2013
    Posts:
    60
    Sent an email about this, but no response yet, so I might as well ask here.

    "I've purchased your Unity VR framework asset recently and am really having a lot of fun with it.

    I do have a question though : is there an easy way to change the player rotation to a firm click rather than a light tap. I found the setting for changing teleport (Control type > Thumbstick down), but I can't find the equivalent for the rotation."
     
  16. toddkc

    toddkc

    Joined:
    Nov 20, 2016
    Posts:
    89
    I believe the rotation code is the original oculus code in OVRPlayerController. If I understand you correctly you would want to change the code there from checking for "SecondaryThumbstickLeft", which is any left movement of the stick, and make it a check for the float being within a range, or even -1 if that works. You say "click" like a button click, which isn't how rotation works, so I assume I'm just misunderstanding. If not let me know. Also, you'll probably get better assistance if you join the discord. Good luck!
     
    BeardedNinjaGames likes this.
  17. G_Trex

    G_Trex

    Joined:
    Apr 20, 2013
    Posts:
    60
    Thanks for responding. I'll try the discord and see what happens.

    Yeah, I also think I might not be explaining this too well. The framework has the ability to turn the direction the player is facing by 90 degrees when you tap the right thumbstick. However, it is very sensitive and i keep accidentally changing direction whenever my thumb hovers over the area. It'd like to only turn the player when there's a firm click instead.
     
  18. BeardedNinjaGames

    BeardedNinjaGames

    Joined:
    Jan 26, 2020
    Posts:
    125
    Sorry, I think your email fell through the cracks. I'm usually pretty good about responding :)

    Toddkc is correct that the rotation is through the OVRPlayerController. It looks like they are just using "OVRInput.Button.SecondaryThumbstickLeft" to determine whether or not to do the snap, so there is not option to control how large the value needs to be in order to be considered a valid input. I would recommend just disabling the SnapRotation on the OVRPlayerController and write a script to handle it yourself. Grab the input from InputBridge (InputBridge.Instance.LeftThumbstickAxis.x) and check that against a "DeadZone" value. Try something small like 0.001f and work you way up from there. To turn the player, just rotate the CharacterController's local eueler Y angle by the amount of degrees you want to turn. Feel free to hit up the Discord if you need more help on this :)

    Ah, that's a great idea for simple object highlighting. Swing by the Discord (there is a #code-sharing section for verified members) if you'd like to share that with the community (I may end up whipping up something similar for example purposes). I have a material swapping example included on the soccer ball, but I think an emissive property is a good solution for performance as well.
     
  19. BeardedNinjaGames

    BeardedNinjaGames

    Joined:
    Jan 26, 2020
    Posts:
    125
    I just wanted to add that there is a component called "HandController" on the "LeftController" / "RightController" objects. This is what set the animation properties on the Animators, depending on controller state, if an object is grabbed, or if a custom hand pose is selected. I think it's pretty straightforward in how the animator values are set, and you can use this as a template for your own controller, if you decide to use one that came with another asset or write your own.
     
  20. G_Trex

    G_Trex

    Joined:
    Apr 20, 2013
    Posts:
    60
    Thanks! (Don't worry about the email. I'm sure it just slid into your spam folder or something similar).

    I'll follow your advice of just creating my own script. Seems like it should be simple enough.
     
  21. amit-chai

    amit-chai

    Joined:
    Jul 2, 2012
    Posts:
    61
    Hi! I am using your great asset and having an issue with Unity crashing after build, and occasionally even just while editing. I have tried to create a new project and it happened again... using Unity 2019.3.7. Please can you help?
     

    Attached Files:

  22. BeardedNinjaGames

    BeardedNinjaGames

    Joined:
    Jan 26, 2020
    Posts:
    125
    Unfortunately I haven't seen that before. From the error log it looks like the Oculus plugin (perhaps the audio spatializer?) is crashing around ovrp_IsCameraDeviceColorFrameAvailable. A google search doesn't turn much up for that. Perhaps try updating your graphics card drivers?

    There is also a new Oculus update out for both desktop and Oculus devices (Rift / Quest). If you're using an Oculus device you may want to check that your software versions match between your headset / desktop software.
     
  23. amit-chai

    amit-chai

    Joined:
    Jul 2, 2012
    Posts:
    61
    Thanks for your reply, I've updated everything. Still couldn't fix the problem... I tried also with Unity 2019.3.14, still the same. thing is without the asset, I'm using Oculus many times and it didn't happen. I am also using Pun2, but I don't think it's related. do you have an install sequence for the XR maybe cause i don't know what I'm doing wrong.
     
  24. Eyehawk

    Eyehawk

    Joined:
    Dec 24, 2012
    Posts:
    275
    Hi there! To echo many of the other users here, I picked up the asset recently, and it is amazing!

    I was just wondering if there is a good way of changing the grab so that the user will hold on to the grabbable object rather than releasing it when the trigger is released? I tried adding a script on the grabber to set ForceGrab on Grabber.cs to true if the grabbed object had a particular tag.

    However, this sometimes would bug out on release, e.g. I wasn't able to pick it up again. It could be that I'm doing something dumb, so would love to find a better solution.
     
  25. Muskie

    Muskie

    Joined:
    Jan 21, 2017
    Posts:
    27
    just set the GrabType in the Grabbable component from Hold Down to Toggle?
     
  26. Eyehawk

    Eyehawk

    Joined:
    Dec 24, 2012
    Posts:
    275
    Ah man, I can't believe I missed that :) Thanks for the help Muskie!
     
    BeardedNinjaGames likes this.
  27. MachoBrizzin

    MachoBrizzin

    Joined:
    Jul 10, 2013
    Posts:
    23
    How well does this work with WMR? Does it have native support or is it only through Steam VR?
     
  28. adamz

    adamz

    Joined:
    Jul 18, 2007
    Posts:
    1,032
    @BeardedNinjaGames

    Hi, you mentioned that this now works with Unity XR. Is it possible to not have to use the Oculus Integration package when installing, or is that still required? Thanks.
     
  29. BeardedNinjaGames

    BeardedNinjaGames

    Joined:
    Jan 26, 2020
    Posts:
    125
    Some members on Discord have reported that the controller models are offset by 45 degrees. That could be an easy fix, but unfortunately I'm unable to test on one, so I'm considering this a "not yet supported" device. You could try out the PC Demo and see how the issue presents itself there.


    The Oculus Integration Package is required as the demo and some of the scripts reference the OVRPlayerController, OVRManager, and some of the hand models / utilities used for Hand Tracking on the Quest. I am working on making that optional (in case you want Hand Tracking, models, spatial audio, avatars, etc.), but for now it is a requirement.

    A quick update with regards UnityXR - I've made some updates to the input provider (InputBridge.cs) and in the future XRInput will now be the default input source. There is some additional logic in place to get Trackpad / Joystick controls mapped properly for the Valve Index since it has both trackpads and a joystick. Thanks to the (super awesome) community we've been able to test the framework on the new (preview) SteamVR UnityXR plugin. This brings, "Explicit support for: HTC Vive, HTC Vive Cosmos, HTC Vive Tracker, Oculus Touch, Windows Mixed Reality, Logitech VR Ink, and Valve Index". This takes a bit of work to get going andI believe is only considered a preview package, so I'm not recommending it just yet. However, it's looking like supporting a multitude of devices should get much easier in the near future. Well, unless you need skeletal input, in which case SteamVR is a requirement and incompatible with that api.
     
    Mark_01 likes this.
  30. adamz

    adamz

    Joined:
    Jul 18, 2007
    Posts:
    1,032
    @BeardedNinjaGames

    Thanks for overview. Do you know if it's possible to to assign the OVRPlayerController to Floor level, but override that and set a height for the OVRCameraRig? Using the XR Rig makes it easy since they include a Camera Y Offset.

    I'm trying to create a seated game in which the players eye level always starts at 1.75 on the Y axis.

    Thanks.
     
    atomicjoe likes this.
  31. ccoutinho

    ccoutinho

    Joined:
    Dec 24, 2016
    Posts:
    20
    Hi
    Just saw 2 of the tutorial videos you posted on YouTube. Great job. Explained very well.
    Hoping to see more videos on how to use other aspects of VRIF especially one on how to setup a new weapon from scratch.
     
    BeardedNinjaGames likes this.
  32. MattForeman-PixelFarm

    MattForeman-PixelFarm

    Joined:
    Dec 19, 2019
    Posts:
    15
    @BeardedNinjaGames There is a problem with the "Kinematic" grab physics setting for grabbable objects. The object is parented to your hand. This means that friction is not properly applied. This can be observed when stacking grabbable objects. If you move the bottom object, the other objects don't move along with it.

    This is problematic for me because I am implementing VRIF alongside Normcore Unity networking and I need to use kinematic mode on grabbable objects in order to sync/replicate them properly. Attached is a conversation I had with Max, the developer of Normcore, about the subject. Could you please fix this?

    EDIT: I just noticed the option to turn off parenting, but even when the object is not parented to the hand, the behavior is exactly the same.

    VRIF_Issue_Kinematic.jpg
     
    Last edited: Jun 5, 2020
  33. amit-chai

    amit-chai

    Joined:
    Jul 2, 2012
    Posts:
    61
    Hello again!
    I wonder if or when VR interaction will be fit to work with WebXR ?
     
  34. BeardedNinjaGames

    BeardedNinjaGames

    Joined:
    Jan 26, 2020
    Posts:
    125
    Hi there. There is a setting called "Parent to Hands" you can disable which will cause the rigidbody to remain unparented : parenting.png

    You will also need to update how the transform is moved using MovePosition instead of .position as Max mentioned. I'll fix this in the new update, but for now you can just change the line around 578 to :

    Code (CSharp):
    1. else if (GrabMechanic == GrabType.Precise) {
    2.     rigid.MovePosition(grabTransform.position);
    3.     rigid.MoveRotation(grabTransform.rotation);
    4. }
    And that will get you the friction you desire :) You'll want to play with mass and physical material / friction properties as well. Though, I'd recommend using the physical joints option instead of kinematic. The physical joint option was designed to handle collisions better. It handles when to parent / unparent from the hand to prevent jitter and can be affected by outside forces.

    You mentioned needing this kinematic due to being multiplayer, but you should still be able to still use physical joints in that case. You would just want the owner of the object to be using the physical joints, and then the clients / observers set the object to kinematic and receive position / rotation updates from the owner.

    Hello! Unfortunately I think it would be too difficult for me to try to support WebXR along with mobile / pcvr. WebXR does look interesting, though.
     
    MattForeman-PixelFarm likes this.
  35. amit-chai

    amit-chai

    Joined:
    Jul 2, 2012
    Posts:
    61
    Thanks for replying, I assumed its too much and not just a couple of script changes...
     
  36. MattForeman-PixelFarm

    MattForeman-PixelFarm

    Joined:
    Dec 19, 2019
    Posts:
    15
    @BeardedNinjaGames Thanks for the detailed reply! That's very useful and the code modification works! I'm assuming the code snippet you provided would need to be implemented the same way in other parts of that script (for grab modes besides GrabType.Precise) in order to completely fix it?

    Side note: It appears that Normcore 2.0 will fix the problem of using physical joints. But I'm glad you are fixing things for kinematic mode on the next update, since some use cases would need that to work properly. :)
     
  37. MattForeman-PixelFarm

    MattForeman-PixelFarm

    Joined:
    Dec 19, 2019
    Posts:
    15
    @BeardedNinjaGames I have a rotating rigidbody platform in my scene (rotating via Rigidbody.MoveRotation). Any grabbable object I set on the platform moves as it should, but the player remains in place. How could I make things so that a player on top of this platform rotates properly with it?
     
  38. Kagyu

    Kagyu

    Joined:
    Mar 5, 2016
    Posts:
    83
    Hi BearededNinjaGames,
    I installed the demo to my Quest via the sidequest and I enjoyed it.
    I found there you had teleportation, stick locomotion, spider web and hand jet as the locomotion system for your framework. Are those all of locomotion systems in your framework at this moment? I also checked the documentation of your framework but could not find any description regarding locomotion systems.
    I need arm swing locomotion and lean over system. If your framework does not include those I will implement them by myself but I need to know a little bit more about your character controller to know if that is possible for me to make it happen.
    Could you please provide me a little more information for me to understand how your character controller work if possible?
     
  39. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    890
    I'm also interested in more details about the locomotion system and the character controller it uses.
    Are you just using the ones from the Oculus Integration package, are they based on them or are they completely custom?
     
  40. BeardedNinjaGames

    BeardedNinjaGames

    Joined:
    Jan 26, 2020
    Posts:
    125
    There are a few ways to get "moving platform support". You can try parenting the CharacterController to the platform, or calculate the difference the platform has moved and add that to the player. For RigidBody characters this gets a little easier - just make sure your platform / character have maximum friction applied. I plan on having an additional character movement type in a future update, but it's not ready for 1.4.

    Hi there. Yes, the methods of locomotion are currently teleport, smooth locomotion, hand jets, and a grapple gun. There is also climbing which is a locomotion of sorts. The smooth locomotion (and snap turning) just piggyback off of the OVRPlayerController from the Oculus Integration package. Teleportation is separate and uses simulated physics to create an arc (can also make this a straight line) to decide where to teleport. The hand jets, climbing, and grapple gun all use the CharacterController by using the .Move() function. There is also a script that will help resize the character capsule depending on where the hmd is. The CharacterController is nice in that it can handle precise movements well (which is great for VR / preventing motion sickness), but it doesn't handle things like velocity or certain physics interactions (like moving platforms) very well. RigidBody characters are another option (kinematic and non-kinematic), but there are downsides there as well. There are some users on the Discord that have been experimenting with a RigidBody character if you're interesting in finding more about their experiencces.
     
  41. Kagyu

    Kagyu

    Joined:
    Mar 5, 2016
    Posts:
    83
    Thank you so much for quick and precise reply. I get the grasp of your framework' character controller.
    There is one more question. Could you tell me how do you determine the center of character controller's collider position? In the demo, I felt like it stayed right under the center of HMD and there was no "leaning over" compensation mechanism. Was I correct?
     
  42. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    890
    BUMP @BeardedNinjaGames
     
  43. MattForeman-PixelFarm

    MattForeman-PixelFarm

    Joined:
    Dec 19, 2019
    Posts:
    15
    @BeardedNinjaGames Have you considered creating a custom character controller that does not rely on the Oculus framework? This would certainly be beneficial in terms of making your framework accessible across as many platforms as possible.
     
  44. BeardedNinjaGames

    BeardedNinjaGames

    Joined:
    Jan 26, 2020
    Posts:
    125
    The hand models use the Oculus rig found here : https://developer.oculus.com/downloads/package/oculus-hand-models/
    But you can certainly use your own rig / animations.

    Definitely :) There is a new custom character controller coming in the next update (1.4). So no more OVRPlayerController. I've also added jumping, air control, and some basic moving platform support. It still uses the Unity CharacterController for the movement, but it's much more streamlined and should make it easier to customize / replace if you want to. Working on getting all of that ready for submission now.
     
    Mark_01, CRYWOLF86 and atomicjoe like this.
  45. CRYWOLF86

    CRYWOLF86

    Joined:
    Jul 23, 2016
    Posts:
    16
    How soon will 2019.4 be supported?
     
  46. Starmind01

    Starmind01

    Joined:
    May 23, 2019
    Posts:
    66
    Zero g with new controller?
     
  47. MarioRuiz

    MarioRuiz

    Joined:
    Nov 7, 2009
    Posts:
    160
    @BeardedNinjaGames awesome stuff here, can't believe I hadn't seen this package, are you going to change to XR inputs on this next release?
     
    atomicjoe likes this.
  48. BeardedNinjaGames

    BeardedNinjaGames

    Joined:
    Jan 26, 2020
    Posts:
    125
    Was able to test this on 2019.4 last night and get it going without any major issues. There was a conflict with a package manager version, but I should be able to fix that for the next update.

    You can disable gravity, as well as enable "Air Control" which allows movement even if you're not grounded. But no simulated velocity / you won't be floating around in space like you would in something like Echo Arena.

    Sure am :)

    I posted v1.4 up on Discord for community testing / feedback and so far everything is looking good. Will be updating the asset store shortly and will post some more detailed info here on what's changed in this next version.
     
  49. Remiel

    Remiel

    Joined:
    Oct 17, 2012
    Posts:
    103
    Does the asset support picking up hand pose/finger positions from the sensors on the controllers? I remember when I used oculus waaay back, the controllers could tell what fingers were gripping the controllers and which were pointed. The index controllers also have finger sensors and can tell the positions for each of the five fingers.

    I see you are using Unity XR. Since Unity XR doesn't support index currently and there are issues on that front that seem like they won't be solved anytime soon, is the asset extendible enough for me to edit it to pick up the input from another source, eg. SteamVR Unity plugin?
     
    nate_reed likes this.
  50. nima8

    nima8

    Joined:
    Nov 28, 2019
    Posts:
    3
    Hi,
    The UI Example doesn't work with hand tracking. Any idea how to fix this?
     
unityunity