Announcement

Collapse
No announcement yet.

VR Expansion Plugin

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

    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.

    Comment


      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.


      Consider supporting me on patreon

      My Open source tools and plugins
      Advanced Sessions Plugin
      VR Expansion Plugin

      Comment


        Originally posted by mordentral View Post

        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.
        Hmmm.. I do have the interface implemented so I'm not sure I follow. My base class is "item" which is just an actor, but with the VRGrip interface on it. From there I have weapon > primary weapon > AK47. Should that not work this way?

        Comment


          Originally posted by Nostrildumbass View Post

          Hmmm.. I do have the interface implemented so I'm not sure I follow. My base class is "item" which is just an actor, but with the VRGrip interface on it. From there I have weapon > primary weapon > AK47. Should that not work this way?
          ? You said that you placed a grippable capsule at the weapon grip in your original post? If you implemented the interface manually in a base class then you need to override and fill out all of its functions as well.
          Last edited by mordentral; 10-13-2019, 10:43 PM.


          Consider supporting me on patreon

          My Open source tools and plugins
          Advanced Sessions Plugin
          VR Expansion Plugin

          Comment


            Originally posted by mordentral View Post

            ? You said that you placed a grippable capsule at the weapon grip in your original post? If you implemented the interface manually in a base class then you need to override and fill out all of its functions as well.
            Ahhh I see, thank you. The functions are probably it. I might go ahead and just reparent my base class like you originally suggested. I assume a GrippableActor should work instead of GrippableStaticMesh? Some of my items have a static mesh and others have a skeletal (though I do plan to go skeletal for all of them eventually).

            Edit: Not having luck here still. I made a totally new blueprint to try and just get this working to figure out what I'm doing wrong and I can't get even the new blueprint to grip. I made a GrippableActor BP and added a grippable static mesh to it. Neither Grip Actor nor Grip Object are working for me (same as before, the Grip node gets executed but the On Grip event on the new BP object doesn't seem to fire). I can't seem to find the pre-built template for 4.22, is there an archive of pre-built packages somewhere?
            Last edited by Nostrildumbass; 10-13-2019, 11:58 PM.

            Comment


              Originally posted by Nostrildumbass View Post

              Ahhh I see, thank you. The functions are probably it. I might go ahead and just reparent my base class like you originally suggested. I assume a GrippableActor should work instead of GrippableStaticMesh? Some of my items have a static mesh and others have a skeletal (though I do plan to go skeletal for all of them eventually).

              Edit: Not having luck here still. I made a totally new blueprint to try and just get this working to figure out what I'm doing wrong and I can't get even the new blueprint to grip. I made a GrippableActor BP and added a grippable static mesh to it. Neither Grip Actor nor Grip Object are working for me (same as before, the Grip node gets executed but the On Grip event on the new BP object doesn't seem to fire). I can't seem to find the pre-built template for 4.22, is there an archive of pre-built packages somewhere?
              Grippable actor is just for that case yes, however if you are going to be multiplayer at some point you may want to have two separate bases, one based on skeletal mesh and one based on static, as the engines replication does not actually handle some of the mesh stuff when just adding the components to a base actor instead of using the built actor for each of them.

              In singleplayer it wouldn't really matter ever.

              You might want to check out the tutorial video that a community member made off of my "basic gripping" text overview.

              https://www.youtube.com/watch?v=Dh3VJ5PqSYQ

              Also if you want a specific version of the engine on one of the repositories, you can go to downloads and switch to branches and download the locked version of your specific engine version: https://bitbucket.org/mordentral/vre.../?tab=branches


              Keep in mind as well that the OnGrip event is going to fire on the root in that case, component gripping has precedence as it lets you grip child components in an actor. The parent actor would be receiving OnChildGripped with that setup. There is generally no reason to ever have both the root and the actor itself be a grippable class. You would generally have the root be normal, and then sub components can be additionally grippable over it.
              Last edited by mordentral; 10-14-2019, 08:33 AM.


              Consider supporting me on patreon

              My Open source tools and plugins
              Advanced Sessions Plugin
              VR Expansion Plugin

              Comment


                Originally posted by mordentral View Post

                Grippable actor is just for that case yes, however if you are going to be multiplayer at some point you may want to have two separate bases, one based on skeletal mesh and one based on static, as the engines replication does not actually handle some of the mesh stuff when just adding the components to a base actor instead of using the built actor for each of them.

                In singleplayer it wouldn't really matter ever.

                You might want to check out the tutorial video that a community member made off of my "basic gripping" text overview.

                https://www.youtube.com/watch?v=Dh3VJ5PqSYQ

                Also if you want a specific version of the engine on one of the repositories, you can go to downloads and switch to branches and download the locked version of your specific engine version: https://bitbucket.org/mordentral/vre.../?tab=branches


                Keep in mind as well that the OnGrip event is going to fire on the root in that case, component gripping has precedence as it lets you grip child components in an actor. The parent actor would be receiving OnChildGripped with that setup. There is generally no reason to ever have both the root and the actor itself be a grippable class. You would generally have the root be normal, and then sub components can be additionally grippable over it.
                Ah man. Thank you for sharing that video and the info on the build specific downloads. I searched all around for something like this and couldn't find it. I'm going to suggest that fellow that he rename the video from VREP to VR Expansion Plugin (or at least add that to the name) to help others find it more easily. I intend to support you shortly! I did get the VR character working nicely with locomotion and a little bit of animation including crouching and proning (not sure about the replication working yet).

                Comment


                  Originally posted by Nostrildumbass View Post

                  Ah man. Thank you for sharing that video and the info on the build specific downloads. I searched all around for something like this and couldn't find it. I'm going to suggest that fellow that he rename the video from VREP to VR Expansion Plugin (or at least add that to the name) to help others find it more easily. I intend to support you shortly! I did get the VR character working nicely with locomotion and a little bit of animation including crouching and proning (not sure about the replication working yet).
                  www.vreue4.com under the documentation tab has tutorial videos now, he is WIP on them so they are fairly new (and only two so far). I understand that a lot of users prefer video over text based but that isn't exactly my forte.


                  Consider supporting me on patreon

                  My Open source tools and plugins
                  Advanced Sessions Plugin
                  VR Expansion Plugin

                  Comment


                    I've been developing on the Oculus Quest and seem to be getting random crashes without any indication as to what it could be. I've setup several different tests on both Unreal 4.22 and 4.23 but I still get random crashes that send the player back to the Oculus dashboard. I've also setup the same tests without the VRE plugin and things are very stable.I know you are not directly developing for the Android platforms but would you have any idea as to what it could be or what I could try out to prevent crashing?

                    Comment


                      Originally posted by Ham1ton View Post
                      I've been developing on the Oculus Quest and seem to be getting random crashes without any indication as to what it could be. I've setup several different tests on both Unreal 4.22 and 4.23 but I still get random crashes that send the player back to the Oculus dashboard. I've also setup the same tests without the VRE plugin and things are very stable.I know you are not directly developing for the Android platforms but would you have any idea as to what it could be or what I could try out to prevent crashing?
                      If using the template there are some things that don't play perfectly with the quest (namely some of the more intensive physics assets like the car). You'll have to profile though to really know what it going on.

                      I would follow the Android Device Monitor instructions in this Oculus article to get some info back from the device.

                      https://developer.oculus.com/blog/de...for-mobile-vr/

                      You can feel free to PM me the crash information afterwards if it is plugin related. I have quite a few plugin users on Quest without issues currently so it would either be something esoteric or an actual problem with an implementation you specifically have.


                      Consider supporting me on patreon

                      My Open source tools and plugins
                      Advanced Sessions Plugin
                      VR Expansion Plugin

                      Comment


                        Originally posted by mordentral View Post

                        If using the template there are some things that don't play perfectly with the quest (namely some of the more intensive physics assets like the car). You'll have to profile though to really know what it going on.

                        I would follow the Android Device Monitor instructions in this Oculus article to get some info back from the device.

                        https://developer.oculus.com/blog/de...for-mobile-vr/

                        You can feel free to PM me the crash information afterwards if it is plugin related. I have quite a few plugin users on Quest without issues currently so it would either be something esoteric or an actual problem with an implementation you specifically have.
                        Thanks, glad to hear about the other developers. I realized the plugin was not at the latest release so that couldn't help. Thanks for the fast response!

                        Comment


                          Originally posted by mordentral View Post

                          www.vreue4.com under the documentation tab has tutorial videos now, he is WIP on them so they are fairly new (and only two so far). I understand that a lot of users prefer video over text based but that isn't exactly my forte.
                          I finally have some basic weapon gripping working (I struggled a little bit even with the guides you so kindly provided, but I did get there). The problem I'm having now is if I'm holding a weapon and I stretch my hand out as far as I can, the gun is "floating" past my UE mannequin's hands. I'm under the impression that using slot grips should be preventing that and I might just be missing something, correct? I've set up a VRGripP1 and VRGripS1 on my weapon skeleton. Why are there two "Optional Bone to Grip Name" inputs on the Grip Component function? The interact node in my screenshot is just an interface call I'm using to add the gripped item to my inventory and store it as the currently equipped item (goes back and breaks a loop of overlapping actors once the closest one is grabbed).

                          By the way, I intend to become a $10 Patreon when the paycheck hits
                          Attached Files

                          Comment


                            Originally posted by Nostrildumbass View Post

                            I finally have some basic weapon gripping working (I struggled a little bit even with the guides you so kindly provided, but I did get there). The problem I'm having now is if I'm holding a weapon and I stretch my hand out as far as I can, the gun is "floating" past my UE mannequin's hands. I'm under the impression that using slot grips should be preventing that and I might just be missing something, correct? I've set up a VRGripP1 and VRGripS1 on my weapon skeleton. Why are there two "Optional Bone to Grip Name" inputs on the Grip Component function? The interact node in my screenshot is just an interface call I'm using to add the gripped item to my inventory and store it as the currently equipped item (goes back and breaks a loop of overlapping actors once the closest one is grabbed).

                            By the way, I intend to become a $10 Patreon when the paycheck hits
                            Slot grips define where relative to the object that you want the controller at (ie: it positions the object relative to the controller), it doesn't force the object to sit anywhere on your body mesh (it doesn't even have a way to know anything about your body mesh). You can SetPivotComponent on the controller to a scene component that you place on a socket on your mesh though and it will do that, generally though your approach is less ideal than allow bones to stretch or calibrating the body so that they can't out reach the full body avatar that you made, otherwise you will get a lot of annoyed players with below or above average size.

                            As for the double BonetoGrip, its a typo in the grip component node, just fixed it. That node is the least used of all as generally you should be using GripObjectByInterface or GripObject instead. Also you shouldn't be gripping a component primarily unless you have a very specific reason, most grips should be on actors, and on interfaced actors for that matter.


                            Consider supporting me on patreon

                            My Open source tools and plugins
                            Advanced Sessions Plugin
                            VR Expansion Plugin

                            Comment


                              Originally posted by mordentral View Post

                              Slot grips define where relative to the object that you want the controller at (ie: it positions the object relative to the controller), it doesn't force the object to sit anywhere on your body mesh (it doesn't even have a way to know anything about your body mesh). You can SetPivotComponent on the controller to a scene component that you place on a socket on your mesh though and it will do that, generally though your approach is less ideal than allow bones to stretch or calibrating the body so that they can't out reach the full body avatar that you made, otherwise you will get a lot of annoyed players with below or above average size.

                              As for the double BonetoGrip, its a typo in the grip component node, just fixed it. That node is the least used of all as generally you should be using GripObjectByInterface or GripObject instead. Also you shouldn't be gripping a component primarily unless you have a very specific reason, most grips should be on actors, and on interfaced actors for that matter.
                              Hmmm thank you, I'll look into the bone stretching solution. I'm only a few months fresh to UE and game development overall so that'll be something new to learn. I definitely want that approach to accommodate for longer/shorter arms just as you say.

                              Before I started using your great plugin (the main thing I wanted it for was for sort out of the box roomscale, but I decided it would be best to just make more use of other stuff it offers), I was just attaching my weapons to my hand's socket, and it would stay there regardless of stretching beyond the skeleton's default limit until I decided to detach it when releasing my grip, so I take it the slot gripping isn't attaching to sockets in the same way? I'm genuinely curious on what's handled differently there.

                              Comment


                                Originally posted by Nostrildumbass View Post

                                Hmmm thank you, I'll look into the bone stretching solution. I'm only a few months fresh to UE and game development overall so that'll be something new to learn. I definitely want that approach to accommodate for longer/shorter arms just as you say.

                                Before I started using your great plugin (the main thing I wanted it for was for sort out of the box roomscale, but I decided it would be best to just make more use of other stuff it offers), I was just attaching my weapons to my hand's socket, and it would stay there regardless of stretching beyond the skeleton's default limit until I decided to detach it when releasing my grip, so I take it the slot gripping isn't attaching to sockets in the same way? I'm genuinely curious on what's handled differently there.
                                It follows the actual motion controller, my plugin doesn't have any way of knowing specifically what mesh you want to deal with. But that is why the PivotOverride exists, you can define any scene component as the controller pivot and all grips will be offset from there.

                                The plugin only has one grip type that is actually attachment, the rest are sweeps / physics grips.


                                Consider supporting me on patreon

                                My Open source tools and plugins
                                Advanced Sessions Plugin
                                VR Expansion Plugin

                                Comment

                                Working...
                                X