Announcement

Collapse
No announcement yet.

VR Expansion Plugin

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

    Originally posted by mordentral View Post

    Well it would replicate everything except for the leap motion fingers, those would require custom replication as they don't tie into any of the base engine controller framework.
    Ouch.. thank you. The fingers replication has been bugging me for quite some time.

    Comment


      Originally posted by Syed View Post

      Ouch.. thank you. The fingers replication has been bugging me for quite some time.
      I have an example of finger replication in my OpenInput module that you could reference, when its cross platform I have to drop Valve official compression and self replicate the finger transforms (for index controllers / skeletal input), its not all that hard to adapt to any skeletal input (may end up doing that in the future).

      https://imgur.com/WvnMy7g

      That is at 5htz (5 times a second) update rate over the network with smoothing, the right side hand is replicated and the left side hand is local. I default it to 10htz but wanted to show a lower speed one for examples sake.


      Consider supporting me on patreon

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

      Comment


        In VRExpPluginExample Content\VRExpansion\Vive\Testing\SnapPoint\SnapActor is failing to compile. Needs to be updated to latest changes.

        Comment


          Originally posted by Sooth View Post
          In VRExpPluginExample Content\VRExpansion\Vive\Testing\SnapPoint\SnapActor is failing to compile. Needs to be updated to latest changes.
          Fixed and uploaded, I think that entire example actually need an overhaul, not entirely sure of its use currently. But its compiling again.


          Consider supporting me on patreon

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

          Comment


            Originally posted by mordentral View Post
            Finished up cleaning up the OpenVRInput module over the past two days to prep for Index release.

            It now cleanly handles when someone is using the Official Valve plugin and doesn't try to handle input anymore and just has the new component and gesture detection.

            Also finished up the replication for it, with multiple replication modes and smoothing, the documentation on www.vreue4.com for it will be revised tomorrow with the new information.


            In the GIF below the right hand is using replicated data (not local) and is updating at 5htz (5 times a second), the smoothing I added makes it a lot more fluid. I set the default 10htz but the value is fully customizable to whatever network load you are willing to allow.

            https://imgur.com/WvnMy7g
            Hi Mordentral,

            Got a few questions about your OpenVRInput module and the official SteamVRInput plugin. I don't fully understand how some of this stuff works so apologies if some of my questions don't make sense.
            • Firstly, am I right in thinking the documentation you mentioned hasn't been updated yet regarding replication?
            • Is there any reason to use the official plugin over yours? You say you have made it cleanly handle using official plugin but still allowing your gesture detection, why use the official plugin at all though as yours can also handle the skeltal input?
            • Can SteamVRInput/your plugin handle using a vr glove controller (eg manus)? This might not really make much sense as, at least for the steamvrinput plugin, i don't think thats the point of the plugin. But for your plugin at least if it was possible then the replication/gesture detection would be very useful.
            Thanks!

            Comment


              Originally posted by ctpeepee View Post

              Hi Mordentral,

              Got a few questions about your OpenVRInput module and the official SteamVRInput plugin. I don't fully understand how some of this stuff works so apologies if some of my questions don't make sense.
              • Firstly, am I right in thinking the documentation you mentioned hasn't been updated yet regarding replication?
              • Is there any reason to use the official plugin over yours? You say you have made it cleanly handle using official plugin but still allowing your gesture detection, why use the official plugin at all though as yours can also handle the skeltal input?
              • Can SteamVRInput/your plugin handle using a vr glove controller (eg manus)? This might not really make much sense as, at least for the steamvrinput plugin, i don't think thats the point of the plugin. But for your plugin at least if it was possible then the replication/gesture detection would be very useful.
              Thanks!
              1. Yeah I got sidetracked dealing with some things with it and haven't updated the documentation yet. Generally its just ticking on "replicate skeletal data" and choosing a replication mode. There are no real complicated steps. I'll get around to updating the documentation soon, I only finished final testing last night and just need to clean some things up now.

              2. Mine only handles the action system currently because the built in engine version does not contain skeletal input capacity yet and I didn't want to ship a module that "requires" another party's module to function. The Valve plugin also handles the action system and when it is installed mine turns that part of itself off in order to let it work as intended, basically it comes down to if you prefer the valve plugin or the native engine "Beta Input" style (mine is the beta input but with modifications to allow the skeletal system). Eventually when the engine gets some patches in that fixes the problem i'll be removing that part of my module entirely.

              As far as what the difference is from the valve plugin with that aside, theirs doesn't handle mapping the hands to full body meshes, or replication, or easy gesture detection. They also are using some proxy inputs and a large quantity of input keys for each supported controller for mapping inputs which is a bit of a mess and some may prefer to not deal with until it is re-factored. If you are doing single hand meshes in singleplayer though I don't see a reason why you couldn't / wouldn't just use theirs.

              3. If the vr glove controller makes OpenInput drivers for them then they would work out of the box, since they use vive trackers in their promotional material I would hope that they do it correctly and actually write a vendor driver for them for SteamVR and everything "just works".


              Consider supporting me on patreon

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

              Comment


                Originally posted by mordentral View Post

                1. Yeah I got sidetracked dealing with some things with it and haven't updated the documentation yet. Generally its just ticking on "replicate skeletal data" and choosing a replication mode. There are no real complicated steps. I'll get around to updating the documentation soon, I only finished final testing last night and just need to clean some things up now.

                2. Mine only handles the action system currently because the built in engine version does not contain skeletal input capacity yet and I didn't want to ship a module that "requires" another party's module to function. The Valve plugin also handles the action system and when it is installed mine turns that part of itself off in order to let it work as intended, basically it comes down to if you prefer the valve plugin or the native engine "Beta Input" style (mine is the beta input but with modifications to allow the skeletal system). Eventually when the engine gets some patches in that fixes the problem i'll be removing that part of my module entirely.

                As far as what the difference is from the valve plugin with that aside, theirs doesn't handle mapping the hands to full body meshes, or replication, or easy gesture detection. They also are using some proxy inputs and a large quantity of input keys for each supported controller for mapping inputs which is a bit of a mess and some may prefer to not deal with until it is re-factored. If you are doing single hand meshes in singleplayer though I don't see a reason why you couldn't / wouldn't just use theirs.

                3. If the vr glove controller makes OpenInput drivers for them then they would work out of the box, since they use vive trackers in their promotional material I would hope that they do it correctly and actually write a vendor driver for them for SteamVR and everything "just works".
                1. Sweet. Just checking I wasn't being blind.

                2. Thanks for all the info! I don't really understand some of what you've said but as I work a bit more with this stuff I'll check back and hopefully the other things will make more sense.

                3. Unfortunately that is not the case. The gloves work completely separately to steamvr and the trackers are independently used to position the wrist/hand. I'm gonna submit a support ticket and ask if they have plans to do that now I know though!

                My project is multiplayer and will have full body ik so from what you've said looks like your plugin might be very helpful. Does your gesture detection/replication work only for the skeletal data from your open input module or will it also work if skeletal data coming from SteamVRInput or from something like the manus glove? Main focus for me is actually manus and then supporting vive controllers as a fallback.

                Comment


                  Originally posted by ctpeepee View Post

                  1. Sweet. Just checking I wasn't being blind.

                  2. Thanks for all the info! I don't really understand some of what you've said but as I work a bit more with this stuff I'll check back and hopefully the other things will make more sense.

                  3. Unfortunately that is not the case. The gloves work completely separately to steamvr and the trackers are independently used to position the wrist/hand. I'm gonna submit a support ticket and ask if they have plans to do that now I know though!

                  My project is multiplayer and will have full body ik so from what you've said looks like your plugin might be very helpful. Does your gesture detection/replication work only for the skeletal data from your open input module or will it also work if skeletal data coming from SteamVRInput or from something like the manus glove? Main focus for me is actually manus and then supporting vive controllers as a fallback.
                  The skeletal replication currently IS of the OpenInput skeletal data, I haven't expanded it to cover anything else yet. Assuming they correctly create their SteamVR controller driver they should be able to pass out the skeletal pose through the API and have it just work.


                  Consider supporting me on patreon

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

                  Comment


                    Hey man! After getting your advice on using the slot grips I found the tutorial you had on the documentation website and it seems to be working alright yet my objects scaling is being multiplied by 100. In the actual object which is a disc, I have the scale as 0.1 but when I grab it it sets it to 10. Any idea on how to fix this?

                    Comment


                      Originally posted by Simply Clueless View Post
                      Hey man! After getting your advice on using the slot grips I found the tutorial you had on the documentation website and it seems to be working alright yet my objects scaling is being multiplied by 100. In the actual object which is a disc, I have the scale as 0.1 but when I grab it it sets it to 10. Any idea on how to fix this?
                      When you get a socket world transform it has its parent object scale, so when you make it relative to the object it scales incorrectly (doubles up the scale), when you are passing out the transform set the scale to 1. I may be switching over to that node passing out the relative space transform instead soon though, depends on how that would effect users as generally just passing out world transform of things is easier.


                      *Edit* That is assuming that you are overriding that function, if you aren't then it should be working correctly.
                      Last edited by mordentral; 05-23-2019, 09:42 AM.


                      Consider supporting me on patreon

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

                      Comment


                        I haven't overridden that function just yet. I'll have a look later when i'm at home but I feel like it should be correct judging by the images on your website!

                        Comment


                          Here is some screen shots on how I have done it which should be pretty identical to how you showed.
                          Attached Files

                          Comment


                            Originally posted by Simply Clueless View Post
                            Here is some screen shots on how I have done it which should be pretty identical to how you showed.
                            Well for one you aren't casting or checking if the object has the interface first before checking DenyGripping on it, so the result out of that message is invalid (there may be no interface to get a correct result out of for that object). I assume that your object is a GrippableActor so you should be passing the actor reference around not the component (checking for interface between the two would have handled that).


                            That aside, yeah, I actually had a mistake in my socketing blueprint example and had the pins backwards for the socket one. I fixed the tutorial and re-uploaded corrected images, I also made the snapping images and example be of an actor as usually you will be gripping actors. That one was my bad, I was rushing during that part of the tutorial trying to get the rest of the site up.
                            Last edited by mordentral; 05-24-2019, 09:28 AM.


                            Consider supporting me on patreon

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

                            Comment


                              Hi, mordentral

                              Thank you for your awesome work on the plugin!

                              I just want to ask if someone had a issue like mine, that can point me to the right direction.

                              In Multiplayer, the client cant't teleport (just see the short blue teleport line that almost immediately cuts off),
                              but the strange thing is that the player on the server side see the Teleport location of the client in full (with arc and target).

                              The levels have NavMeshBounds.

                              I'm pretty new to UE but not c++

                              Thank,
                              Carlos

                              Comment


                                Set up your OpenInput plugin today. Everything worked great up until I tried enabling replication. When run in engine with use single process disabled, the client (non-vr) crashes either on startup or shortly after. Had two slighlty different error messages (below). I tried messing around with the replication settings to see if they made any difference, found that the only thing that stopped it crashing was to disable Smooth Replicated Skeletal Data but that with that enabled there was no replication. Any ideas?

                                Code:
                                Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:C:\Program Files\Epic Games\UE_4.22\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 611]
                                ...
                                UE4Editor_OpenInputPlugin!DispatchCheckVerify<void,<lambda_ac839d0d620246989338f24bfe6f099f> >() [c:\program files\epic games\ue_4.22\engine\source\runtime\core\public\misc\assertionmacros.h:162]
                                UE4Editor_OpenInputPlugin!FBPSkeletalRepContainer::NetSerialize() [c:\users\...\plugins\openinputplugin\source\openinputplugin\public\openinputfunctionlibrary.h:455]
                                Code:
                                Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:C:\Program Files\Epic Games\UE_4.22\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 611]
                                ...
                                UE4Editor_OpenInputPlugin!DispatchCheckVerify<void,<lambda_772c629cba1e4a100b11566d43231efa> >() [c:\program files\epic games\ue_4.22\engine\source\runtime\core\public\misc\assertionmacros.h:162]
                                UE4Editor_OpenInputPlugin!UOpenInputSkeletalMeshComponent::FTransformLerpManager::UpdateManager() [c:\users\...\plugins\openinputplugin\source\openinputplugin\public\openinputskeletalmeshcomponent.h:279]
                                UE4Editor_OpenInputPlugin!UOpenInputSkeletalMeshComponent::TickComponent() [c:\users\...\plugins\openinputplugin\source\openinputplugin\private\openinputskeletalmeshcomponent.cpp:224]

                                Comment

                                Working...
                                X