Announcement

Collapse
No announcement yet.

VR Expansion Plugin

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

    Pushed a new commit to both the template and the master plugin


    Code:
    Updated to new branch code
    
    Added local only grips that execute only on the client calling them (do not replicate objects using this grip)
    
    Removed actor/component seperation in grips and made it all work off of single uobject base
    
    (this change lowers replication cost and makes the plugin more generic).
    Template was able to be made more generic now due to this (no actor/component switches anymore for most things).

    This update might have bugs that I haven't found yet, let me know.

    Should be able to work on feature sets now instead of the backend with this change.



    Template required blueprint changes after the plugin update, since there are no longer actor/component outputs on the grip structure it unlinks it wherever it was used and you have to link in the grippedobject instead.
    Last edited by mordentral; 01-08-2017, 03:59 PM.


    Consider supporting me on patreon

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

    Comment


      I know I should just DL and try it out myself.

      But I just wanted to make sure that everything was good to go (as far as you know) [MENTION=4285]mordentral[/MENTION] in concerns to actual replication for motion controllers in 4.14.2.

      That's pretty much all I would need it for really.

      Thanks.
      Website/Portfolio: http://www.VictorBurgosGames.com

      Join me on stream: https://www.twitch.tv/BurgosGames for UE4 Game Dev. If you need help, just stop by and ask!

      Wishlist Neko Ghost, Jump! a 2D/3D Puzzle-Platformer : https://store.steampowered.com/app/1...ko_Ghost_Jump/

      Comment


        https://j.gifs.com/k5jmPJ.gif

        Made with your plugin!

        Comment


          Is there any event to call when an actor is forced out of the grip?

          ie. Collides with wall / swung too fast

          Comment


            Originally posted by mordentral View Post
            I'll need you to try and find what process you have causing this if possible, spent a while trying to replicate and looking over that section of code but an object should never be able to make it past the initial grip call with KeepOriginalMovement still set to true.

            Ran with multiple objects set to that in multiplayer and none made it to the assert.
            Did you test with KeepOriginalMovement or ForceClientSide? Because I don't use KeepOriginalMovement on any of the objects, only ForceClientSideMovement. Maybe I didn't understand your response entirely, just making sure.

            Comment


              Originally posted by Fantasifall View Post
              Did you test with KeepOriginalMovement or ForceClientSide? Because I don't use KeepOriginalMovement on any of the objects, only ForceClientSideMovement. Maybe I didn't understand your response entirely, just making sure.
              All objects by default are ForceClientSideMovement, that is why I was confused about you running into KeepOriginalMovement being set to true. You are somehow either corrupting a struct or altering one without knowing it as even replicating an empty default struct it will be ForceClientSideMovement by default unless uninitialized (structs constructor never ran). Are you deleting objects a lot?

              Originally posted by Shanowzer View Post
              https://j.gifs.com/k5jmPJ.gif

              Made with your plugin!
              Nice, keep going!

              Originally posted by Shanowzer View Post
              Is there any event to call when an actor is forced out of the grip?

              ie. Collides with wall / swung too fast
              Colliding with a wall bColliding should be set to true but generally I didn't consider it because the actor/component itself will trigger an OnHit event and I didn't see a reason to duplicate engine functionality.

              Moving so fast that the object is farther than normal from the hand with physics grips there isn't currently anything to tell you that, for the auto drop I read the constraint length and if it is too large than drop the object, I could add a function to get this value if it is useful to you.

              Auto drop btw calls the OnDrop event like a normal drop.


              Consider supporting me on patreon

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

              Comment


                Getting this crash when trying the local grip, just letting you know

                Code:
                MachineId:C96834D044A593A10B3F38AE029137B0
                EpicAccountId:1c3b94657fc34a4a87cec5acbf729012
                
                Access violation - code c0000005 (first/second chance not available)
                
                UE4Editor_VRExpansionPlugin!UGripMotionControllerComponent::NotifyDrop_Implementation() [g:\unreal projects\runforcover\runforcover\plugins\mordentral-vrexpansionplugin-c3213dd8ce1e\source\vrexpansionplugin\private\gripmotioncontrollercomponent.cpp:1366]
                UE4Editor_VRExpansionPlugin!UGripMotionControllerComponent::DropGrip() [g:\unreal projects\runforcover\runforcover\plugins\mordentral-vrexpansionplugin-c3213dd8ce1e\source\vrexpansionplugin\private\gripmotioncontrollercomponent.cpp:1147]
                UE4Editor_VRExpansionPlugin!UGripMotionControllerComponent::DropActor() [g:\unreal projects\runforcover\runforcover\plugins\mordentral-vrexpansionplugin-c3213dd8ce1e\source\vrexpansionplugin\private\gripmotioncontrollercomponent.cpp:900]
                UE4Editor_VRExpansionPlugin!UGripMotionControllerComponent::DropObject() [g:\unreal projects\runforcover\runforcover\plugins\mordentral-vrexpansionplugin-c3213dd8ce1e\source\vrexpansionplugin\private\gripmotioncontrollercomponent.cpp:586]
                UE4Editor_VRExpansionPlugin!UGripMotionControllerComponent::OnUnregister() [g:\unreal projects\runforcover\runforcover\plugins\mordentral-vrexpansionplugin-c3213dd8ce1e\source\vrexpansionplugin\private\gripmotioncontrollercomponent.cpp:94]
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_CoreUObject
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_Core
                UE4Editor_Core
                UE4Editor_Core
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_Engine
                UE4Editor_UnrealEd
                UE4Editor_UnrealEd
                UE4Editor
                UE4Editor
                UE4Editor
                UE4Editor
                UE4Editor
                kernel32
                ntdll
                Last edited by UE4Hobbyist; 01-09-2017, 04:33 PM.

                Comment


                  Originally posted by UE4Hobbyist View Post
                  Getting this crash when trying the local grip, just letting you know
                  I'll look into it, but could you please wrap that in code tags instead of quote so it doesn't take the entire page?


                  Consider supporting me on patreon

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

                  Comment


                    Originally posted by mordentral View Post
                    I'll look into it, but could you please wrap that in code tags instead of quote so it doesn't take the entire page?
                    Fixed, accidentally moved deleting a locally gripped object ahead of using it prior to deletion >.<.

                    Plugin and template are updated with the fix, also fixed an oversight in the template where it wasn't checking for the locally gripped object on drop.


                    Consider supporting me on patreon

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

                    Comment


                      Works great now!

                      Comment


                        Originally posted by mordentral View Post
                        All objects by default are ForceClientSideMovement, that is why I was confused about you running into KeepOriginalMovement being set to true. You are somehow either corrupting a struct or altering one without knowing it as even replicating an empty default struct it will be ForceClientSideMovement by default unless uninitialized (structs constructor never ran). Are you deleting objects a lot?
                        I am. Every time a player dies, I drop his weapons (so that he can't shoot, it's also a good indication that he died), and then I destroy them. We did some playtesting today and the assert was thrown randomly while we were just teleporting around. I am setting the members of the InterfaceProperties without an authority switch at begin play, could this cause any issues?

                        Comment


                          Originally posted by Fantasifall View Post
                          I am. Every time a player dies, I drop his weapons (so that he can't shoot, it's also a good indication that he died), and then I destroy them. We did some playtesting today and the assert was thrown randomly while we were just teleporting around. I am setting the members of the InterfaceProperties without an authority switch at begin play, could this cause any issues?
                          Yeah that could possibly be an issue if it is only being set on one side, if you are resetting it to KeepOriginalMovement somehow for instance after it has already been gripped.

                          Like I said, the struct itself auto sets to ForceClientSideMovement when its constructor is called, the only way for it to bypass that is you to be manually setting it or somehow passing in an empty struct entirely with uninitialized values.
                          Last edited by mordentral; 01-09-2017, 09:28 PM.


                          Consider supporting me on patreon

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

                          Comment


                            Colliding with a wall bColliding should be set to true but generally I didn't consider it because the actor/component itself will trigger an OnHit event and I didn't see a reason to duplicate engine functionality.

                            Moving so fast that the object is farther than normal from the hand with physics grips there isn't currently anything to tell you that, for the auto drop I read the constraint length and if it is too large than drop the object, I could add a function to get this value if it is useful to you.

                            Auto drop btw calls the OnDrop event like a normal drop.
                            is AutoDrop part of the new commit you pushed out? I can't find it in the one back a commit.

                            Currently whenever the player drops a key item (one that is spawned in with them, ie sword / gun / something) it attaches back to their hip.

                            The problem is that when my player is moving and runs into a wall / swings the weapon too fast it stops grabbing it but doesnt reset it to the hip/socket

                            Comment


                              Originally posted by mordentral View Post
                              Yeah that could possibly be an issue if it is only being set on one side, if you are resetting it to KeepOriginalMovement somehow for instance after it has already been gripped.

                              Like I said, the struct itself auto sets to ForceClientSideMovement when its constructor is called, the only way for it to bypass that is you to be manually setting it or somehow passing in an empty struct entirely with uninitialized values.
                              That's exactly why I am NOT using an auth switch on begin play, to make sure it's set on both server and client. I am only playtesting with two grippable actors, and they have the same logic... I never change members after the initial initialization that happens on begin play.

                              Comment


                                Question: has the plugin been tested with grabbing destructible objects ?
                                VR/AR Development [Portfolio | YouTube | LinkedIn]

                                Comment

                                Working...
                                X