Announcement

Collapse
No announcement yet.

VR Expansion Plugin

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

  • replied
    Originally posted by mordentral View Post

    Sounds like you migrated parts of the example template to a different project? The example template is overly featured in order to make a good test bed (its my primary test ground) and to show a bunch of different interactions, its not exactly the best thing to migrate. What you likely ran into is that you didn't port the gameplaytags that it uses to run the templates gripping off of, both are defined in the config files.

    I generally don't suggest that a game from the ground up use the gameplay tags, you generally don't need to switch what button does what on a per object bases. However if you want them you can import the datatable that defines them, set it as your gameplay tag table in editor (or also transfer the config file that sets it) and make sure that the GripDropOrUse_Clean functions have the tags that they are likely now missing (or re-import that part after importing the tags).
    Indeed, I migrated the examples over to try to better compare to how i could integrate it into some test systems -- I actually have all the gameplaytags and they are set in editor, but I don't see how that's relevant to the function and interface interactions? It's failing in the function before checking for relevant gameplay tags. The printstrings indicates it is returning when it fails calling the interface message IsDenyingGrips on the actor (branch is true w/ SG None and returns)

    P.S.

    Thank you kindly for your support!
    Last edited by zSwitchz; 07-11-2019, 08:24 PM.

    Leave a comment:


  • replied
    Originally posted by zSwitchz View Post
    I'm going absolutely nutty here. I cannot grip anything. I'm using the motioncontrollermap from the template and all of the template items with a copied Vive_PawnCharacter - labelled VR_PawnCharacter.

    I walk over and try to grip anything, it always denies grip...I'm using the potion on the table as the tester with a bunch of print strings around now and it makes Absolutely zero sense:

    For the PotionActor on Event BeginPlay I've Set Deny Gripping to false for the potion mesh and stopped, then printstring for IsDenyGrips for the actor, potionmesh and stopper, as well as used the interface and the message for actor, potionmesh and stopper --- the printstring reports IsDenyingGrips is false for every one of these:

    LogBlueprintUserMessages: [PotionActor_620] Potion is denying grips: falsefalsefalsefalsefalsefalsefalse

    I also added printstrings in ShouldGripComponent functions and SelectObjectfromHitArray printing out the Object Hit: and the Should Grip: from after Should Grip Component function runs.

    in ShouldGripComponent I added printstring statements after relevant parts.... see log:
    Sounds like you migrated parts of the example template to a different project? The example template is overly featured in order to make a good test bed (its my primary test ground) and to show a bunch of different interactions, its not exactly the best thing to migrate. What you likely ran into is that you didn't port the gameplaytags that it uses to run the templates gripping off of, both are defined in the config files.

    I generally don't suggest that a game from the ground up use the gameplay tags, you generally don't need to switch what button does what on a per object bases. However if you want them you can import the datatable that defines them, set it as your gameplay tag table in editor (or also transfer the config file that sets it) and make sure that the GripDropOrUse_Clean functions have the tags that they are likely now missing (or re-import that part after importing the tags).

    Leave a comment:


  • replied
    I'm going absolutely nutty here. I cannot grip anything. I'm using the motioncontrollermap from the template and all of the template items with a copied Vive_PawnCharacter - labelled VR_PawnCharacter.

    I walk over and try to grip anything, it always denies grip...I'm using the potion on the table as the tester with a bunch of print strings around now and it makes Absolutely zero sense:

    For the PotionActor on Event BeginPlay I've Set Deny Gripping to false for the potion mesh and stopped, then printstring for IsDenyGrips for the actor, potionmesh and stopper, as well as used the interface and the message for actor, potionmesh and stopper --- the printstring reports IsDenyingGrips is false for every one of these:

    LogBlueprintUserMessages: [PotionActor_620] Potion is denying grips: falsefalsefalsefalsefalsefalsefalse

    I also added printstrings in ShouldGripComponent functions and SelectObjectfromHitArray printing out the Object Hit: and the Should Grip: from after Should Grip Component function runs.

    in ShouldGripComponent I added printstring statements after relevant parts.... see log:

    LogBlueprintUserMessages: [VR_PawnCharacter_2] Trigger Grip
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Implements interface
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Is Valid To Grip? False
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Object Hit: PotionActor_620.PotionMesh Potion Should Grip: false
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Implements interface
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Is Valid To Grip? False
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Object Hit: PotionActor_620.PotionMesh Potion Should Grip: false
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Does not implement interface
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Component Owning Actor Implements Interface
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Is Valid To Grip? False
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Object Hit: PotionActor_620.PotionMesh Potion Should Grip: false
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Trigger Grip
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Implements interface
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Is Valid To Grip? False
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Object Hit: PotionActor_620.PotionMesh Potion Should Grip: false
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Trigger Grip
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Implements interface
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Is Valid To Grip? False
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Object Hit: PotionActor_620.PotionMesh Potion Should Grip: false
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Does not implement interface
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Component Owning Actor Implements Interface
    LogBlueprintUserMessages: [VR_PawnCharacter_2] Is Valid To Grip? False

    How the heck is it possible that after checking isdenyinggrips in the potion actor when triggered by the hand it's returning a true from the interface!? (I've checked class defaults for VRGrip Interface and the interface function in the actor too.)



    Leave a comment:


  • replied
    Originally posted by Warner V View Post

    Thanks for your support! Unfortunately I've been playing with your suggestions for two days and I don't manage to get it to work properly..

    My main goal is to set up the grip as "Sweep with Physics", as well as to use the Grip Priority to filter between multiple overlapping objects.

    I have some questions on your input:


    You mean duplicating it manually in the BP? Or creating a new component and setting up the attributes one by one?


    Yes exactly.. and as far as I can understand there is no way to copy over the ProcMesh (though the individual attributes 'Vertices', 'Triangles', etc) without losing the collision.. and there's no good way to dynamically create a high quality new collision.

    My best attempt so far is to spawn a second copy of the actor and to do the whole thing twice (destroying one ProcMesh component in each actor after the slice).. But it's not very efficient.

    Is a Grippable Procedural Mesh at all on the roadmap?
    He just copied my static mesh component class and changed the base class to a procedural mesh one (in c++). Then made it so after he slices something he copies the mesh from the proc mesh that it made to a new one of the grippable type and then deletes the original.

    I could easily make a grippable proc mesh class, the issues I had with it was I am not really willing to support the slicing part by deleting originals and copying the data to newly spawned copies, its unwieldy and overly complex (and inefficient), so I would have to then go and make a custom slicing function to handle slicing specifically grippable procedural meshes (wish they took a class type pointer instead for that function).

    At that point it is almost easier to contain the sliced components in seperate GrippableActors instead for ones that you want to pick up, and set the proc mesh to the root component.
    Last edited by mordentral; 07-10-2019, 04:39 PM.

    Leave a comment:


  • replied
    Originally posted by mordentral View Post

    Someone a few posts up made one just by copying the static mesh component and changing the base class. The issue is that the default slicing functions only generate the default procedural mesh components so they would have to be copied over to the new base class then.

    You can grip them normally with a Grip command, if you want more control than just the stiffness and damping though, in the latest releases, post the actual grip you can either call SetPhysicsHandleSettings to set an axis by axis stiffness / damping, or you can alter the grip structs advanced grip settings (set members) to choose the options that you want and then call UpdatePhysicsHandle to update the values (on the server if multiplayer, when it replicates down the changes the clients should auto update).

    That gives you full control over the grips physics settings without it being interfaced as it forces it to re-init to the new values.
    Thanks for your support! Unfortunately I've been playing with your suggestions for two days and I don't manage to get it to work properly..

    My main goal is to set up the grip as "Sweep with Physics", as well as to use the Grip Priority to filter between multiple overlapping objects.

    I have some questions on your input:

    Originally posted by mordentral View Post
    ​​​​​​
    Someone a few posts up made one just by copying the static mesh component and changing the base class.
    You mean duplicating it manually in the BP? Or creating a new component and setting up the attributes one by one?

    Originally posted by mordentral View Post
    ​​​​​​
    The issue is that the default slicing functions only generate the default procedural mesh components so they would have to be copied over to the new base class then.
    Yes exactly.. and as far as I can understand there is no way to copy over the ProcMesh (though the individual attributes 'Vertices', 'Triangles', etc) without losing the collision.. and there's no good way to dynamically create a high quality new collision.

    My best attempt so far is to spawn a second copy of the actor and to do the whole thing twice (destroying one ProcMesh component in each actor after the slice).. But it's not very efficient.

    Is a Grippable Procedural Mesh at all on the roadmap?

    Leave a comment:


  • replied
    Originally posted by mordentral View Post

    On the parent relative attachment, most other things just work, with the difference that when calculating positions for things and such you should be using GetVRLocation / GetVRRotation as that is the offset position.
    Got it working, truly amazing! I'm going to have to resort to using a different mesh for myself versus what other players will see like most games. I was trying to avoid having to do that but it seems to be the way to go. I'll be patronizing ASAP!

    Leave a comment:


  • replied
    Originally posted by Nostrildumbass View Post

    Holy ****... it can't seriously be that easy. Thank you! I'm excited to get this working. I've been putting off "figuring out" roomscale and I think it's time. Where is this "foot mode" you mentioned?
    On the parent relative attachment, most other things just work, with the difference that when calculating positions for things and such you should be using GetVRLocation / GetVRRotation as that is the offset position.

    Leave a comment:


  • replied
    Originally posted by mordentral View Post

    Attach it to the ParentRelativeAttachment and set the ParentRelativeAttachment to "foot mode" which will place it on the floor before the HMD.
    Holy ****... it can't seriously be that easy. Thank you! I'm excited to get this working. I've been putting off "figuring out" roomscale and I think it's time. Where is this "foot mode" you mentioned?

    Leave a comment:


  • replied
    Originally posted by Nostrildumbass View Post
    Hi, I've just finally given in and decided to try this plugin (I only refused to at first because I thought it would be really difficult to get working in my project). I got it today and got all my existing character's stuff implemented into the VRCharacter, but how exactly can we get the roomscale movement working? I added the UE Mannequin mesh but can't seem to get this working right. Is that mannequin supported with this? The plugin looks like amazing stuff, I'd really like to understand how to work with it.

    Edit: sorry, know what, I haven't looked at the example template yet. I'll start there
    Attach it to the ParentRelativeAttachment and set the ParentRelativeAttachment to "foot mode" which will place it on the floor before the HMD.

    Leave a comment:


  • replied
    Hi, I've just finally given in and decided to try this plugin (I only refused to at first because I thought it would be really difficult to get working in my project). I got it today and got all my existing character's stuff implemented into the VRCharacter, but how exactly can we get the roomscale movement working? I added the UE Mannequin mesh but can't seem to get this working right. Is that mannequin supported with this? The plugin looks like amazing stuff, I'd really like to understand how to work with it.

    Edit: sorry, know what, I haven't looked at the example template yet. I'll start there
    Last edited by Nostrildumbass; 07-09-2019, 07:51 PM.

    Leave a comment:


  • replied
    Originally posted by Warner V View Post
    A question: I'm trying to use a Procedural Mesh (with slicing functionality), but I want to have control over the gripping options of the resulting mesh components.

    Since there is no "Grippable Procedural Mesh" component in the plugin, do you have any ideas/recommendations on how to set this up?
    Someone a few posts up made one just by copying the static mesh component and changing the base class. The issue is that the default slicing functions only generate the default procedural mesh components so they would have to be copied over to the new base class then.

    You can grip them normally with a Grip command, if you want more control than just the stiffness and damping though, in the latest releases, post the actual grip you can either call SetPhysicsHandleSettings to set an axis by axis stiffness / damping, or you can alter the grip structs advanced grip settings (set members) to choose the options that you want and then call UpdatePhysicsHandle to update the values (on the server if multiplayer, when it replicates down the changes the clients should auto update).

    That gives you full control over the grips physics settings without it being interfaced as it forces it to re-init to the new values.

    Leave a comment:


  • replied
    A question: I'm trying to use a Procedural Mesh (with slicing functionality), but I want to have control over the gripping options of the resulting mesh components.

    Since there is no "Grippable Procedural Mesh" component in the plugin, do you have any ideas/recommendations on how to set this up?

    Leave a comment:


  • replied
    Originally posted by 6r0m View Post

    Thanks for answer, setting up VectorDisplacementmap and down scaling to 4K resolve problem of texture appearing.

    But, can you give some workaround for: texture appears upside down when SetSkyboxOverride_LatLong?
    https://steamcommunity.com/sharedfil.../?id=676747488

    There is a steam guide on Equirectangular image formatting for steamVR which is the image format used with the LatLong option.
    I pass the data in as is so it should be in the creation step that you are getting improper results.

    Leave a comment:


  • replied
    Originally posted by mordentral View Post

    Is the texture being packaged out? it wouldn't have been referenced by the level so it may not be.

    Attempt it in a dev package with log enabled and see if it throws any warnings.
    Thanks for answer, setting up VectorDisplacementmap and down scaling to 4K resolve problem of texture appearing.

    But, can you give some workaround for: texture appears upside down when SetSkyboxOverride_LatLong?
    Last edited by 6r0m; 07-08-2019, 08:43 AM.

    Leave a comment:


  • replied
    A few small changes prior to 4.23 dropping.

    Patch notes here:
    https://vreue4.com/patch-notes?secti...23-final-patch

    Also I wrote a news entry about how I managed to extend my Valve Index cord range without latency and within a budget (default cord it comes with is right at the edge of DP 1.2 length limits).

    https://vreue4.com/valve-index-extending-your-fun

    Leave a comment:

Working...
X