FGear Vehicle Physics (v1.4)

FGearVehicle::updateAntiRollBar, this is a realistic antirollbar but mostly you won’t feel a difference in driving experience.

FGearArcadeAssists::updateAntiRollBars, this is a fake antirollbar that applies external forces to the chassis but very effective.

no need to use them both, if it’s an arcade game just use the fake one…

I noticed that (in FGearPhysicalMaterial) there is a variable mRoughness but I still don’t understand how it works. Changing this parameter makes the car drier in slipping or is it a false feeling? In FGearEffects this parameter is involved, but it is displayed as a comment //. Is there any reason not to use it?

if you check the UFGearEffects::physicsSurfaceUpdate function you can see that it’s not used.

we used it in unity, when you enter a surface with high roughness your vehicle slows down with an artificial drag, i do not exactly remember the reason but we skipped this one for unreal.

Are you able to provide a quick overview of what the vehicle physics asset should look like?

For some reason, for me, with a Vehicle base Simulated shape and all four wheels as a Simulated (or kinematic) sphere physics shapes - the wheels roll on their own and are rolling on all axis.

The example vehicle only has the chassis covered by the physics asset but I want the wheels to act as colliders too - if that’s possible?

wheels are not supposed to have colliders at all.

you could have kinematic bodies that are just positioned with the wheels but they will push back any dynamic body with infinite force and i don’t think you would want that.

long story short, there is no simulated volumetric wheels in this asset or any asset that i know of.

Hmmm interesting.
The way vehicle assets are setup for Chaos, the wheels have their own Physics Colliders set to Kinematic. Probably why my assets were created this way.

So should I only be creating a physics body that covers the entire chassis? Or should the physics body cover the entire vehicle incl. Wheels?

it’s better to cover the wheels, especially cover the points where suspension casting starts.
open wheels may or may not be a problem, test the rc car in the sample project.


How does the FGearEffects class create wheel slip/skid sounds? Are four instances of sounds created in the process (for each wheel)? Or is one UAudioComponent used for four wheels at the same time?


Is there any workaround to fix the particles for wheels? (when crossing two different physical materials, particles disappear from the old surface)


  • yes a single UAudioComponent for four wheels.
  • If you want to do it through a single particle effect, you can add a particle parameter and update this parameter according to the information you read from the surface.
1 Like

In the documentation I see “Real pacejka sets are not free and not easy to
come by…”
Does “performance hit” using different tire models such as FGearMF61 or FGear96?
Or do you mean something else?

pacejka parameter sets define how tire forces are generated, they have nothing to do with performance, you can tune parameters manually but the parameters have no physical meaning. you can observe the resulting curves and/or try driving each time you make a change.

there are 3 tire models in fgear: simple, tire96 and mf61.
they have different complexities but if you do not have hundreds of vehicles in the scene you can not tell the performance difference. you can use simple tire for non player vehicles and for player vehicles use the one that feels better for you.

1 Like

Seems like a great plugin…but I have one question though before I go ahead and purchase the plugin…

WIth current UE4 vehicle implementation, there is one annoying ‘feature’ which happens at multiplayer games. One example is when a lorry need to reverse to a precise location - so the driver reverses slowly and all is well until the server decided to correct it by nudging the vehicle a little (supposely to sync the vehicle position when ‘errors’ reached certain threshold). But this completely messed up the driving experience.

Honestly, I dont know if this plugin will solve it as it seemed to be UE4 thing but the rest of the features look splendid.

our replication implementation has no client prediction, some people use it and some people build their own solutions. you should try the multiplayer demo and decide for yourself.

Hi, just released a public beta of the racing prototype to get feedback.
Download: Unreal Racing by Kronbits

Thanks to lazybitgames for their great plugin and support.

If somebody have steering wheel, can let me know if works? And in that case, works/feel ok compared to keyboard/gamepad?. Thanks!.

And some request if possible: Individual suspension params for left/right wheels?

Had an idea to fake the holes in puddles and keep the floor a plane. Play with the up/down travel params on runtime when a wheel steps on a puddle so i can fake it. Like some lerp so it will make the feel that there is some hole/down level in that zone that is why the puddle are there.

Doing this because actually no idea how to deform the plane to match the puddles and with deformation im afraid that some collision bugs may appear. So, with this trick, avoid that, and due i can detect when a wheel is over a puddle i change via blueprint the up or down values to give that feel.

all wheel options can be individually set per wheel from BP but they also can be overwritten by stored wheel options. when you make a change in wheel options you need to call Axle::applyWheelOptions function and this function copies parameters from wheel options structure to each wheel. there are some assists in ArcadeAssists component that calls this function each frame so your changes will be discarded if you use it. Setting it every tick after the vehicle tick may work…

hi @Davit_Masia
I tried your demo. It looks very nice apart from minor issues. For example, I cant turn vehicle without using handbrake.
good luck in your project.

Thanks! Yeah, on high speeds is hard to turn, still working on it. Tried with params in the editor but it looks im gonna need to edit some in the core plugin to get it.

Last_Coin_Games . V.0.0.2 with the steering fixed. Is provisional, but better than before.

Hi, another questions…

  1. I noticed there is a 4wd suv - can this 4wd be tailored to using differential lock ie each wheel rotates at different speed depending on the terrain? Or if it is not there, is it easy for me (I am c++ programmer) to tailor one eg create a c++ class deriving from a wheel class? (I have not looked at the documentation in great detail).
  2. Can it create an 8 wheel vehicle? 8wd? How about custom turning like a tank transporter that turns its back wheels differently then the forward wheels?

Thank you.

1- currently there is no central differential, you just define how much each axle receives torque from engine(torque share parameter). you could simply modify a function called FGearAxle::calculateAxleTorque but make sure you understand how things are ordered in an update loop.

2-there is an 8 wheel vehicle in one of the unity demos, here is the link. turning wheels to opposite sides is another story, you need to modify the source to do something like that.