Announcement

Collapse
No announcement yet.

Advanced 6DOF movement

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

    Originally posted by keyboardWillie View Post
    Nice plugin, I am playing around with it. Looks well implemented; I am sure I will come up with some further questions. Would be interested in checking out that Wipeout racer framework.. Any chance you might rebuild it for 4.25? For some reason I'm having trouble rebuilding plugins here ATM. Your existing plugin, my C++ based project, and other projects seem to be ok. But I have errors rebuilding your or other plugins for some reason that currently eludes me.. =\

    Thanks, hope you are well!
    Is the current 4.25 build from the launcher working correctly?
    I have no idea what could be causing problems with recompiling for you, on my end it was a straight recompile without any issues. Does it show any errors?

    Comment


      Hey, I bought this plugin and wondered If I could request a feature?

      I've been rebuilding a prototype for a space combat game using this component. I had the movement all worked out before, but replication was horrible! That's where 6dof comes in.

      Essentially the ship is controlled in 3D space by a directional mouse click. On click the the camera forward vector sets an arrow world rotation. The ship then rInterps to the arrow on the Pitch and Yaw. A manual value for the Roll is fed in to create the effect of banking into the turn. In this game there is an 'UP', so the roll always returns to the horizon like an auto level.

      Currently there are three ways to recreate this with your plugin -

      1) Using the autopilot look at vector instead of the arrow, and auto level (but adapting mid turn to create the banking effect). Problem: The Look At function finds the shortest route around a sphere to get to the target vector, so if you do a right turn of say 120 degrees with a little increase of pitch, the nose of the ship lifts up and over the rotation sphere during the turn and back down to the target vector, rather than a flat turn with a continuous small pitch increase.

      2) Using pitch and yaw inputs calculated by the rotation to the arrow, to allow an eased rotation to the vector (and auto level for horizon and roll as above). Essentially a manual rInterp. This solves the nose lifting issue, as the only pitch input is just enough to hit the desired pitch once the turn is complete. Problem: once you start facing vertical up or down, the axis' reverse inputs (due to the rotational calculation) and can begin a seesaw input wobble. This also confuses the autolevel which can result in an uncontrolled spin. Not a problem when using Look At.

      3) Send all inputs to the server and use torque and force to manipulate the actor.
      This is essentially what I was doing before this plugin. Problem: messy as hell, no input replication, too much server calculation.

      So i'm wondering how hard it would be to implement a feature of the rotation autopilot to be able to select between 'shortest total distance' (as it works now), and 'shortest by axis' (allowing it to calculate the axis rotations independently). Avoiding that nose lift is all I really need to do!

      I'll happily share an example project or something if it needs demonstrating. Honestly aside from that though, the plugin is great, so thank you!

      Comment


        Originally posted by nikothepirate View Post
        Hey, I bought this plugin and wondered If I could request a feature?

        I've been rebuilding a prototype for a space combat game using this component. I had the movement all worked out before, but replication was horrible! That's where 6dof comes in.

        Essentially the ship is controlled in 3D space by a directional mouse click. On click the the camera forward vector sets an arrow world rotation. The ship then rInterps to the arrow on the Pitch and Yaw. A manual value for the Roll is fed in to create the effect of banking into the turn. In this game there is an 'UP', so the roll always returns to the horizon like an auto level.

        Currently there are three ways to recreate this with your plugin -

        1) Using the autopilot look at vector instead of the arrow, and auto level (but adapting mid turn to create the banking effect). Problem: The Look At function finds the shortest route around a sphere to get to the target vector, so if you do a right turn of say 120 degrees with a little increase of pitch, the nose of the ship lifts up and over the rotation sphere during the turn and back down to the target vector, rather than a flat turn with a continuous small pitch increase.

        2) Using pitch and yaw inputs calculated by the rotation to the arrow, to allow an eased rotation to the vector (and auto level for horizon and roll as above). Essentially a manual rInterp. This solves the nose lifting issue, as the only pitch input is just enough to hit the desired pitch once the turn is complete. Problem: once you start facing vertical up or down, the axis' reverse inputs (due to the rotational calculation) and can begin a seesaw input wobble. This also confuses the autolevel which can result in an uncontrolled spin. Not a problem when using Look At.

        3) Send all inputs to the server and use torque and force to manipulate the actor.
        This is essentially what I was doing before this plugin. Problem: messy as hell, no input replication, too much server calculation.

        So i'm wondering how hard it would be to implement a feature of the rotation autopilot to be able to select between 'shortest total distance' (as it works now), and 'shortest by axis' (allowing it to calculate the axis rotations independently). Avoiding that nose lift is all I really need to do!

        I'll happily share an example project or something if it needs demonstrating. Honestly aside from that though, the plugin is great, so thank you!
        I think best option here would be to allow users to override the autopilot rotation calculation. In theory that shouldn't be too difficult to program and will let you specify exactly what algorithm you want to use for the autopilot.
        Can you send me an email with the example project to mookiexl@gmail.com ?

        Comment


          New update released, it's now possible to override autopilot and autolevel functions with custom blueprint or C++ code.
          Thanks nikothepirate for testing.

          Comment


            Hello,
            Can you make a tutorial how to create throttle by BP, and how to change runtime movement mode by BP?
            I'm really new at BP's.

            Thank You.

            Comment


              Originally posted by lost alo View Post
              Hello,
              Can you make a tutorial how to create throttle by BP, and how to change runtime movement mode by BP?
              I'm really new at BP's.

              Thank You.
              Throttle is SetForwardInput, movement modes are changed with SetMovementAcceleration
              Click image for larger version

