Announcement

Collapse
No announcement yet.

VR Expansion Plugin

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

    Originally posted by Teklarit View Post

    No, I use windows. (Last VS2019 updates, last windows updates...)
    I have already written you in private messages.
    Pushed an update that fixed this, there were some weird edge cases where the compiler wasn't fully walking the include path so it could miss the new macro.


    Consider supporting me on patreon

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

    Comment


      Originally posted by mordentral View Post

      Disable the steamvr plugin is all.
      I just tried to disable the SteamVR plugin and package for Quest, and got a bunch of errors seemingly related to SteamVR dependencies in Vive_PawnCharacter:

      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display:
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: Warning/Error Summary (Unique only)
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: -----------------------------------
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] In use pin Return Value no longer exists on node Get Open VRHMDType . Please refresh node or break links to remove pin. from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] Could not find a function named "GetOpenVRHMDType" in 'Vive_PawnCharacter'.
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): Make sure 'Vive_PawnCharacter' has been compiled for Get Open VRHMDType from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] In use pin On Success no longer exists on node Get VRDevice Model and Texture . Please refresh node or break links to remove pin. from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] In use pin On Failure no longer exists on node Get VRDevice Model and Texture . Please refresh node or break links to remove pin. from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] In use pin <Unnamed> no longer exists on node Get VRDevice Model and Texture . Please refresh node or break links to remove pin. from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] In use pin Procedural Mesh Components to Fill no longer exists on node Get VRDevice Model and Texture . Please refresh node or break links to remove pin. from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] In use pin Override Device ID no longer exists on node Get VRDevice Model and Texture . Please refresh node or break links to remove pin. from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] In use pin Return Value no longer exists on node Get VRDevice Model and Texture . Please refresh node or break links to remove pin. from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] Could not find a function named "GetVRDeviceModelAndTexture" in 'Vive_PawnCharacter'.
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): Make sure 'Vive_PawnCharacter' has been compiled for Get VRDevice Model and Texture from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] In use pin On Succeeded no longer exists on node Get VRDevice Property String . Please refresh node or break links to remove pin. from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] In use pin On Failed no longer exists on node Get VRDevice Property String . Please refresh node or break links to remove pin. from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] In use pin <Unnamed> no longer exists on node Get VRDevice Property String . Please refresh node or break links to remove pin. from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] In use pin Device ID no longer exists on node Get VRDevice Property String . Please refresh node or break links to remove pin. from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] In use pin String Value no longer exists on node Get VRDevice Property String . Please refresh node or break links to remove pin. from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogBlueprint: Error: [Compiler Vive_PawnCharacter] Could not find a function named "GetVRDevicePropertyString" in 'Vive_PawnCharacter'.
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): Make sure 'Vive_PawnCharacter' has been compiled for Get VRDevice Property String from Source: /Game/VRExpansion/Vive/Vive_PawnCharacter.Vive_PawnCharacter
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogUObjectGlobals: Warning: While loading 'C:/dev/Unreal/vrexppluginexample/Content/VRExpansion/Vive/BP_Teleport_Controller.uasset' failed to load '/Script/OpenVRExpansionPlugin': Can't find file.
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: LogUObjectGlobals: Warning: While loading 'C:/dev/Unreal/vrexppluginexample/Content/VRExpansion/Vive/Vive_PawnCharacter.uasset' failed to load '/Script/OpenVRExpansionPlugin': Can't find file.
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display:
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display: Failure - 22 error(s), 106 warning(s)
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogInit: Display:
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)):
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): Execution of commandlet took: 8.85 seconds
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): LogContentStreaming: Display: There are 1 unreleased StreamingManagers
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): Took 18.7521263s to run UE4Editor-Cmd.exe, ExitCode=1
      UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): ERROR: Cook failed.

      Comment


        Originally posted by ITNoetic View Post

        I just tried to disable the SteamVR plugin and package for Quest, and got a bunch of errors seemingly related to SteamVR dependencies in Vive_PawnCharacter:
        You don't need to disable the steamvr plugin to package for quest, the only nodes of mine being used that reference steamvr have compile flags that run blank logic on android platforms. So you can package and test on it freely as is.

        If you were looking to go beyond just packaging for quest and wanted to launch for the oculus store, then yes, you will have disable the OpenVRExpansionPlugin as well and bypass the nodes in the big red box in the character event graph, Oculus doesn't allow any trace of steamvr in their store depots.

        Then again, you shouldn't be trying to use the template character as is on quest anyway, a lighter weight one would be better off since that one shows so much additional logic.


        Consider supporting me on patreon

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

        Comment


          Originally posted by mordentral View Post

          Nimsony's work and boneworks are vastly different, boneworks still has a capsule, your legs don't really "collide", it uses mostly physical arms. Nimsony attached a camera to a fully physics driven body mesh and held it together with contraints and drove it with physics forces.

          Sure you "can" do it, going to be a ton of work tweaking to get it in a state that you like. They had a helping hand with a common unity physical animation framework that took a lot of the pain out of it.

          You wouldn't be basing it off of the character class most likely though unless you wanted to ignore the pre-built movement anyway or deal with a lot of custom force application to it.

          Ok. Ill just go the boneworks route and have physical arms. Does anyone here have any links to papers/tutorials/anything surrounding the topic, and similar implementations of it? Its ok if its different that what boneworks is doing, as long as the arms are simulated, its fine.

          On an unrelated note, is there a suggestion thread?
          If not, what i suggest is a bool in the VRDial component, called something like "enable array snap points" What it would do, would activate an array of floats. Instead of using snap points, it would use these values as snap points. Allowing someone to have snap points at, say, 12, 44 and 79 degrees. Instead of having a uniform distance between them. Basically, what im trying to explain is that you can have different differences between points other than a singular angle distance. I have a mockup working, but there are certain cases where it craps out, and permanently gets stuck. Having a plugin implementation of this would be great.
          Last edited by NebulyDev; 05-19-2020, 11:30 AM.

          Comment


            Originally posted by NebulyDev View Post


            Ok. Ill just go the boneworks route and have physical arms. Does anyone here have any links to papers/tutorials/anything surrounding the topic, and similar implementations of it? Its ok if its different that what boneworks is doing, as long as the arms are simulated, its fine.

            On an unrelated note, is there a suggestion thread?
            If not, what i suggest is a bool in the VRDial component, called something like "enable array snap points" What it would do, would activate an array of floats. Instead of using snap points, it would use these values as snap points. Allowing someone to have snap points at, say, 12, 44 and 79 degrees. Instead of having a uniform distance between them. Basically, what im trying to explain is that you can have different differences between points other than a singular angle distance. I have a mockup working, but there are certain cases where it craps out, and permanently gets stuck. Having a plugin implementation of this would be great.
            You know...I normally put requests like that on my list of items to get to someday, but I had some time over lunch today and it sounded like fun, so I threw it in with the latest updates.

            https://vreue4.com/4-25?section=dial...ing-05-19-2020


            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 don't need to disable the steamvr plugin to package for quest, the only nodes of mine being used that reference steamvr have compile flags that run blank logic on android platforms. So you can package and test on it freely as is.

              If you were looking to go beyond just packaging for quest and wanted to launch for the oculus store, then yes, you will have disable the OpenVRExpansionPlugin as well and bypass the nodes in the big red box in the character event graph, Oculus doesn't allow any trace of steamvr in their store depots.

              Then again, you shouldn't be trying to use the template character as is on quest anyway, a lighter weight one would be better off since that one shows so much additional logic.
              Thanks for the help. I just wanted to try it out on Quest. It ran like **** whenever I wasn't facing a wall with nothing behind it, and it crashes the HMD after a few minutes, but it definitely works.

              Comment


                Originally posted by ITNoetic View Post

                Thanks for the help. I just wanted to try it out on Quest. It ran like **** whenever I wasn't facing a wall with nothing behind it, and it crashes the HMD after a few minutes, but it definitely works.
                Build the lightning, I keep the lighting dynamic in the example project to reduce its memory footprint.

                Also the mobile scalability settings are not set for quest.


                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 know...I normally put requests like that on my list of items to get to someday, but I had some time over lunch today and it sounded like fun, so I threw it in with the latest updates.

                  https://vreue4.com/4-25?section=dial...ing-05-19-2020

                  its so weird having something you suggest end up exactly as you image. moreso when it gets added the same day. Thanks dude.

                  Comment


                    Originally posted by NebulyDev View Post


                    Ok. Ill just go the boneworks route and have physical arms. Does anyone here have any links to papers/tutorials/anything surrounding the topic, and similar implementations of it? Its ok if its different that what boneworks is doing, as long as the arms are simulated, its fine.
                    You can have a physical "body" beyond the arms, just be aware that it will be limited in capability.

                    I've been working on this myself, and Boneworks has quite a few limitations in it's implementation, but I generally find it convincing enough that you wouldn't need to compensate for those limitations unless it was something specific you wanted.

                    Boneworks' collision capsules are less expansive than you think. There's the chest, feet, hands and head, but the arms and legs aren't completely connected by collision - they extend partially beyond the ankles and wrists, but nothing up until the shoulders and pelvis. You can verify this in-game, just take an item and try to shove it through various parts of your body. You can't even receive damage on these locations, go ahead and shoot right at your bicep. This allows the body to have collision without that collision also impacting the collision and IK of the feet and hands.

                    The feet are also almost completely simulated. The only animations they have in place are cardinal directions and turn-in-place, no transitions for crouching or jumping, just manipulation of the pelvis as far as I can tell.

                    As far as an actual implementation, you can look at how ALV4 is doing foot IK (https://www.unrealengine.com/marketp...tion-system-v1), and the simplest version of the hands is just a FABRIK node that affects the hands from the clavicle to the location of the motion controllers (potentially with an offset.) This can lead to some weirdness, however, and Boneworks has a more sophisticated solve for their IK to approximate an actual persons' hand motions (for instance, flaring of elbows when hands are parallel to floor.) You'll also see a lot of "snapping" if you don't lerp, and there's a chance your arms are longer than the models, which will result in your hands coming totally detached. You'll also look pretty dumb in third person - take the third-person view in Pavlov, for example, where your arms clip into your body and generally don't look very real.

                    If you're looking for an example on a better hand IK solve, then you're in a club with many members. There's a paid package on the marketplace, but I'm not sure how good it actually is without being able to try and break it. Mordentral has a promising-looking implementation he showed off on his Youtube, but that's a "when it's ready" kind of thing, and I know he's been busy with other work.

                    If the body IK isn't blocking progress on your project right now, and you don't feel like tackling it yourself, then I'd suggest perhaps working on other aspects until Mordentral can save us from ourselves.
                    Last edited by Benjamin Paine; 05-19-2020, 02:41 PM.

                    Comment


                      Originally posted by mordentral View Post

                      Build the lightning, I keep the lighting dynamic in the example project to reduce its memory footprint.

                      Also the mobile scalability settings are not set for quest.
                      Looks like I'm outta luck. The editor crashes as soon as I lower the engine scalability settings. If I go one by one, I can set everything to low except Effects, which crashes the editor if I try to go below High. Let me see what this is like, in any case...

                      Comment


                        Benjamin Paine You can not use IK and Physic at the same time, it will look so weird. And 1 more thing, i suggest using CCDIK over Fabrik for arm IK. Ue4 only implement joint rotation limit in CCDIK.

                        Comment


                          Originally posted by HienNguyen27 View Post
                          Benjamin Paine You can not use IK and Physic at the same time, it will look so weird. And 1 more thing, i suggest using CCDIK over Fabrik for arm IK. Ue4 only implement joint rotation limit in CCDIK.
                          That is not true, you can use the PhysicalAnimationComponent to drive simulated bones to try and match the final animation pose. The component is just very simplistic currently is the main issue.
                          I built the welded bone driver on top of it so that I could go in and extend it eventually.


                          Also CCDIK is a spherical joint limit, so its quality is still fairly low for good VR IK.


                          Consider supporting me on patreon

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

                          Comment


                            Originally posted by mordentral View Post

                            That is not true, you can use the PhysicalAnimationComponent to drive simulated bones to try and match the final animation pose. The component is just very simplistic currently is the main issue.
                            I built the welded bone driver on top of it so that I could go in and extend it eventually.


                            Also CCDIK is a spherical joint limit, so its quality is still fairly low for good VR IK.
                            No, you can not. I had issue using it in my game. Normally, it worked well, but when the lowerarm collide with world object, the hand bone still go out to reach the final position. I did setup the constraint of the lowerarm to hand with lock position, but it not worked. About CCDIK, i did not tell anything about perfect solution there! And it not LOW there. I can tell that you did not test it. Combine it with the right pose, and the anim IK will looked good.

                            BTW, we are developing a physic system that player can interact with everything in VR. We begin with climbing system https://www.youtube.com/watch?v=aCPE...ature=youtu.be
                            This is not something like addWorldOffset, fully physic base climb. Also, player hand can push, pull the body.
                            Last edited by HienNguyen27; 05-21-2020, 05:30 AM.

                            Comment


                              Originally posted by HienNguyen27 View Post

                              No, you can not. I had issue using it in my game. Normally, it worked well, but when the lowerarm collide with world object, the hand bone still go out to reach the final position. I did setup the constraint of the lowerarm to hand with lock position, but it not worked. About CCDIK, i did not tell anything about perfect solution there! And it not LOW there. I can tell that you did not test it. Combine it with the right pose, and the anim IK will looked good.

                              BTW, we are developing a physic system that player can interact with everything in VR. We begin with climbing system https://www.youtube.com/watch?v=aCPE...ature=youtu.be
                              This is not something like addWorldOffset, fully physic base climb. Also, player hand can push, pull the body.
                              Then you set your physical animation component up as world based and not local space. I have multiple users using it just fine, even though it is simplistic, the basic concept works, its just driving bones with constraints on kinematic actors.
                              Last edited by mordentral; 05-21-2020, 08:15 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

                                Then you set your physical animation component up as world based and not local space. I have multiple users using it just fine, even though it is simplistic, the basic concept works, its just driving bones with constraints on kinematic actors.
                                Local or not, the position of the controller is the same as the calculation. But i found 1 thing that is very interesting. I think it the bug of animation layer! After i copy paste all the node to anim graph, it work just fine lol, and i still using world space!

                                Comment

                                Working...
                                X