Search Unity

[RELEASED] VR Throw Lab - For better throwing in VR

Discussion in 'Assets and Asset Store' started by check_marc, Apr 28, 2020.

  1. check_marc

    check_marc

    Joined:
    Jan 26, 2013
    Posts:
    55
    CardImage_420x280.png

    VR Throw Lab in the Asset Store



    Getting throwing mechanics to feel just right in VR can be tricky, especially if you’re asking the user to throw far and/or accurately. What feels right to the user is going to depend on tasks you’re asking them to perform, the hardware they’re physically holding, and their expectation of how thrown objects should behave in your virtual world.

    VR Throw Lab is a collection of tools that can be used to create the throwing mechanics that are right for your VR game and maintain a consistent experience across platforms.

    The package includes a playable Lab scene that can be used to test values without needing to take off the headset.

    Throw Lab is meant to be as platform-agnostic as possible, but some scripting is required to hook it into existing interaction systems. If you're using one of the supported SDKs (SteamVR, Oculus Integration, and Unity XR Toolkit) these connective scripts are included in the package. Otherwise, you will need to make sure the Throw Lab components have access to OnAttach and OnDetach events, and are not competing with any existing components to set a released object's velocity.

    If you have any difficulty integrating Throw Lab into your project or using the lab interface, feel free to reply to this thread or reach out to marc@cloudfinegames.com
     
    Last edited: Apr 28, 2020
    mgear likes this.
  2. kenlem1

    kenlem1

    Joined:
    Mar 20, 2014
    Posts:
    40
    I bought this today and it have to complement you. Throwing is VR is something almost everyone gets wrong. You're done a really nice job of explaining the problems and the solutions. Can't wait to incorporate this into my latest project.

    I was using the Oculus Grabber and Grabable scripts and, while they work. they just aren't "right". The release velocity and angular velocity are based on the center point of your controller for the last sample. I don't even think the rotations are transformed to the correct local space of the thrown object. Also, the release force gets applied to the center of mass of an object which isn't close to right except on tiny objects.

    Congrats on a well organized, useful asset.
     
    Last edited: May 29, 2020
  3. sipon

    sipon

    Joined:
    Feb 8, 2009
    Posts:
    143
    Do you have a VR demo build ? (Could be nice to publish your demo on sidequest too!)
     
  4. rmaroy

    rmaroy

    Joined:
    Jul 3, 2017
    Posts:
    2
    We were extremely disapointed with throw in VR (in "Super Hot" for example, some scene are extremely difficult when relying on throw toward distant ennemies). The imprecision is high enough to prevent from throwing a shuriken in another way than pushing your hand forward. This weakness, strongly worsen with strong throw, seemed to us to prevent all skill-based games based on throw (basketball, handball, petanque, grenades launching, hobbit stone throw.

    We have thus developed a throw method called "ExactThrow" (I'm a international level scientist for 20 years), that enables the headset and devices to throw object "exactly" as the player did, and as he intended to. Thus, it is a fully "skill-based" methodology, with no hypothesis on what the player intends to do (eye focus, headset direction). You can thus aim at something you directly look at, even a position on the ground without target. It will be released first in a game ("Dice sports") within few months.

    I can't wait to test your VR throw lab. Without skill-based games, VR risks to be limited to adventure games... It would be a pity. Player can get blasé by the immersive view, but none can be with sport pleasures like throwing object with skill.
     
  5. NetEdge

    NetEdge

    Joined:
    Jun 3, 2020
    Posts:
    2
    Very cool to play with. Even with target lock off, I felt like this was one of the smoothest implementations of throwing.

    I will note that I had to modify things to work properly. I'm using a Quest 2 and Unity 2019.4.14f. First off, when I installed it, it changed my input settings and installed a bunch of other packages. I think this is because of the SteamVR and UnityXR examples. I removed all the packages and those directories and rolled back my project settings (never could find where to set the input back to the non-new input system.) I think if I'd unchecked those folders when importing the asset, I would have been fine.

    Second, there was a showstopping error for me. I had to change ThrowHandle.cs to this:
            private void LateUpdate()
    {
    if (_rootMotionTransform)
    {
    _rootVelocity = (_rootMotionTransform.position - _previousRootPosition) / Time.deltaTime;
    _previousRootPosition = _rootMotionTransform.position;
    }
    }


    Otherwise, it would break before OnAttach fired later (which set _rootMotionTransform) and nothing would work. But with this fix it works.
     
  6. VagabondOfHell

    VagabondOfHell

    Joined:
    Sep 17, 2013
    Posts:
    15
    @check_marc Great job on the asset! One suggestion I have is to ease the profile selection by having the configuration set defined in one scriptable object. So instead of dragging 5 profiles you only need to drag and configure the one.
    upload_2021-6-5_0-7-40.png

    Thank you for the great asset!
     
  7. IF_test

    IF_test

    Joined:
    Feb 27, 2017
    Posts:
    13
    Is it compatible with AutoHand Plugin? how can i use this with AutoHand plugin. Thanks in Advance
     
  8. VR_Rookie

    VR_Rookie

    Joined:
    Nov 24, 2012
    Posts:
    35

    I would also like to know this...please respond
     
  9. Iottech

    Iottech

    Joined:
    May 12, 2022
    Posts:
    1
    Hello, VR Throw, I bought your asset. But it doesn't work in XR Toolkit.
    There is no error in the log like any other error.
    Please, can you update the last XR Toolkit. Or can you tell me how I can solve it?

    I tried adding XROrigin myself and tried but it had no effect.

    upload_2022-9-12_16-32-27.png