Announcement

Collapse
No announcement yet.

VR Expansion Plugin

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    Originally posted by Nostrildumbass View Post
    I'm really at a loss here and hoping someone can help me out. I had gripping working through my own interface (I kept it in place and confirmed it still works if I switch back to using it) but I'm trying to switch to using this plugin.

    I set up my character blueprint to execute the Grip Object by Interface node (I confirmed the object I'm grabbing is correctly being passed in as well as the motion controller), but my weapon isn't gripping. On my weapon blueprint (a simple AK47) I placed a grippable capsule at the weapon grip and set the grip logic script to GS Gun Tools. What else is there that's needed for the gripping to work? Nothing happens when I try to grip it but I don't get any errors or anything to help identify what the problem is. I know how to debug blueprints decently well but not C++, so I can't figure out what happens once the Grip Object by Interface node is executed (I do see it being executed in the blueprint debugger). I set up a Grip event on my weapon and I don't see THAT being executed, so something must be wrong at the Grip Object by Interface call.

    Attached a screenshot to show how I'm calling Grip Object by Interface. The boolean checks are just to check whether it's the left or right hand that is grabbing the object (I've simplified this since the time of this post, now I just have a single execute node for Grip Object by Interface)
    My plugin supports gripping both actors AND components with various reasons to do one or the other. How you are trying to grip there is to pass in an actor without the interface, and the world transform of a component with the interface. The node is failing out because the object you are sending in to grip doesn't have the interface on it.

    In that use case your actual actor would have to implement the interface to grip it with that node.

    I did realize though that I forgot to put console debug prints in for that specific node to warn that the passed in object is missing the interface, i'll add that for clarities sake in the future.

    The easiest way for you to fix this by the way would be to reparent the base class of your AK (as far back as your inheritance tree goes) to a GrippableStaticMeshActor, then all of the guns down the branch from there would be grippables by default.

    Also note, that although the gun tools will function by default, actions like secondary gripping the front of the gun still have to be called by you, I do not automate base controls like that as it would be too limiting for most users. The very latest example template now has gun tools on the example gun and it shows how to use the recoil system with it.
    Last edited by mordentral; 10-13-2019, 08:44 PM.

    Leave a comment:


  • replied
    I'm really at a loss here and hoping someone can help me out. I had gripping working through my own interface (I kept it in place and confirmed it still works if I switch back to using it) but I'm trying to switch to using this plugin.

    I set up my character blueprint to execute the Grip Object by Interface node (I confirmed the object I'm grabbing is correctly being passed in as well as the motion controller), but my weapon isn't gripping. On my weapon blueprint (a simple AK47) I placed a grippable capsule at the weapon grip and set the grip logic script to GS Gun Tools. What else is there that's needed for the gripping to work? Nothing happens when I try to grip it but I don't get any errors or anything to help identify what the problem is. I know how to debug blueprints decently well but not C++, so I can't figure out what happens once the Grip Object by Interface node is executed (I do see it being executed in the blueprint debugger). I set up a Grip event on my weapon and I don't see THAT being executed, so something must be wrong at the Grip Object by Interface call.

    Attached a screenshot to show how I'm calling Grip Object by Interface. The boolean checks are just to check whether it's the left or right hand that is grabbing the object (I've simplified this since the time of this post, now I just have a single execute node for Grip Object by Interface)
    Attached Files
    Last edited by Nostrildumbass; 10-13-2019, 01:16 PM.

    Leave a comment:


  • replied
    Originally posted by Decriment View Post
    mordentral I guess I should have also mentioned that I'm trying to get something figured out for VR and nonVR setups. After thinking about it more it seems like the animation blueprints could be used for the VR and nonVR cases. I really liked your FPS_VivePawnCharacter blueprint because it was a nonVR character that emulated a VR character. In the same spirit, the keyboard/mouse/gamepad controls could control the positioning of the HMD/controllers. That would then allow the same IK animation blueprint system to be used for the nonVR case.

    I'm far from mastering UE4. I might be a bit off, but those are my ideas so far. Let me know what you think if you have any thoughts.

    I found a pretty neat IK project on Github. I learned quite a bit about the IK animation blueprints. The project seems abandoned, but there's a pull request for some 4.2x compile errors. I got it working with 4.23 pretty easily. All you other people might be interested.

    https://github.com/hacoo/rtik
    @Decriment

    Leave a comment:


  • replied
    Pushed a new commit live today, some parts of it (melee script) is still unfinished but I wanted to get a lot of the core physics fixes in ASAP before going back and finishing it.

    https://vreue4.com/path-notes-4-23?s...e-work-10-7-19

    Leave a comment:


  • replied
    Originally posted by Curs0 View Post

    nope, joystick X and Y axis
    unreal mappings only manage vector1 parameters and have separate events (axys X or Y) while the latest steam vr input dashboard only allows configuring vector2 parameters for joystick position.
    steamvr input plugin for unreal has a function that merges unreal parameters called with anyname_X and anyname_Y in one merged parameter anyname.
    Following a section from the generated manifest:
    "/actions/main/in/anyname_X,anyname_Y X Y_axis2d": "anyname"

    that said I have another question: what's the easiest way to just get fingers curls without messing up with steam vr input (in other words keeping old legacy controls)? I just want to get finger curls independently from player's platform (oculu, steam, ...)

    as usual, thanks in advance!
    I believe that the old legacy KnucklesCurl inputs are still functional, its not cross platform though, it is SteamVR only (which can be rift obviously if they actually pass out curl values which I doubt they do).

    I haven't tested them in a long time though as I use the open input stack.



    As for the axis merging, pretty sure the default beta input does that already as well.

    Leave a comment:


  • replied
    Originally posted by mordentral View Post

    Are you just looking for a touch event?
    nope, joystick X and Y axis
    unreal mappings only manage vector1 parameters and have separate events (axys X or Y) while the latest steam vr input dashboard only allows configuring vector2 parameters for joystick position.
    steamvr input plugin for unreal has a function that merges unreal parameters called with anyname_X and anyname_Y in one merged parameter anyname.
    Following a section from the generated manifest:
    "/actions/main/in/anyname_X,anyname_Y X Y_axis2d": "anyname"

    that said I have another question: what's the easiest way to just get fingers curls without messing up with steam vr input (in other words keeping old legacy controls)? I just want to get finger curls independently from player's platform (oculu, steam, ...)

    as usual, thanks in advance!

    Leave a comment:


  • replied
    Hola mordentral Tengo problemas para nativizar el "personaje Vive_Pawn". Tengo la última versión del complemento, estoy compilando para Quest. Todo se compila bien sin nativizar el personaje. Pero al nativizar obtengo estos errores:


    /Plugins/VRExpansionPlugin/OpenVRExpansionPlugin/Source/OpenVRExpansionPlugin/Public/OpenVRExpansionFunctionLibrary.h(107,22): error: uso del identificador no declarado 'vr'
    UATHelper: Empaquetado (VR (Android) (VR) = vr :: k_ulOverlayHandleInvalid;
    UATHelper: Empaquetado (Android (ASTC)): ^
    UATHelper: Empaquetado (Android (ASTC)): /Plugins/VRExpansionPlugin/OpenVRExpansionPlugin/Source/OpenVRExpansionPlugin/Public/OpenVRExpansionFunctionLibrary.h(111,30): error: uso de 'undecla' vr '
    UATHelper: Empaquetado (Android (ASTC)): return VRKeyboardHandle! = Vr :: k_ulOverlayHandleInvalid;
    UATHelper: Empaquetado (Android (ASTC)): ^
    UATHelper: Empaquetado (Android (ASTC)): /Plugins/VRExpansionPlugin/OpenVRExpansionPlugin/Source/OpenVRExpansionPlugin/Public/OpenVRExpansionFunctionLibrary.h(136,19): error: uso de la biblioteca. INVALID_TRACKED_CAMERA_HANDLE '
    UATHelper: Empaquetado (Android (ASTC)): pCameraHandle = INVALID_TRACKED_CAMERA_HANDLE;
    UATHelper: Empaquetado (Android (ASTC)): ^
    UATHelper: Empaquetado (Android (ASTC)): /Plugins/VRExpansionPlugin/OpenVRExpansionPlugin/Source/OpenVRExpansionPlugin/Public/OpenVRExpansionFunctionLibrary.h(140,27): error: uso de ofibib. INVALID_TRACKED_CAMERA_HANDLE '
    UATHelper: Empaquetado (Android (ASTC)): return pCameraHandle! = INVALID_TRACKED_CAMERA_HANDLE;
    UATHelper: Empaquetado (Android (ASTC)): ^
    UATHelper: Empaquetado (Android (ASTC)): /Plugins/VRExpansionPlugin/OpenVRExpansionPlugin/Source/OpenVRExpansionPlugin/Public/OpenVRExpansionFunctionLibrary.h(194,8): identificador: uso de underse vr '
    UATHelper: Empaquetado (Android (ASTC)): estático vr :: ETrackedDeviceProperty VREnumToString (const FString & enumName, valor
    uint8 ) UATHelper: Empaquetado (Android (ASTC)): ^
    UATHelper: Empaquetado (Android (ASTC)): / Plugins / VRExpansionPlugin / OpenVRExpansionPlugin / Source / OpenVRExpansionPlugin / Public / OpenVRExpansionFunctionLibrary.h (199,10): error: uso del identificador no declarado 'vr'
    UATHelper: Empaquetado (Android (ASTC)): return vr :: ETrackedDeviceProperty :: Prop_Invalid;
    UATHelper: Empaquetado (Android (ASTC)): ^
    UATHelper: Empaquetado (Android (ASTC)): /Plugins/VRExpansionPlugin/OpenVRExpansionPlugin/Source/OpenVRExpansionPlugin/Public/OpenVRExpansionFunctionLibrary.h(204,10): error: uso de underse vr '
    UATHelper: Empaquetado (Android (ASTC)): return vr :: ETrackedDeviceProperty :: Prop_Invalid;
    UATHelper: Empaquetado (Android (ASTC)): ^
    UATHelper: Empaquetado (Android (ASTC)): /Plugins/VRExpansionPlugin/OpenVRExpansionPlugin/Source/OpenVRExpansionPlugin/Public/OpenVRExpansionFunctionLibrary.h(206,21): error: uso de la biblioteca. vr '
    UATHelper: Empaquetado (Android (ASTC)): return static_cast <vr :: ETrackedDeviceProperty> (FCString :: Atoi (* EnumName));
    UATHelper: Empaquetado (Android (ASTC)): ^
    UATHelper: Empaquetado (Android (ASTC)): ./Plugins/VRExpansionPlugin/OpenVRExpansionPlugin/Source/OpenVRExpansionPlugin/Public/OpenVRExpansionFunctionLibrary.h(701,9): error: uso de la biblioteca. 'vr'
    UATHelper: Empaquetado (Android (ASTC)): estático vr :: Texture_t CreateOpenVRTexture_t (UTexture * Texture)
    UATHelper: Empaquetado (Android (ASTC)): ^
    UATHelper: Empaquetado (Android (ASTC)): / Plugins / VRExpansionPlugin / OpenVRExpansionPlugin / Source / OpenVRExpansionPlugin / Public / OpenVRExpansionFunctionLibrary.h (703,3): error: uso del identificador no declarado 'vr'
    UATHelper: Empaquetado (Android (ASTC)): vr ::
    UATHelper: Empaquetado (Android (ASTC)): ^
    UATHelper: Empaquetado (Android (ASTC)): /Plugins/VRExpansionPlugin/OpenVRExpansionPlugin/Source/OpenVRExpansionPlugin/Public/OpenVRExpansionFunctionLibrary.h(703,17): error: uso de la biblioteca. VRTexture '; ¿quiso decir 'textura'?
    UATHelper: Empaquetado (Android (ASTC)): vr :: Texture_t VRTexture;
    UATHelper: Empaquetado (Android (ASTC)): ^ ~~~~~~~~
    UATHelper: Empaquetado (Android (ASTC)): Texture
    UATHelper: Empaquetado (Android (ASTC)): / Plugins / VRExpansionPlugin / OpenVRExpansionPlugin / Source / OpenVRExpansionPlugin /Public/OpenVRExpansionFunctionLibrary.h(701,56): nota: 'Texture' declarada aquí
    UATHelper: Packaging (Android (ASTC)): static vr :: Texture_t CreateOpenVRTexture_t (UTexture * Texture)

    etc ...




    puedes verificarlo? ¿O es algo que estoy haciendo mal? No estoy usando el ejemplo, solo he migrado a otro proyecto lo que necesitaba y todo se compila y funciona como se esperaba, pero cuando me naturalizo, recibo estos errores. Gracias

    Leave a comment:


  • replied
    Originally posted by Curs0 View Post
    hi mordentral, just a quick question on open input plugin: considering steam vr binding only accepts vector2 actions for thumbstick position mapping, how can I bind it to UE4 vector1 axis?
    Are you just looking for a touch event?

    Leave a comment:


  • replied
    hi mordentral, just a quick question on open input plugin: considering steam vr binding only accepts vector2 actions for thumbstick position mapping, how can I bind it to UE4 vector1 axis?

    Leave a comment:


  • replied
    Hi. I'm relatively new to Unreal. I have a problem that's probably very easy to fix. I've searched this forum but can't find an answer.

    When I try and change an input binding in the template project, it always reverts back to the original mapping when I press Play. I've tried deleting the Saved and Intermediate Folders, setting various input config.ini files to read only or renaming them.

    It's not an issue with my engine (4.23) as I can rebind inputs in a new project no problem.

    What am I missing?

    Thanks

    Leave a comment:


  • replied
    Originally posted by mordentral View Post

    I don't actually force the root lower during crouch as generally the players should be crouching themselves, the node was fixed to work with the VR character anyway though in order to allow for the speed differences and some users that were using it for going back and forth with possession or the height of the HMD.

    Generally you toggle crouching on and off from HMD height instead at a threshold, IE: HMD Height < 100, toggle on crouching, if it goes over that threshold, then toggle it back off. You can also dynamically re-size the capsule to always follow the height of the player instead of toggling it with crouch too.

    You can change the capsule offset to have more upwards Z offset to simulate sinking into the ground if you want (or move the net smoother root node), you just have to realize that they will be able to put their hands through the floor then as the zero point will differ.

    The Simplecharacter doesn't enforce a foot position and would actually sink in with the crouch command however.


    If you override the CanObjectBeClimbed function you can filter it however you want.



    the default (parent) implementation returns false if the object has the grip interface. It returns true if the object blocks the VRTraceChannel, you could change that to any channel that you want instead.

    Thank you for the explanation. I'm hammering it out now.

    Leave a comment:


  • replied
    Originally posted by mordentral View Post

    I don't actually force the root lower during crouch as generally the players should be crouching themselves, the node was fixed to work with the VR character anyway though in order to allow for the speed differences and some users that were using it for going back and forth with possession or the height of the HMD.

    Generally you toggle crouching on and off from HMD height instead at a threshold, IE: HMD Height < 100, toggle on crouching, if it goes over that threshold, then toggle it back off. You can also dynamically re-size the capsule to always follow the height of the player instead of toggling it with crouch too.

    You can change the capsule offset to have more upwards Z offset to simulate sinking into the ground if you want (or move the net smoother root node), you just have to realize that they will be able to put their hands through the floor then as the zero point will differ.

    The Simplecharacter doesn't enforce a foot position and would actually sink in with the crouch command however.


    If you override the CanObjectBeClimbed function you can filter it however you want.



    the default (parent) implementation returns false if the object has the grip interface. It returns true if the object blocks the VRTraceChannel, you could change that to any channel that you want instead.

    Thank you for your kind explanation.

    Leave a comment:


  • replied
    Originally posted by QLieu View Post
    I'm a total noob to Unreal but learning a lot these past 2 weeks. Thanks to mordentral and his great work, I feel like I'm hitting the ground running.

    I've tried to look for solutions to my current problem but can't seem to figure it out. So I'm trying to set a button to crouch. But when I press it, my head still stays in the same spot but it must be working because my speed slows down to the 300 that's set for speed.

    What am I missing? Something to do with the HMD?
    I don't actually force the root lower during crouch as generally the players should be crouching themselves, the node was fixed to work with the VR character anyway though in order to allow for the speed differences and some users that were using it for going back and forth with possession or the height of the HMD.

    Generally you toggle crouching on and off from HMD height instead at a threshold, IE: HMD Height < 100, toggle on crouching, if it goes over that threshold, then toggle it back off. You can also dynamically re-size the capsule to always follow the height of the player instead of toggling it with crouch too.

    You can change the capsule offset to have more upwards Z offset to simulate sinking into the ground if you want (or move the net smoother root node), you just have to realize that they will be able to put their hands through the floor then as the zero point will differ.

    The Simplecharacter doesn't enforce a foot position and would actually sink in with the crouch command however.
    Originally posted by Gunim View Post
    I want to make a game using Climb.
    The problem is that I can catch all the Mesh.
    Is there a way to ignore Mesh and make it possible to catch Collision?
    If you override the CanObjectBeClimbed function you can filter it however you want.



    the default (parent) implementation returns false if the object has the grip interface. It returns true if the object blocks the VRTraceChannel, you could change that to any channel that you want instead.


    Leave a comment:


  • replied
    I want to make a game using Climb.
    The problem is that I can catch all the Mesh.
    Is there a way to ignore Mesh and make it possible to catch Collision?

    Leave a comment:


  • replied
    I'm a total noob to Unreal but learning a lot these past 2 weeks. Thanks to mordentral and his great work, I feel like I'm hitting the ground running.

    I've tried to look for solutions to my current problem but can't seem to figure it out. So I'm trying to set a button to crouch. But when I press it, my head still stays in the same spot but it must be working because my speed slows down to the 300 that's set for speed.

    What am I missing? Something to do with the HMD?

    Leave a comment:

Working...
X