Announcement

Collapse
No announcement yet.

[OPEN-SOURCE] Machinery Modelling Toolkit

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

    Originally posted by Fabelwesen View Post

    I gathered, yes, but I felt it was easier to get a good look at everything in one place, so to say, and pretty quickly converted before looking at the other stuff in detail. I have it working as a C++ implementation now with some changes on my own and so far so good x). But it's just for the curiosity value right now of course.

    Thanks for the recommendation RE PhysX. I've found a plethora of vehicle resources, but nothing at all for tanks in regards to their implementation. I've looked at the tank snippet from their own (PhysX) SDK but it didn't get me very far. Because of this I can't help but wonder if you are referring to any specific source code being available? Am not asking you to do all the work for me, it may simply be that all the queries I've put into google and elsewhere have not provided the right results :x. I guess my real issue is figuring out how to marry the PhysX example and UE's vehicle system in a logical manner. I had a play with the UE plugin that lion03 (on GitHub) made, but it doesn't utilize the PhysX implementation at all, rather making a 4W vehicle with some very slight changes and the result isn't really that great, comparatively.
    Yes, I was referring to the code snippet that PhysX provides. There where couple of people who wanted to wrap PhysX tanks into plugin but no idea if they succeed. From what I understood, PhysX tank is more or less a regular vehicle with a limit on wheels speed which is set to be equal for all of them (at least in animation). Don't know what are the changes on simulation side.
    Youtube Channel

    Comment


      Originally posted by BoredEngineer View Post
      Yes, I was referring to the code snippet that PhysX provides. There where couple of people who wanted to wrap PhysX tanks into plugin but no idea if they succeed. From what I understood, PhysX tank is more or less a regular vehicle with a limit on wheels speed which is set to be equal for all of them (at least in animation). Don't know what are the changes on simulation side.
      Yes, with some poking around and fiddling and so on I have that working quite well actually and I have gotten quite far with it. It is surprisingly easy once you wrap your head around it.

      Though one thing I can't seem to figure out, is how to get the tracks bound to the wheels in a useful manner. I've made a mesh track solution since I don't want to use instanced tracks for performance reasons, not quite sure how to move the instanced meshes around the spline anyway. But no matter. I looked at your own mesh track that is in the MMT_Content project and see how it is built and set up with the physics asset and skeletons, but I would like to ask you how it's then used. My own experiments were horrible since I can't get the track to follow the movement of the wheels :P. I am not expecting a tutorial or anything x)

      Comment


        Originally posted by Fabelwesen View Post

        Yes, with some poking around and fiddling and so on I have that working quite well actually and I have gotten quite far with it. It is surprisingly easy once you wrap your head around it.

        Though one thing I can't seem to figure out, is how to get the tracks bound to the wheels in a useful manner. I've made a mesh track solution since I don't want to use instanced tracks for performance reasons, not quite sure how to move the instanced meshes around the spline anyway. But no matter. I looked at your own mesh track that is in the MMT_Content project and see how it is built and set up with the physics asset and skeletons, but I would like to ask you how it's then used. My own experiments were horrible since I can't get the track to follow the movement of the wheels :P. I am not expecting a tutorial or anything x)
        Skeleton covers only animation of boggies, boggies are animated by taking into account position of pairs of wheels. What I do for tracks is use a spline, with control points set under the wheels, when wheel moves up/down the control point follows the wheel and spline deforms. Track links, which are instances of ISM, just follow spline during their animation - I re-calculate position of the links on each frame.
        With mesh track you can follow the same logic, place bones under the wheels and move them together with wheels. I had example of this in old project "Tracked Vehicles", not sure if it's still there.
        Youtube Channel

        Comment


          Originally posted by BoredEngineer View Post
          Skeleton covers only animation of boggies, boggies are animated by taking into account position of pairs of wheels. What I do for tracks is use a spline, with control points set under the wheels, when wheel moves up/down the control point follows the wheel and spline deforms. Track links, which are instances of ISM, just follow spline during their animation - I re-calculate position of the links on each frame.
          With mesh track you can follow the same logic, place bones under the wheels and move them together with wheels. I had example of this in old project "Tracked Vehicles", not sure if it's still there.
          I already built a solution for spline tracks similar to what you wrote here and it's all well and good. I just feel that the other is a puzzle I want to solve, especially since this is so unlike anything I've done before when it comes to rigging. I already had a look in your old project as well, and the mesh track is there but not used. What gets to me is how to move the bones in the track with the wheels if they are not in the same mesh, i.e. how to link them since setting up the hierarchy in the 3D app doesn't produce the right results. Cheers for taking your time, by the way, this is quite interesting to learn.

          Comment


            Originally posted by Fabelwesen View Post

            I already built a solution for spline tracks similar to what you wrote here and it's all well and good. I just feel that the other is a puzzle I want to solve, especially since this is so unlike anything I've done before when it comes to rigging. I already had a look in your old project as well, and the mesh track is there but not used. What gets to me is how to move the bones in the track with the wheels if they are not in the same mesh, i.e. how to link them since setting up the hierarchy in the 3D app doesn't produce the right results. Cheers for taking your time, by the way, this is quite interesting to learn.
            Ahh, that is done by passing values to Animation BP. Basically you declare some variable in AnimBP, then in regular BP you grab skeletal mesh, get reference to AnimBP that is used on it and pass variables of wheels position or whatever else you need there. The light tank example does this to animate boggies.
            The rigging is not too complicated, basically you just blend from one bone into another. To accommodate shape of the wheel, blend can be non-linear, normally you have some automatic weight assignment in Max/Maya that works ok. Doing it manually can yield better results.
            Just for clarification, the bones will move up/down only, to make illusion of track movement you need to animate material.
            I guess, one could move bones around the spline too, not too sure how well that would work. It might work just fine. Haven't tried it.
            Last edited by BoredEngineer; 02-19-2018, 10:15 AM.
            Youtube Channel

            Comment


              Originally posted by Fabelwesen View Post

              Yes, with some poking around and fiddling and so on I have that working quite well actually and I have gotten quite far with it. It is surprisingly easy once you wrap your head around it.
              Well I am also looking in the documentation of Physx SDK .I found PxVehicleDriveTank class there but I cannot decided how to proceed .So did you wrote wrapper around that class? What was your approach?
              Grab Turret Plugin on Marketplace
              Universe is laughing at you especially when you are touching yourself.

              Comment


                Originally posted by BoredEngineer View Post
                From what I understood, PhysX tank is more or less a regular vehicle with a limit on wheels speed which is set to be equal for all of them (at least in animation). Don't know what are the changes on simulation side.
                This could help
                http://docs.nvidia.com/gameworks/con...hicledrivetank

                There are 2 modes
                PhysX tanks currently support two drive models: eSTANDARD and eSPECIAL
                Grab Turret Plugin on Marketplace
                Universe is laughing at you especially when you are touching yourself.

                Comment


                  Originally posted by Freedom911 View Post

                  Well I am also looking in the documentation of Physx SDK .I found PxVehicleDriveTank class there but I cannot decided how to proceed .So did you wrote wrapper around that class? What was your approach?
                  Yes, it took me a bit to "decode" what they were on about in that class since this is my first time writing anything like it :P. I extended a class from UWheeledVehicleMovementComponent and overrode the SetThrottleInput and SetBrakeInput so they call two new functions, SetTrackedThrottleInput and SetTrackedBreakInput which take two values, one for each side, and then it's essentially just a wheeled vehicle, in implementation. When you run the simulation function the PxVehicleDriveTank object requests a few different values since it operates separately on both sides, but that part was simple once I figured it out.

                  Comment


                    Originally posted by BoredEngineer View Post
                    Ahh, that is done by passing values to Animation BP. Basically you declare some variable in AnimBP, then in regular BP you grab skeletal mesh, get reference to AnimBP that is used on it and pass variables of wheels position or whatever else you need there. The light tank example does this to animate boggies.
                    The rigging is not too complicated, basically you just blend from one bone into another. To accommodate shape of the wheel, blend can be non-linear, normally you have some automatic weight assignment in Max/Maya that works ok. Doing it manually can yield better results.
                    Just for clarification, the bones will move up/down only, to make illusion of track movement you need to animate material.
                    I guess, one could move bones around the spline too, not too sure how well that would work. It might work just fine. Haven't tried it.
                    Oooooh see that is what I missed. I have nearly zip experience with UE's animation BPs and I figured they were the key somehow. Thank you very much!

                    The scrolling material is a cinch, already played around with that but without the track moving with the wheels, it just looks so ... fake!

                    Comment


                      Originally posted by Fabelwesen View Post

                      Yes, it took me a bit to "decode" what they were on about in that class since this is my first time writing anything like it :P. I extended a class from UWheeledVehicleMovementComponent and overrode the SetThrottleInput and SetBrakeInput so they call two new functions, SetTrackedThrottleInput and SetTrackedBreakInput which take two values, one for each side, and then it's essentially just a wheeled vehicle, in implementation. When you run the simulation function the PxVehicleDriveTank object requests a few different values since it operates separately on both sides, but that part was simple once I figured it out.
                      Thanks for the help .
                      Grab Turret Plugin on Marketplace
                      Universe is laughing at you especially when you are touching yourself.

                      Comment


                        Originally posted by Fabelwesen View Post

                        Then it's essentially just a wheeled vehicle, in implementation.
                        Umm one question .Does it mean that your implementation is more like of N wheeled rather than tank simulation itself?
                        Grab Turret Plugin on Marketplace
                        Universe is laughing at you especially when you are touching yourself.

                        Comment


                          I am trying to use LightTankCPP but I am getting these errorsClick image for larger version  Name:	tank.jpg Views:	1 Size:	516.9 KB ID:	1436557
                          Grab Turret Plugin on Marketplace
                          Universe is laughing at you especially when you are touching yourself.

                          Comment


                            Originally posted by Freedom911 View Post
                            I am trying to use LightTankCPP but I am getting these errorsClick image for larger version Name:	tank.jpg Views:	1 Size:	516.9 KB ID:	1436557
                            Most likely it doesn’t have proper tracks setup. Some of the BPs are a mess, I kept them for various reasons, like performance test or they have some parts of code that I can re-use in feature. This BP is one of those.
                            Use tanks that are placed in the level - those are functional. If you want to experiment with them, just check which BP they are based on and modify a copy of it, so that your changes are not overwritten in feature by the new version.
                            I’ll clean-up project at some point, but it’s not an easy task as some BPs and classes can’t be simply deleted.
                            Youtube Channel

                            Comment


                              Oh ok thanks
                              Grab Turret Plugin on Marketplace
                              Universe is laughing at you especially when you are touching yourself.

                              Comment


                                Hello I have implemented simple hovering component from the epic tutorial.I am trying to achieve switchable movement like from tank to hover tank.So what would be the best approach for movement ? Say How would I switch off the tank movement completely so that all the mmt calculation are stopped.Could it be simply through by changing the tick logic ? For movements through key it could be simply through flag I guess that would decide whether to use hover movement or tank movement.
                                Grab Turret Plugin on Marketplace
                                Universe is laughing at you especially when you are touching yourself.

                                Comment

                                Working...
                                X