No idea what could be a problem then. I can take a look at it if you want, just dm a link so I can download it from somewhere.
just seen the 4.18.2 patch notes and saw this.
Fixed! UE-52852 Crash opening Child/Grandchild Blueprint after updating to 4.18
going to give this a try and get back to you
It is working as of the 4.18.2 update
Cool! Glad its solved
Hi first of all thanks for making the plugin I am using the MMT plugin in my project and for a scene I am getting 45 - 50 fps for 6 M113 tank including the player.Is it normal ?Can it be improved because I am trying to include more than 10 tanks for which I get approx 30 fps.
My configuration just for info
**CPU **- Intel Core i7 4790
**GPU **- NVIDIA GeForce GTX 1070
**RAM **- 16.0GB Dual-Channel DDR3
Yes, it can be improved by using c++ implementation of tank components (light tank example) instead of m113 which is an old version written in BP.
To further improve performance, one needs to implement tank controller as a single component, with the least amount of individual components - UE4 has a costly update of components. Parallelizing calculations should help too, this is what PhysX’s vehicle component does.
Nice preview of the upcoming tank stuff from IL-2
After settling with a complete career change in order to clear my head and find back the fun in what I like doing… I’m starting to get back to the tiger.
I’m currently moving it into the latest 4.18 build.
As for the model… I’ve been working on a complete re-model of the Early Tiger using all the tehnical drawings, factory drawings and reference I gathered the last few years.
I’m working on it in Fusion 360 from now on and in between work I can use Inventor Pro at work to work on the CAD model.
So my initial starting position is going to be an accurate CAD model. I’ll show more of the model down the line.
My blueprint version still works in the current build, however the more complex version based on the T26 does not work anymore.
I’m going over your latest T26 examples and noticed some changes.
I like the LightTankTraceWithAnimBPPrototype example however I see you used a skeleton file there for the suspension.
I’m not sure I’m going to attemp that… It looks much cleaner… but I like to try and avoid setting up a skeleton file in an external program since I would like to try and use MMT mainly to implement “machines” coming from Engineering package like Fusion, Inventor, Solid Works etc…
Maybe I’ll look into the skeleton setup later. Is there any advantage over LighttankTracewheel setup you used without the skeleton file?
Anyways…
Looking at my errors and in the blueprint I see some changes in Physics Update function usage and the track application force.
Can you give me some pointers on what you did so I can also change that in the Tiger setup.
Also… Not sure if you remember , but we did a torsion bar suspension setup with a rotational constraint.
If I’m not mistaking you have added am (MMT)spring contraint to the T26.
Is it smart to change the entire suspension setup of the tiger to also use the spring contraint in stead of the iffy rotation contraint (angular motor) it has now?
Thanx
I like their new track animation, looks really nice. Reminds me that I need to add some noise to the movement of the roadwheels, otherwise they just follow collision geometry which is usually very flat and boring.
Congratulations with career change?
I’m using skeletal mesh for the movement of the bogies as it improves performance. If you check animation BP, you will see that all what it does is calculates rotation of the arm and that bit that connects pair of roadwheels. It can be done in BP but in Animation BP it can be done in parallel (from what I understood). Tiger doesn’t have those bogies, so you don’t really need it. But you still can save some performance by not having torsion bars as separate components - apparently UE4 doesn’t really like that.
Not sure what you mean by spring constraint on T26. It’s hard to tell what exactly was changed as I don’t remember what your version was build on, there where like 20 or more commits between than and now. All commits have description on git hub, you could check by dates when they where made.
LightTankTraceWithAnimBPPrototype example uses the latest features. It’s best in terms of performance and stability of simulation. The downside, is that interaction with other objects by crashing into them using roadwheels is limited as they don’t have real collision wheels. All other examples of tanks are basically outdated. There is one with a prototype for simulating track movement, but I don’t recommend to use it as it’s only a prototype. Having everything done using rigid bodies, springs and motors would be cool, but so far it was neither good for performance nor stable.
The thing with performance is that to get most out of it, everything have to be packed into a single component in c++. Kind of how VehicleMovement component does it. Right now, all physics calculations in LightTankTraceWithAnimBP takes roughly as much time as it takes UE4 to update transforms of all components inside of the tank. So while I’ve designed everything to be very modular (so that you don’t have to use one special class for tank and another special class for half-truck) it actually goes against with how things are suppose to work in UE4.
I’ve started to work on packaging complete track into a single component and changing to a different physics model. Got really tired of it as 80% of work have nothing to do with vehicle functionality but general architecture code. Which I’m not even sure is a correct one. So that is on hold for now.
I can imagine a single component would be better. Years ago tested the same thing in CryEngine… they also had a single component for n-wheeled vehicles. Something like that… of nvidia’s physx tank implementation.
but it’s pretty hard to do it for all the suspension configurations out there I guess.
And in your case, you also have planes, hoovercrafts etc…
My latest version worked in 4.12 I remember back then my question was to add the sprocket also so it also contributes to friction etc… since with higher obstacles the sprocket is the first “wheel” hitting the obstacle. And I see that works for the T26 now.
That part is not incuded yet in the tiger … so I will have to check what the differences are between your latest example and the tiger.
With the spring contraint in the t26 I mean… or at least it looked like you used your own spring contraint implementation… while my tiger example uses a UE4 contraint.
Correct me if I’m wrong… I need to catch up
I also have information on the engine. a next step is to add a manual transmission. The tiger has 8 foreward gears and 1 reverse. I know the gear ratio’s. The only problem is I cannot find a torque curve for the engine. And I have no idea how to do the steering yet. The pivot turn is something it should also be able to perform.
anyways… enough to do.
And a shipload of other changes I see
raycheck, static friction… not sure if it’s faster to reimplement the tiger or try to update the old version.
about the IL2 track example.
I think the track jiggle is not that hard to fake… you could somehow add verticle dynamic jiggle to some inbetween top cv’s of the track spline.
Ok, now I see what you mean. Yes, I’ve tried that custom spring instead of constraint and result was pretty much the same - suspension was jittering. I don’t think that rigid bodies can work well for such setup. Unless something like PhysX articulation is used but it’s not exposed in UE4 currently. Might add it one day but no concrete plans on that.
In any case, the sprocket and idler are rigid bodies connected with a fully locked constraint to chassis and it all works together with “Shape Sweep” roadwheels. So swapping back to full rigid body setup is always possible.
Don’t bother too much with exact torque curve, there are bunch of other things that will be hard to find, a lot of tweaking will be necessary anyway to make it work well.
Imho it’s easier to re-implement, most of the components have changed and almost all of them are implemented in c++ now.
Already have this on T-26, it’s just on one side as far as I remember.
I’ve gone over the latest T26 examples to see the difference in what I had with the Tiger.
What is the best T26 to look at for updating the Tiger? Is it the LightTankTraceWheels? That is the one without the suspension skeleton.
I see my tiger uses the Trackanisotropicfriction stuff and when I look at the T26 you now use an MMTFrictionComponent on all the wheels.
If that is the main difference then I think I can keep the torsionbar suspension setup with UE4’s constraints and not use Shape and Spring like you did in the T26.
Update all the physics wheels to this MMTFrictionComponent and update the whole blue print.
I see the track jiggle on the right track of the T26… I might look into that after I get the Tiger running again… can be a nice addition!
Or use MMT Suspension Stack component? Shape Sweep?
It seems easier to setup then the whole torsion bar with the constraint, and the torsion bar is not really visible anyway…
argh… choices!
LightTankTraceWheelsWithAnimBPPrototype is a good start, if you use torsion bars on constraints instead of Suspension Stack then you setup will look pretty much the same as Idler and Sprocket. The difference will be in extra component - physics constraint that you need for torsion bar. Otherwise, Suspension Stack with Shape Sweep is a way to go.
I see when I simulate and drop the tiger that the torsion bar suspension still works… So I might just leave that for now and replace all the physics collision wheels and sprocket and idler with the newer FrictionComponent and re-setup the rest of the functions like you did in the T26 lightTankTraceWheelsWithAnimBPProtoype… (wow… what a name! )
In T26 lightTankTraceWheelsWithAnimBPProtoype I see a Function called Update All RoadWheels Collision.
What does that function do?
It uses an event called Update Roadwheel Collision that uses an MMT Suspension Stack component as input.
Since I use the UE4 constraints for the torsion bar suspension I’m not using any MMT Suspension stuff (I guess)
What should I do in my case? Leave the function out? I see it does something with the friction points? Don’t I need them?
You don’t need it, what it does is passes contact information from suspension to friction, in your case, it’s done in collision event, like with Sprocket and Idler.