Announcement

Collapse
No announcement yet.

[OPEN-SOURCE] Machinery Modelling Toolkit

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

  • replied
    Originally posted by cvtsdmn View Post
    Will the plugin be updated for 4.26?
    When it's not a "Preview" anymore.

    Leave a comment:


  • replied
    Will the plugin be updated for 4.26?

    Leave a comment:


  • replied
    Good Evening. My tank keeps bouncing up and down like it's 1999. In addition it's sliding everywhere at high speed and isn't really controllable. Do you have any suggestions? If you need some photos or video just let me know. Thank you in advance.

    Leave a comment:


  • replied
    Perhaps is it because i am using 4.24? i am downgrading to 4.22 to test it further

    Leave a comment:


  • replied
    Im sorry if its a dumb question, but what do you mean? I dont see that option in the packaging menu:Click image for larger version

Name:	help.PNG
Views:	261
Size:	45.1 KB
ID:	1793427

    Leave a comment:


  • replied
    Originally posted by rafael0050 View Post
    Guys, any idea why this is happening?The game compiles just fine to a folder in the desktop. It is when i try to open the compiled game that it gives me this message. What am i missing here?
    Not sure. Did you compile project in Visual Studio?

    Leave a comment:


  • replied
    Originally posted by Dealman View Post
    Awesome, that's exactly the kind of information I needed!

    Are MMTrackAnimation and TrackAnimationDrive vastly different? I was working on implementing the modular drivetrain onto my tank, but it seems as though it would be incompatible as TrackAnimationDrive relies on static meshes instead. And the fact that the steering clutches need to reference the former kind of component.

    Edit:

    Ah, I see. One is a C++ component and the other is a BP(I assume deprecated version?). Got it to sort of work, but seems like it'd be a lot of work making it work with the new C++ component - so I'll stick with the more basic approach for now.

    Been trying to tweak the suspension some more, also saw a comment that you had made that the suspension stacks could be rotated a bit to imitate the behaviour of torsion bars - so am trying that out now.

    https://streamable.com/40s9b2

    Also added sockets for the top part of the road wheels, so the top of the track will get pushed by the wheels. You reckon this is fine or is that what the sway physics constraints would otherwise achieve?

    Watching this video makes me think the torsion bars have different strengths, being more stiff towards the rear to prevent smacking into the hull. Been trying to find information about this but haven't had any luck thus far. What do you reckon?

    Edit 2:

    Done some more research, indeed seems like 4(?) torsion bars were a bit sturdier. As well as some torsion bars were also connected to shock absorbers. Interesting
    I don't remember what those things are
    Modular drive train should work without static meshes, those where just for animation purposes. Tiger had a much more complex steering system, last time I've looked at it, it was too complex to solve it manually with components, one would need some sort of "gear solver" to handle it.

    The sockets on top of the wheel are sort of like static control points, so that points in between top wheels can sway using constraint.

    The big part that is missing in these simulation is soft ground, I'm not sure if smacking of the hull against a ground was a big problem, it would just leave a dent in a dirt or a road with very unluckily damage to the tank itself. But yes, most likely they had different strength as mass of the tanks is not equally distributed.

    Leave a comment:


  • replied
    Guys, any idea why this is happening?The game compiles just fine to a folder in the desktop. It is when i try to open the compiled game that it gives me this message. What am i missing here?

    Leave a comment:


  • replied
    Awesome, that's exactly the kind of information I needed!

    Are MMTrackAnimation and TrackAnimationDrive vastly different? I was working on implementing the modular drivetrain onto my tank, but it seems as though it would be incompatible as TrackAnimationDrive relies on static meshes instead. And the fact that the steering clutches need to reference the former kind of component.

    Edit:

    Ah, I see. One is a C++ component and the other is a BP(I assume deprecated version?). Got it to sort of work, but seems like it'd be a lot of work making it work with the new C++ component - so I'll stick with the more basic approach for now.

    Been trying to tweak the suspension some more, also saw a comment that you had made that the suspension stacks could be rotated a bit to imitate the behaviour of torsion bars - so am trying that out now.

    https://streamable.com/40s9b2

    Also added sockets for the top part of the road wheels, so the top of the track will get pushed by the wheels. You reckon this is fine or is that what the sway physics constraints would otherwise achieve?

    Watching this video makes me think the torsion bars have different strengths, being more stiff towards the rear to prevent smacking into the hull. Been trying to find information about this but haven't had any luck thus far. What do you reckon?

    Edit 2:

    Done some more research, indeed seems like 4(?) torsion bars were a bit sturdier. As well as some torsion bars were also connected to shock absorbers. Interesting
    Last edited by Dealman; 07-25-2020, 05:02 PM.

    Leave a comment:


  • replied
    Originally posted by Dealman View Post

    It turns out I was doing it right, but one tiny bit of my hull's collision was a bit too close to the ground so it'd get stuck on that. Now to experiment and tweak settings a bit to try and get some smoother steering!

    I really liked how the modular drivetrain example drove, so I might try and merge that into this if possible.

    If you don't mind me asking, how would you recommend we set up engine curves? Looking at the ones already there, I'm assuming that X-axis is RPM and Y-axis is Torque? Using the upgraded Tiger 1 engine(‎Maybach HL210 P45) it would generate at most 1850Nm of torque at 2100 RPM and ~700hp(PS?) at 3000 RPM.

    Tried setting up a curve that goes from 600Nm 0 RPM to 1850Nm at 2100 RPM and then falling of towards 1500Nm at 3000 RPM for testing purposes. According to the debug however, it maxes out at 600.

    It drives fairly well now, still a bit jittery when it's trying to climb over obstacles - whereas your T-26 is very smooth. So a fair bit of collision and setting tweaks to go through.
    You could use a real curve then have some "gear" in between, or make you own curve from considering following:
    - there should be some top speed you expect from the tank
    - there needs to be some minimal amount of torque needed to get tank moving from a halt (to overcome mechanical friction of a complete drive train)
    Minimal torque you can find by just setting some constant torque instead of the curve and raising/lowering value till you get a feel for a "first gear". It can be even calculated but that not really necessary.
    When you decide on top speed, it can tell you the rpm just before the "red line" of the engine, or if you don't want to automatically cut throttle you would need to find a necessary amount of torque that is just bellow the needed amount to overcome friction and keep vehicle rolling.
    How to get that rpm? You can calculate it or just measure angular speed of the sprocket at speed that feels like maximum.
    If you want to calculate it, you can use formula like this:
    https://www.vcalc.com/wiki/EmilyB/RP...inear+Velocity
    Just take into account that for tanks, radius is a radius of the whole track (as if it was a gigantic wheel). Modify it by the ratio of the sprocket radius. If RPMs look too weird after this, don't forget that in real tank there is usually some other gears, like final drive, gear box and etc.

    Just to clarify, for a "real" curve, you need to tweak a multiplier that will change rpm on the sprocket wheel to engine rpm. You can tweak it manually till you get to design max speed at 3000 RPM.

    Leave a comment:


  • replied
    Originally posted by BoredEngineer View Post
    If I remember correctly, there are two "types" of friction points. One type is fed data from the suspension and another type that comes from collisions. Sprocket and idlers need second type. Those are handled by collision events. In order for these events to happen independently, I think you need to place idler and sprocket collisions on constraints. Then hook up collision events to feed friction data. So check that you get collision event on the sprocket, perhaps it's covered by the mesh of the tank chassis or missing some settings.
    There is a track thickness offset but I think it's only used for traction calculations. To prevent tracks from going underground you just need a larger collision on suspension. Look at how suspension meshes are made for T-26 - they don't conform shape of the wheels and made such that they can slide over the obstacles. They can overlap too.
    There are some bits that are not implemented. Like I was going to set friction and suspension calculators into separate classes and allow dynamic collections of these components to be added in real-time, but this was never finished.
    It turns out I was doing it right, but one tiny bit of my hull's collision was a bit too close to the ground so it'd get stuck on that. Now to experiment and tweak settings a bit to try and get some smoother steering!

    I really liked how the modular drivetrain example drove, so I might try and merge that into this if possible.

    If you don't mind me asking, how would you recommend we set up engine curves? Looking at the ones already there, I'm assuming that X-axis is RPM and Y-axis is Torque? Using the upgraded Tiger 1 engine(‎Maybach HL210 P45) it would generate at most 1850Nm of torque at 2100 RPM and ~700hp(PS?) at 3000 RPM.

    Tried setting up a curve that goes from 600Nm 0 RPM to 1850Nm at 2100 RPM and then falling of towards 1500Nm at 3000 RPM for testing purposes. According to the debug however, it maxes out at 600.

    It drives fairly well now, still a bit jittery when it's trying to climb over obstacles - whereas your T-26 is very smooth. So a fair bit of collision and setting tweaks to go through.

    Leave a comment:


  • replied
    Originally posted by Dealman View Post

    Was able to solve it, getting there!

    Had to tweak my rig a bit, also tried to tweak the collision meshes a bit better. Sprockets are gonna be a pain to try and get right, they're my biggest issue at the moment. They don't seem to register friction points upon collision most of the time - but the idlers seem to work just fine. They're set up the same way.

    Tried making their collision a bit bigger, but hard tell if it made it better or worse.

    Is TrackSuspension(float) not implemented for SuspensionStacks? I figured this value would be what I tweak to prevent the track from sinking under the ground? Or should I be tweaking the road wheel collisions for that instead?

    Loving the plugin so far, once you figure out how all of this eventually ties together - it's fairly pleasant to work with. Only crashes I've had was when working with the TrackSplinePointAnimated struct - but that was my fault because the array index kept going out of bounds. So it seems very stable as well

    Latest video with debug;
    https://streamable.com/b656fm
    If I remember correctly, there are two "types" of friction points. One type is fed data from the suspension and another type that comes from collisions. Sprocket and idlers need second type. Those are handled by collision events. In order for these events to happen independently, I think you need to place idler and sprocket collisions on constraints. Then hook up collision events to feed friction data. So check that you get collision event on the sprocket, perhaps it's covered by the mesh of the tank chassis or missing some settings.
    There is a track thickness offset but I think it's only used for traction calculations. To prevent tracks from going underground you just need a larger collision on suspension. Look at how suspension meshes are made for T-26 - they don't conform shape of the wheels and made such that they can slide over the obstacles. They can overlap too.
    There are some bits that are not implemented. Like I was going to set friction and suspension calculators into separate classes and allow dynamic collections of these components to be added in real-time, but this was never finished.

    Leave a comment:


  • replied
    Originally posted by BoredEngineer View Post
    Enable debugging on suspension and friction and look at the forces.
    There are some assumptions made in the code, like where tracks are suppose to be, I don't remember if they can be offset. I think tracks had to be aligned with wheels and that alignment is done by moving spline points. So pivot of the spline stays at 0 on Y axis and points themselves are moved to where track should be. I might be wrong, wrote that code years ago.
    Was able to solve it, getting there!

    Had to tweak my rig a bit, also tried to tweak the collision meshes a bit better. Sprockets are gonna be a pain to try and get right, they're my biggest issue at the moment. They don't seem to register friction points upon collision most of the time - but the idlers seem to work just fine. They're set up the same way.

    Tried making their collision a bit bigger, but hard tell if it made it better or worse.

    Is TrackSuspension(float) not implemented for SuspensionStacks? I figured this value would be what I tweak to prevent the track from sinking under the ground? Or should I be tweaking the road wheel collisions for that instead?

    Loving the plugin so far, once you figure out how all of this eventually ties together - it's fairly pleasant to work with. Only crashes I've had was when working with the TrackSplinePointAnimated struct - but that was my fault because the array index kept going out of bounds. So it seems very stable as well

    Latest video with debug;
    https://streamable.com/b656fm

    Leave a comment:


  • replied
    Originally posted by Dealman View Post

    I was able to solve the bones somehow, not quite sure what fixed it to be honest. But now their pivots are reimported fine and I was able to invert the rotation. I'm just throwing together a fast test, so as for the suspension arms moving along a curve I'll probably ignore for now.

    I was able however to make the process a bit more automatic, I know you mentioned in some reply that you adviced against using construction script to assemble the suspension - was there any particular reason for this?

    This is what I've got so far;
    https://streamable.com/w1nk7m

    Far from perfect I know, but was able to set it up via construction script - only components I have are the hull(invisible atm) and sprocket processors which I haven't implemented yet.

    Edit:

    New day, new issues. Been working on the tracks, was pretty straight forward - but have run into some issues here as well.

    1. Right-side track spline gets messed up for some reason, have double-checked the AnimatedTrackSplinePoints and they should be okay. No idea why it gets offset like this and even more so only for the right-side track.


    2. There doesn't seem to be any friction for me, upon spawning it will just keep sliding backwards.

    3. All wheels are spinning the wrong way, despite bones being rotated the proper way(compared it to your T26 rig).

    Also, is it super important that the spline points line up exactly where the Tread sockets would be? Noting down a bunch of stuff as I'm going, maybe it can prove useful for putting together a quick setup guide later on.

    Any suggestions as to where I should look to resolve these issues?
    Enable debugging on suspension and friction and look at the forces.
    There are some assumptions made in the code, like where tracks are suppose to be, I don't remember if they can be offset. I think tracks had to be aligned with wheels and that alignment is done by moving spline points. So pivot of the spline stays at 0 on Y axis and points themselves are moved to where track should be. I might be wrong, wrote that code years ago.

    Leave a comment:


  • replied
    Originally posted by BoredEngineer View Post
    Splines can be heavy, a frame by frame animation done in 3dsmax could do a better job. Like you can make a separate rig in 3dsmax using constraint and get animation by rotating torsion bar arms. Then bake animation just for the wheel bones.
    The reason for that is that animation graph in UE4 is pretty fast if you used build in nodes. Getting a point on a spline is bit more time consuming and would had to be done in code. Even a lookup table could work faster if you want to solve this in code.
    I was able to solve the bones somehow, not quite sure what fixed it to be honest. But now their pivots are reimported fine and I was able to invert the rotation. I'm just throwing together a fast test, so as for the suspension arms moving along a curve I'll probably ignore for now.

    I was able however to make the process a bit more automatic, I know you mentioned in some reply that you adviced against using construction script to assemble the suspension - was there any particular reason for this?

    This is what I've got so far;
    https://streamable.com/w1nk7m

    Far from perfect I know, but was able to set it up via construction script - only components I have are the hull(invisible atm) and sprocket processors which I haven't implemented yet.

    Edit:

    New day, new issues. Been working on the tracks, was pretty straight forward - but have run into some issues here as well.

    1. Right-side track spline gets messed up for some reason, have double-checked the AnimatedTrackSplinePoints and they should be okay. No idea why it gets offset like this and even more so only for the right-side track.


    2. There doesn't seem to be any friction for me, upon spawning it will just keep sliding backwards.

    3. All wheels are spinning the wrong way, despite bones being rotated the proper way(compared it to your T26 rig).

    Also, is it super important that the spline points line up exactly where the Tread sockets would be? Noting down a bunch of stuff as I'm going, maybe it can prove useful for putting together a quick setup guide later on.

    Any suggestions as to where I should look to resolve these issues?
    Last edited by Dealman; 07-21-2020, 04:46 PM.

    Leave a comment:

Working...
X