Thanks. Maybe I will also ‘enhance’ it by injecting impulse at the right direction…
may be if you combine it with the new sleeping feature it would work.
sleep → disable physics → enable physics → wake
Hi,
I’m developing an off-road game for a mobile platform in BP and I have the following questions:
1 - Would it be possible to switch between 4x4 and RWD at runtime?
2 - Would it be possible to lock the differential at runtime?
3 - Would it be possible to make the engine lose power at runtime? (Simulating a mechanical problem)
4 - Would it be possible to simulate a flat tire at runtime? (Reducing wheel size and increasing drag)
5 - Would it be possible to simulate a lost wheel? (Reducing the size of the wheel to the brake disc and leaving it locked)
6 - Is the version for UE 4.27.2 updated to 1.7? Will it continue to receive updates?
7 - Does the plugin work with UE source? Can it stay in the game directory or does it have to be added to the engine?
About performance:
p1 - Would it be possible to switch between casting types at runtime? Raycast when on fast runs and sphere/convex when climbing rocky hills.
p2 - Would it be possible to put the system to “sleep” when getting out of the vehicle? At least in the functions that consume the most performance?
p3 - Could you tell me if the vehicle created in your plugin is lighter or heavier than the UE standard vehicle, by how much?
I suggest you add a list of nodes that are available for adjustment at runtime to the documentation, with short descriptions of the functions.
At first glance your plugin seemed to be something closed with just the documentation options, I only got an idea that it would be possible to make some changes at runtime with BP when reading this forum.
Thanks
1, 2, 3 → yes
4, 5 → can reduce the wheel radius, it is a bit tricky but it should be possible to apply independent brakes to each wheel(never tried that). so to introduce drag or for locking the wheel you could use brakes.
6 → 4.27 is up to date. the next update will introduce the enhanced input system support, if we can keep a single repository with that then we’ll keep the 4.27 support if not we might end up dropping it. the thing is, a programmer can simply copy the source files and make some minor modifications to make it work with unreal4.
7 → there is no such requirement, you can use it as a plugin or just make it a part of your projects source code with some minor adjustments.
p1 → it looks possible also didn’t try that before.
p2 → you can initiate a manual sleep but it can be waken up by some other factor. we also have an automatic sleeping feature but due to a problem with the physics engines we don’t make the vehicle sleep when there is a simulated object in close proximity.
p3 → I think fgear has decent performance when you consider it’s features but I’ve never compared it with another system. the only thing I could show you is a stress test video on our youtube channel but it is an older ue4 version. the downside is that we do not support async physics yet, the engine support is still raw and it makes it difficult to exchange data between threads.
about the BP documentation, as a programmer I think the header files are a good source of documentation. but of course you can not view them without buying the plugin.
we have a separate runtime modification map in the sample projects which demonstrates how you can modify things at runtime.
Is changing the casting type at runtime possible in the current version?
It would be interesting for those who don’t yet have the plugin to test a build with this map with the settings at runtime. (If possible also an Apk of this map and the demo too)
“but of course you can not see them without buying the plugin”, but how can I buy a plugin for this amount without first knowing the functions and resources?
In any case, I think it’s better to wait for a definition on the fate of UE4 support.
Thanks.
my answers are about the current version.
we have demonstrated the main features in public demos, in order to do it for all features we would need many more demos and I don’t think people would test all of those and also it would be difficult to maintain all those demos.
about documentation we once had a c++ api document but I realized noone ever used it so we don’t release it anymore and we expose all getters & setters to BP so almost all features are exposed to BPs. in any case if someone is not willing to buy due to lack of documentation I respect that but our resources are limited, we prefer to use our time for maintaining the project.
for those having problems with dedicated server, try using -useperfthreads command line option on the server, it will prevent single threaded physics.
for large input delays try to find optimum numbers for “Input Sendrate” and “Input Buffer Size”. (start by reducing buffer size)
but if need the C++ documentation, you will provide it right ?.
c++ api document is just a summary of each header and composed of comments of each function so basically it’s not different then reading header files(that’s probably why most people never looked at c++ api docs). you get the full source code which means if you can read c++ code then you already have the documentation. in any case if you need more information, you can ask about it via mail.
thank for clarifying it.
Hello, I would like to get less steering wheel sensitivity, but it doesn’t work, what other functions should I add?
quoting from documentation:
Steer Sensitivity : This value is only used when the controller is a wheel. This determines how fast the steering value catches up with the input axis value. Higher values result sharper steering.
so it won’t effect keyboard or controller, modify steer speed curve instead.
How to make the steer limit faster? , my car turns very fast despite having low sensitivity
lower sensitivity means slower steering, higher sensitivity means faster steering…
you just need to tune the “steer speed curve” of the standard input.
you can observe the steering rate and angle values through telemetry like below:
Hello, does anyone else feel that their vehicle handling behaves differently when someone adds objects, models to the vehicle? Why did something like this happen to you in mine? because it imports a complete vehicle and it feels as it should, but when adding objects and some models it starts to move badly, very arcade-like
What do you mean by adding objects?
If you mean adding Static Meshes to the vehicle BP, then you may want to disable any options for each static you have added such as Mass/Collision/Physics etc. so that way they are only visual elements.
Hi, I need to ask a few more questions:
My vehicle has open wheels and the entire traction, suspension and steering mechanism is visually exposed, so the movement animations will be done through blendspace, and to guide these animations I need some variables that I don’t know if they are exposed in your plugin.
The variables are:
The normalized travel position of each suspension or a local normalized wheel Z position.
The local rotation of each wheel on the Y axis (spin) and the local rotation of the kingpin (to turn the wheels, I saw in an old post here that there is a function called getNormalizedSteering, if it is exposed in BP, I believe that is enough ).
(Other plugins and the Unreal vehicle itself use a combined rotation (spin and turn) for the front wheels, making them turn on their own axis, I need these separate rotations because of the distance between the kingpin and the wheel.)
Another question is that the vehicle has a double wishbone suspension, which causes the wheel to move laterally according to the movement of the suspension. Is it possible to manipulate the position of the physical wheels at runtime?
Regarding multiple raytracing, is it possible to vary the angle between them or is it something fixed? For performance, I would like to have fewer rays spread out at a larger angle.
The beginning of this video exemplifies it well: https://www.youtube.com/watch?v=nxH6LNCgqU4
Can the sounds and effects contained in the plugin example project be used in commercial projects?
Thanks
For the first part of your steering, I believe you just need to transform of the wheels to pass to your animBP. I have a similar set up in which, the chassis is a sub skeletal mesh on the vehicle. In the animBP of the chassis skeletal mesh, I do a get owner, cast to Fgear vehicle, get the mmesh, get animinstance, cast to Fgear animinstance, promote to variable. I then promote the axles transform to variables on tick which I then use to transform the hub, suspension and control arms in the animgraph. The second part of your question, yes get normalized steering angle is exposed to BP and it works nicely for steering rotation. For changing the number of rays, I’m not sure you can change it at runtime. But I think you can set it in the defaults panel. Also you can switch between raycast and convex at runtime but remember to use the apply wheel options node afterwards
Thank you gurusaint, very clever solution, but I’m developing for mobile platform and if I had direct access to the variables it would be better in terms of performance.
I saw through the documentation that it is possible to get the wheel transformation values through the “GetAxles” node within AnimBP, but I fear that these values do not come in local space and the rotation of the front wheels is mixed between Spin and turn, which would be useless in my case .
Can these variables that are displayed in telemetry be accessed by BP?
I could use “Speed” to spin the wheels, “SteerAngle” to correctly turn the kingpins and “RideHeight” to adjust the suspension.
Are you sure it is possible to space the rays? In the documentation, only the “Ray Count” and “Lateral Ray Count” options appear.
I believe all the telemetric variables are exposed to BP. Also you can get the axles and change the transformed space in the “transform bone” node in the animBP.