Announcement

Collapse
No announcement yet.

VR Expansion Plugin

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

    Originally posted by ctpeepee View Post
    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?
    Thanks for the report, I tracked it down and is was a missing safety check, it only shows up with delayed loading, the module is updated with a fix.

    I'll note btw, you don't likely want to run as multiple process for testing this, the engine doesn't export non engine directory editor modules in -game running instances so the animation editor module won't load. They had to go and specifically fix this with launching from the uproject awhile back but didn't fix this case as well.

    You'll either want to package it entirely, or run testing as single process, its a universal issue with editor plugins with custom animation nodes AFAIK.


    Consider supporting me on patreon

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

    Comment


      Originally posted by mordentral View Post

      Thanks for the report, I tracked it down and is was a missing safety check, it only shows up with delayed loading, the module is updated with a fix.

      I'll note btw, you don't likely want to run as multiple process for testing this, the engine doesn't export non engine directory editor modules in -game running instances so the animation editor module won't load. They had to go and specifically fix this with launching from the uproject awhile back but didn't fix this case as well.

      You'll either want to package it entirely, or run testing as single process, its a universal issue with editor plugins with custom animation nodes AFAIK.
      Thanks for the fix and for the tip! (Just tested, all working! Doesn't crash when doing what I was doing before and replication all works great when testing it on single process.)

      In general is there a way to test with single process with a vr and non vr player? I started using multiple process' to test stuff that needed one player in vr because couldn't figure out a way with single process.
      Last edited by ctpeepee; 05-25-2019, 06:46 PM.

      Comment


        Originally posted by ctpeepee View Post

        Thanks for the fix and for the tip! (Just tested, all working! Doesn't crash when doing what I was doing before and replication all works great when testing it on single process.)

        In general is there a way to test with single process with a vr and non vr player? I started using multiple process' to test stuff that needed one player in vr because couldn't figure out a way with single process.
        While you can tick on UseDedicated with a vr player the second instance of another client still kills it in single process for a VR player, so no, not that I am aware of.


        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 are using root motion movement with a VR Character?

          Or do you mean you are using it with a VRCharacter but it is possessed by AI?

          I removed the built in skeletal mesh from the component array as I had assumed that no-one would be using root motion for movement in VR and it would have to be re-parented anyway. I would be interested in (any) good reason why someone would actually be using it. I've actually been actively removing root motion checks in the character movement component in order to avoid the (minor) perf hit of checking if it is active.
          I am using root motion in the player character - I am using ikinema in concert with your plugin to have true tracked presence in the world, the root motion allows for realistic movement when using thumbsticks - on that note however - how do you move the characters capsule when using VRcharacter by head movement? my current setup (not using the template - i know that works though) leaves the capsule. is there a simple bool im missing?0

          In a perfect scenario i would have the player be able to move the character by VR movement in the playspace alone, with the skeletal mesh updating walk animations (not root motion) to display those small movements to the player - but when using the thumbsticks to move around, have the root motion animations handle everything.

          Could you add a version of the VR character with the Skeletal Mesh component intact? That way current functionality would not be hindered but for those of us that want it, can use it?

          Thanks for the reply

          Comment


            Originally posted by Swinny_ View Post

            I am using root motion in the player character - I am using ikinema in concert with your plugin to have true tracked presence in the world, the root motion allows for realistic movement when using thumbsticks - on that note however - how do you move the characters capsule when using VRcharacter by head movement? my current setup (not using the template - i know that works though) leaves the capsule. is there a simple bool im missing?0

            In a perfect scenario i would have the player be able to move the character by VR movement in the playspace alone, with the skeletal mesh updating walk animations (not root motion) to display those small movements to the player - but when using the thumbsticks to move around, have the root motion animations handle everything.

            Could you add a version of the VR character with the Skeletal Mesh component intact? That way current functionality would not be hindered but for those of us that want it, can use it?

            Thanks for the reply
            I could add the skeletal mesh back in but that wouldn't fully fix root motion, it would need several things added back in that were removed as minor performance savings.

            I also don't understand how thumbsticks and root motion would work in concert like that...You still need head motion influence during walking which would break your "root motion" setup. And its possible to use a non linear movement without root motion as well.

            The SimpleVRCharacter would be closer to what you want, it does not remove the root motion features, but it does move the entire character with the HMD motion.

            Or you could run a character and a proxy actor for the HMD containing and sync the two.

            *Edit* That being said, I have been considering sitting the skeletal mesh back in and re-parenting it.
            Last edited by mordentral; 05-25-2019, 08:50 PM.


            Consider supporting me on patreon

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

            Comment


              Hi Mordentral,

              Quick question: can the VRExpansion Plugin work on Oculus Quest? Is it dependant on Win64 architecture or SteamVR to work? I just want to know if it´s possible at all before attempting what it looks like a very painful process to port my game there

              Thanks!
              Last edited by jawatr; 05-26-2019, 06:43 AM.

              Comment


                Originally posted by jawatr View Post
                Hi Mordentral,

                Quick question: can the VRExpansion Plugin work on Oculus Quest? Is it dependant on Win64 architecture or SteamVR to work? I just want to know if it´s possible at all before attempting what it looks like a very painful process to port my game there

                Thanks!
                Yup, I packaged up the example template last night to test and after enabling multires and switching it to static lighting only it did just fine with all features intact. Obviously you would have a road ahead of you downscaling to fit the hardware but that is a given.

                It is my understanding though that they don't just let any and all games ship to quest and are gating new quest titles behind pre-approval.


                Consider supporting me on patreon

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

                Comment


                  Originally posted by mordentral View Post

                  Yup, I packaged up the example template last night to test and after enabling multires and switching it to static lighting only it did just fine with all features intact. Obviously you would have a road ahead of you downscaling to fit the hardware but that is a given.

                  It is my understanding though that they don't just let any and all games ship to quest and are gating new quest titles behind pre-approval.
                  That's great! Good to know there is light at the end of the tunel

                  Btw, I just tried to package for the Quest but I'm getting this error:

                  LogPlayLevel: [1/4] Module.VRExpansionPlugin.gen.2_of_10.cpp [armv7-es2]
                  LogPlayLevel: In file included from E:/UE4/GladiusQuest/Plugins/VRExpansionPlugin/VRExpansionPlugin/Intermediate/Build/Android/UE4/Development/VRExpansionPlugin/Module.VRExpansionPlugin.gen.2_of_10.cpp:1:
                  LogPlayLevel: In file included from E:/UE4/GladiusQuest/Intermediate/Build/Android/GladiusQuest/Development/Slate/SharedPCH.Slate.h:73:
                  LogPlayLevel: In file included from C:\Program Files\Epic Games\UE_4.22\Engine\Source\Runtime\Slate\Public\SlateSharedPCH.h:231:
                  LogPlayLevel: In file included from C:/Program Files/Epic Games/UE_4.22/Engine/Source/Runtime/CoreUObject/Public\UObject/Object.h:12:
                  LogPlayLevel: Error: C:/Program Files/Epic Games/UE_4.22/Engine/Source/Runtime/CoreUObject/Public\UObject/UObjectBaseUtility.h(483,14): error: incomplete type 'USkeletalMeshComponent' named in nested name specifier
                  LogPlayLevel: return IsA(T::StaticClass());

                  I have this same error 4 times, do you know what's happening?

                  Thanks again for your help

                  Comment


                    Hello again,

                    I noticed the other day that a static mesh component attached to a grip motion controller comp didn't appear to be getting late updates and so floats behind the controller. It wasn't particularly important so wasn't gonna ask and just hope I figure it out at some point in the future but after messing around with it more now curiosity has got the better of me! Why is this the case?

                    I read about the GatherLateUpdateComponenets function and can't see a reason why it's picking up all the other components except the static mesh. I also tried manually adding the mesh to the AdditionalLateUpdateComponenets but presumably whatever reason the static meshs aren't late updating anyway also means that doesn't do anything.

                    Comment


                      Originally posted by jawatr View Post

                      That's great! Good to know there is light at the end of the tunel

                      Btw, I just tried to package for the Quest but I'm getting this error:

                      LogPlayLevel: [1/4] Module.VRExpansionPlugin.gen.2_of_10.cpp [armv7-es2]
                      LogPlayLevel: In file included from E:/UE4/GladiusQuest/Plugins/VRExpansionPlugin/VRExpansionPlugin/Intermediate/Build/Android/UE4/Development/VRExpansionPlugin/Module.VRExpansionPlugin.gen.2_of_10.cpp:1:
                      LogPlayLevel: In file included from E:/UE4/GladiusQuest/Intermediate/Build/Android/GladiusQuest/Development/Slate/SharedPCH.Slate.h:73:
                      LogPlayLevel: In file included from C:\Program Files\Epic Games\UE_4.22\Engine\Source\Runtime\Slate\Public\SlateSharedPCH.h:231:
                      LogPlayLevel: In file included from C:/Program Files/Epic Games/UE_4.22/Engine/Source/Runtime/CoreUObject/Public\UObject/Object.h:12:
                      LogPlayLevel: Error: C:/Program Files/Epic Games/UE_4.22/Engine/Source/Runtime/CoreUObject/Public\UObject/UObjectBaseUtility.h(483,14): error: incomplete type 'USkeletalMeshComponent' named in nested name specifier
                      LogPlayLevel: return IsA(T::StaticClass());

                      I have this same error 4 times, do you know what's happening?

                      Thanks again for your help
                      No I don't, that is an issue with the generated source and kind of out of my control, it also isn't happening for me with a clean template. You aren't trying to nativize are you?


                      Consider supporting me on patreon

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

                      Comment


                        Originally posted by ctpeepee View Post
                        Hello again,

                        I noticed the other day that a static mesh component attached to a grip motion controller comp didn't appear to be getting late updates and so floats behind the controller. It wasn't particularly important so wasn't gonna ask and just hope I figure it out at some point in the future but after messing around with it more now curiosity has got the better of me! Why is this the case?

                        I read about the GatherLateUpdateComponenets function and can't see a reason why it's picking up all the other components except the static mesh. I also tried manually adding the mesh to the AdditionalLateUpdateComponenets but presumably whatever reason the static meshs aren't late updating anyway also means that doesn't do anything.
                        It should be? Everything in the template for the hands is attached and everything you grip that is allowed to late update late updates with it. I have never noticed anything not getting picked up by it.

                        Is it just the one object? Also its not attached to a scene component as a parent that is on the motion controller is it? Because they only get primitive children. Regardless manually adding it to the additonal late update components should always force it to be updated, almost sounds like you have multiple controllers?


                        Consider supporting me on patreon

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

                        Comment


                          Originally posted by mordentral View Post

                          No I don't, that is an issue with the generated source and kind of out of my control, it also isn't happening for me with a clean template. You aren't trying to nativize are you?
                          No, just trying to deploy, no nativization.

                          Would you mind sharing the binaries for Android please? I'm using the plug-in as-is, and if it's just a problem with the build i guess the pre-compiled binaries would solve this issue?

                          Thank you.

                          Comment


                            Originally posted by mordentral View Post

                            It should be? Everything in the template for the hands is attached and everything you grip that is allowed to late update late updates with it. I have never noticed anything not getting picked up by it.

                            Is it just the one object? Also its not attached to a scene component as a parent that is on the motion controller is it? Because they only get primitive children. Regardless manually adding it to the additonal late update components should always force it to be updated, almost sounds like you have multiple controllers?
                            Yeah it's really weird. I double checked your template and yeah everything works as expected. Seems like its got to be something specific to my project but no idea what it could be.

                            Tried again in my project but using your vive pawn migrated in with (I believe) no modifications and it behaves in the same manor as with my pawn. Skeletal mesh's childed to motion controller work fine, as does the collision sphere but any static mesh, text render don't. Tested gripping some static meshes put in level and they also do not late update.

                            No not attached to scene component, tried static mesh/text render as direct child of motion controller. What do you mean about multiple controllers?

                            Comment


                              Originally posted by jawatr View Post

                              No, just trying to deploy, no nativization.

                              Would you mind sharing the binaries for Android please? I'm using the plug-in as-is, and if it's just a problem with the build i guess the pre-compiled binaries would solve this issue?

                              Thank you.
                              Remove all of your intermediate folders, regenerate project files, and re-build first, its an issue with a generated header file and those get re-generated when you do that.


                              Consider supporting me on patreon

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

                              Comment


                                Originally posted by ctpeepee View Post

                                Yeah it's really weird. I double checked your template and yeah everything works as expected. Seems like its got to be something specific to my project but no idea what it could be.

                                Tried again in my project but using your vive pawn migrated in with (I believe) no modifications and it behaves in the same manor as with my pawn. Skeletal mesh's childed to motion controller work fine, as does the collision sphere but any static mesh, text render don't. Tested gripping some static meshes put in level and they also do not late update.

                                No not attached to scene component, tried static mesh/text render as direct child of motion controller. What do you mean about multiple controllers?
                                Try with a default motion controller, though I do not think you will see any difference.


                                Consider supporting me on patreon

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

                                Comment

                                Working...
                                X