Announcement

Collapse
No announcement yet.

Advanced 6DOF movement

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

    #61
    Originally posted by moookiexl View Post
    Yes, there is something screwy about physics in packaged projects in 4.15
    On my PC it only seems to affect physics when there's multiple instances of the game running on same computer (even when they're not networked). I'm still trying to figure out what exactly causes it and how to get around it.
    The dedicated server was running on my laptop and the client on my desktop pc. Everything works fine if i play in editor with multiple clients, but unfortunately the results between play in editor and packaged games are so vastly different, that i ask myself why i even test in editor...

    Comment


      #62
      Originally posted by adipFTW View Post
      The dedicated server was running on my laptop and the client on my desktop pc. Everything works fine if i play in editor with multiple clients, but unfortunately the results between play in editor and packaged games are so vastly different, that i ask myself why i even test in editor...
      OK, I believe I found a workaround.

      Wasn't easy. As you can see yourself, logs gave me zero indication as to where the problem could possibly be, except that it's in some way related to PhysX. So I went through everything that did anything with it, commenting it out line by line to find where it comes from. No effect. Finally, not knowing what to do next, i dug out an old unreleased project of mine, that worked similar to SixDOF, and should in theory have same problem in UE 4.15
      It didn't.

      So I went through *that*, comparing the way it applies forces to SixDOF. It was exactly the same. What the hell?
      So I went through parts that should NOT be related to physx. And there finally was the difference. That other project used PhysxBody to get transfroms and velocities and so on, while SixDOF doesn't.

      That's right, not using PhysX was breaking PhysX. Unless you're in editor, then it didn't, for reasons I don't understand.

      So anyway, I can finally fix it now. New version will be available probably tomorrow. Of course I can only fix it in SixDOF, if you have something else in your game that's affected, it will of course remain broken.

      PS: that other unreleased plugin, it's a simple hovercraft simulation for WipEout clones and similar, too primitive to put on marketplace really. Would anyone like if i put it out somewhere here as open source?

      EDIT: Fix is out now, grab SixDOFMovement_111_415.zip
      Last edited by moookiexl; 02-19-2017, 10:33 PM.

      Comment


        #63
        Originally posted by moookiexl View Post
        OK, I believe I found a workaround.

        Wasn't easy. As you can see yourself, logs gave me zero indication as to where the problem could possibly be, except that it's in some way related to PhysX. So I went through everything that did anything with it, commenting it out line by line to find where it comes from. No effect. Finally, not knowing what to do next, i dug out an old unreleased project of mine, that worked similar to SixDOF, and should in theory have same problem in UE 4.15
        It didn't.

        So I went through *that*, comparing the way it applies forces to SixDOF. It was exactly the same. What the hell?
        So I went through parts that should NOT be related to physx. And there finally was the difference. That other project used PhysxBody to get transfroms and velocities and so on, while SixDOF doesn't.

        That's right, not using PhysX was breaking PhysX. Unless you're in editor, then it didn't, for reasons I don't understand.

        So anyway, I can finally fix it now. New version will be available probably tomorrow. Of course I can only fix it in SixDOF, if you have something else in your game that's affected, it will of course remain broken.

        PS: that other unreleased plugin, it's a simple hovercraft simulation for WipEout clones and similar, too primitive to put on marketplace really. Would anyone like if i put it out somewhere here as open source?

        EDIT: Fix is out now, grab SixDOFMovement_111_415.zip
        Youre a god man, dishing out fixes so fast

        My good news is, that i (temporarily) have control over the ship again, but i lose it after a few seconds again. The error still gets spammed in the dedicated server log, but we dont use anything else with physics except SixDOF, so it shouldnt show up anymore right?
        We converted the project from 4.14 to 4.15, do you think there could have been conversion problems involved in this?

        Comment


          #64
          Originally posted by adipFTW View Post
          Youre a god man, dishing out fixes so fast

          My good news is, that i (temporarily) have control over the ship again, but i lose it after a few seconds again. The error still gets spammed in the dedicated server log, but we dont use anything else with physics except SixDOF, so it shouldnt show up anymore right?
          We converted the project from 4.14 to 4.15, do you think there could have been conversion problems involved in this?
          No idea. I'm unable to get the bug to show up in my tests now. Can you send me the project again? I'll try to find out what's wrong, but can't guarantee anything, this stuff is impossible to debug with conventional methods, it's basically trial and error.

          The only lead i have is "Added sanitization code around PhysX flags and refactored the ways flags are managed through a single code path." from 4.15 changelog.
          Last edited by moookiexl; 02-20-2017, 10:16 AM.

          Comment


            #65
            OK, adipFTW's problem solved via PM

            For everyone else:
            If your project is converted from earlier version of UE, check in project settings if physics substepping isn't turned off. It was off by default in previous version, and it carries over to 4.15
            Currently SixDOF requires it to be on if you're using physics mode in packaged game, i'll make it work without it in next update.

            Comment


              #66
              1.2 released.

              This should fix glitchy physics in exported projects for good.
              I also improved acceleration model when inertia is set to zero. This now correctly results in instant velocity change. (except in Frictionless - there it results in no change of velocity, because in frictionless speed limit doesn't apply, and infinte speed is...unsupported )
              I also added some additional checks for things that might cause the plugin to behave weird, like when it's incorrectly attached etc.

              NOTE: since this isn't mentioned anywhere in documentation, here's how to get physics settings:
              #include "Classes/PhysicsEngine/PhysicsSettings.h"

              const UPhysicsSettings* Settings = GetDefault<UPhysicsSettings>();
              if (Settings) {
              Substep = Settings->bSubstepping;
              //other physics settnigs are also here
              }
              (thanks Rama for hint)
              Last edited by moookiexl; 02-22-2017, 05:20 PM.

              Comment


                #67
                Hey there, I'm back needing more help

                [2017.03.07-10.39.35:665][ 0]LogStreaming:Error: Couldn't find file for package /Script/SixDOFMovement requested by async loading code. NameToLoad: /Script/SixDOFMovement
                [2017.03.07-10.39.35:705][ 0]LogStreaming:Error: ****DumpDependencies [Dependencies]:
                [2017.03.07-10.39.35:705][ 0]LogStreaming:Error: Export 791 SixDOFMovement_GEN_VARIABLE
                [2017.03.07-10.39.35:705][ 0]LogStreaming:Error: Linker is ../../../WarForOrion/Content/Blueprints/Spaceship/BP_Spaceship.uasset
                [2017.03.07-10.39.35:705][ 0]LogStreaming:Error: Dep S_BEFORE_S Export 728 BP_Spaceship_C (class BlueprintGeneratedClass)
                [2017.03.07-10.39.35:705][ 0]LogStreaming:Error: Dep C_BEFORE_C Export 728 BP_Spaceship_C (class BlueprintGeneratedClass)
                Fatal error: [File:C:\Program Files (x86)\Epic Games\Source4.15\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp] [Line: 2527]
                Missing Dependency, request for SixDOFMovementComponent but it hasn't been created yet.
                [2017.03.07-10.39.35:707][ 0]LogLinux:Error: appError called: Assertion failed: Assertion failed: [File:C:\Program Files (x86)\Epic Games\Source4.15\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp] [Line: 2527]
                Missing Dependency, request for SixDOFMovementComponent but it hasn't been created yet.
                I'm trying to deploy my server to linux, but this happens. Any idea to what I can do?

                Comment


                  #68
                  Originally posted by adipFTW View Post
                  Hey there, I'm back needing more help

                  I'm trying to deploy my server to linux, but this happens. Any idea to what I can do?
                  I don't know, I'm not a Linux guy. From the log it looks like streaming is trying to load something that uses sixdofmovement, but it hasn't been loaded yet.
                  Maybe it's related to this: https://forums.unrealengine.com/show...rything-so-far
                  But maybe not, again, this is something you'd better ask someone who knows more about Linux and dedicated servers.

                  Comment


                    #69
                    Originally posted by moookiexl View Post
                    I don't know, I'm not a Linux guy. From the log it looks like streaming is trying to load something that uses sixdofmovement, but it hasn't been loaded yet.
                    Maybe it's related to this: https://forums.unrealengine.com/show...rything-so-far
                    But maybe not, again, this is something you'd better ask someone who knows more about Linux and dedicated servers.
                    This thread actually made the server start and I can connect to it! But as soon as I use something related to the SixDOF plugin, the connection gets closed and the server throws an error in the log. Do you use any windows specfic code in your plugin?

                    Comment


                      #70
                      Originally posted by adipFTW View Post
                      This thread actually made the server start and I can connect to it! But as soon as I use something related to the SixDOF plugin, the connection gets closed and the server throws an error in the log. Do you use any windows specfic code in your plugin?
                      As far as I know no, there's nothing windows-specific in my code. Can you paste a log of what the server is throwing?

                      Comment


                        #71
                        Originally posted by moookiexl View Post
                        As far as I know no, there's nothing windows-specific in my code. Can you paste a log of what the server is throwing?
                        [2017.03.07-16.20.53:342][319]LogScript:Warning: Accessed None trying to read property SixDOFMovement
                        BP_GravityField_C /Game/Maps/Level_ASteroidRaceTrack.Level_AsteroidRaceTrack:PersistentLevel.BP_GravityField4
                        Function /Game/Blueprints/Miscellaneous/BP_GravityField.BP_GravityField_C:ChangeGravity:0276
                        [2017.03.07-16.20.53:342][319]LogScript:Warning: Script call stack:
                        Function /Game/Blueprints/Miscellaneous/BP_GravityField.BP_GravityField_C:BndEvt__GravityField_K2Node_ComponentBoundEvent_0_ComponentBeginOverlapSignature__DelegateSignature
                        Function /Game/Blueprints/Miscellaneous/BP_GravityField.BP_GravityField_C:ExecuteUbergraph_BP_GravityField
                        Function /Game/Blueprints/Miscellaneous/BP_GravityField.BP_GravityField_C:ChangeGravity

                        [2017.03.07-16.21.09:699][809]LogNetPackageMap:Warning: UPackageMapClient::InternalLoadObject: Unable to resolve default guid from client: PathName: SixDOFMovement, ObjOuter: /Game/Maps/Level_ASteroidRaceTrack.Level_AsteroidRaceTrack:PersistentLevel.BP_Spaceship_C_1
                        [2017.03.07-16.21.09:700][809]LogNetTraffic:Error: ReadContentBlockHeader: Client attempted to create sub-object. Actor: BP_Spaceship_C_1
                        [2017.03.07-16.21.09:700][809]LogNet:Error: UActorChannel::ReadContentBlockPayload: ReadContentBlockHeader FAILED. Bunch.IsError() == TRUE. Closing connection. RepObj: NULL, Channel: 29
                        [2017.03.07-16.21.09:700][809]LogNet:Error: UActorChannel::ReceivedBunch: ReadContentBlockPayload FAILED. Bunch.IsError() == TRUE. Closing connection. RepObj: NULL, Channel: 29
                        [2017.03.07-16.21.09:700][809]LogNet: UNetConnection::Close: [UNetConnection] RemoteAddr: 76561198061912061:7777, Name: SteamNetConnection_1, Driver: GameNetDriver SteamNetDriver_0, IsServer: YES, PC: BP_PlayerController_C_1, Owner: BP_PlayerController_C_1, Channels: 64, Time: 2017.03.07-16.21.09
                        [2017.03.07-16.21.09:700][809]LogNet: UChannel::Close: Sending CloseBunch. ChIndex == 0. Name: [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 76561198061912061:7777, Name: SteamNetConnection_1, Driver: GameNetDriver SteamNetDriver_0, IsServer: YES, PC: BP_PlayerController_C_1, Owner: BP_PlayerController_C_1
                        [2017.03.07-16.21.09:700][809]LogNetTraffic:Error: UChannel::ReceivedRawBunch: Bunch.IsError() after ReceivedNextBunch 1
                        [2017.03.07-16.21.09:700][809]LogNetTraffic:Error: Received corrupted packet data from client 76561198061912061. Disconnecting.
                        [2017.03.07-16.21.09:734][810]LogScript:Warning: Accessed None trying to read property SixDOFMovement
                        BP_GravityField_C /Game/Maps/Level_ASteroidRaceTrack.Level_AsteroidRaceTrack:PersistentLevel.BP_GravityField4
                        Function /Game/Blueprints/Miscellaneous/BP_GravityField.BP_GravityField_CisableGravity:02F4
                        [2017.03.07-16.21.09:734][810]LogScript:Warning: Script call stack:
                        Function /Game/Blueprints/Miscellaneous/BP_GravityField.BP_GravityField_C:BndEvt__GravityField_K2Node_ComponentBoundEvent_1_ComponentEndOverlapSignature__DelegateSignature
                        Function /Game/Blueprints/Miscellaneous/BP_GravityField.BP_GravityField_C:ExecuteUbergraph_BP_GravityField
                        Function /Game/Blueprints/Miscellaneous/BP_GravityField.BP_GravityField_CisableGravity
                        Let me know if you need clarification on anything.

                        Comment


                          #72
                          Originally posted by adipFTW View Post
                          Warning: Accessed None trying to read property SixDOFMovement
                          Ok, so to me it looks like sixdof doesn't exist on the server. Did you compile server binaries with it?

                          Comment


                            #73
                            The windows dedicated server works flawless, so I'm assuming I am.

                            I followed Epic's documentation on how to set up cross-compiling for linux on windows and i dont get any errors while compiling, but after that the problems i mentioned arised when deploying it.

                            Comment


                              #74
                              Originally posted by adipFTW View Post
                              The windows dedicated server works flawless, so I'm assuming I am.

                              I followed Epic's documentation on how to set up cross-compiling for linux on windows and i dont get any errors while compiling, but after that the problems i mentioned arised when deploying it.
                              OK, so now I have absolutely no idea what can possibly be wrong. If there was anything windows specific in code, it wouldn't compile, or it would crash the server, not just disconnect clients.
                              Just out of curiosity, what happens if you try to build and run a linux client?

                              Comment


                                #75
                                Originally posted by moookiexl View Post
                                OK, so now I have absolutely no idea what can possibly be wrong. If there was anything windows specific in code, it wouldn't compile, or it would crash the server, not just disconnect clients.
                                Just out of curiosity, what happens if you try to build and run a linux client?
                                Unfortunately, I only have a rented VPS to run the dedicated server and no machine with a gui, so I cant try at the moment.

                                Comment

                                Working...
                                X