Name:	modes.png
Views:	64
Size:	48.0 KB
ID:	1856877

              Comment


                Hey there! I just realized I had this. I would like to use this in a side scrolling space shooter environment (think Oids, if you're old enough to remember). Is this plugin set up for that? I would also need auto-leveling for the ship as it changes direction (imagine an Immelmann loop, where at the top of the loop the ship rights itself). I have half-***** implemented this already in a test project, but this sounds like it has all the bell and whistles necessary to do all the things I still would need to implement. Does this sound like a match for that? Thanks.

                Comment


                  Originally posted by ronm6667 View Post
                  Hey there! I just realized I had this. I would like to use this in a side scrolling space shooter environment (think Oids, if you're old enough to remember). Is this plugin set up for that? I would also need auto-leveling for the ship as it changes direction (imagine an Immelmann loop, where at the top of the loop the ship rights itself). I have half-***** implemented this already in a test project, but this sounds like it has all the bell and whistles necessary to do all the things I still would need to implement. Does this sound like a match for that? Thanks.
                  Yes, it also works when the actor is locked onto a 2D plane, so something like Oids would be possible.

                  Comment


                    Hello!
                    I've recently rediscovered Your awesome plugins in my library. By the way, I really appreciate Your work, example project given for the plugin is lots of fun. Yet, I'm now struggling with one thing. On Your tutorial video (the basics one) You said that thanks to Gravity inputs in DOF we could easily use it to orbit a planet, or just apply it to a planet. How can I apply it so the ship can be influenced by the gravity force going towards the center of the planet, and not only one way? Could you please help?

                    Edit: Solved through mail, thank You!
                    Last edited by macsklad; 02-07-2021, 09:43 PM.

                    Comment


                      Originally posted by macsklad View Post
                      Hello!
                      I've recently rediscovered Your awesome plugins in my library. By the way, I really appreciate Your work, example project given for the plugin is lots of fun. Yet, I'm now struggling with one thing. On Your tutorial video (the basics one) You said that thanks to Gravity inputs in DOF we could easily use it to orbit a planet, or just apply it to a planet. How can I apply it so the ship can be influenced by the gravity force going towards the center of the planet, and not only one way? Could you please help?

                      Edit: Solved through mail, thank You!
                      Is there any secret or can you share solution on forum?
                      I'm struggling with incrementing thrust like in this video https://www.youtube.com/watch?v=VPkwNVD5TFw
                      I can make this without 6DOF but when i try apply to 6DOF it doesn't work.
                      So can i use instead axis input for movement a press button? When i try it it just looks like forwardinput does not have any data.

                      Please apologize my bad English.

                      Comment


                        Hello, please apologise the delay, didn't log in for a while. So, here's what I got from Mookie:

                        First you have to enable "use gravity" and "use gravity vector". If your vehicle uses PhysX disable gravity in the mesh settings.

                        Then in the blueprint you calculate (on tick or on a timer) the direction from the vehicle towards the center of the planet, multiply this vector by the gravitational acceleration of your planet, and send the resulting vector to "gravity" variable of SixDOF.

                        For additional realism you can divide this vector by the distance from the center ^2
                        That was it. And works I remember someone said that easiest trust method is to increase the maximum speed in movement component, maybe it's a good idea here?

                        Comment

                        Working...
                        X