Engine Component

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

NWH:VehiclePhysics2:Powertrain:EngineComponent [2020/06/19 15:30] (current)
Line 1: Line 1:
 +{{ :​NWH:​VehiclePhysics2:​Powertrain:​pasted:​20200314-101233.png }}
 +{{ :​NWH:​VehiclePhysics2:​Powertrain:​pasted:​20200314-101250.png }}
 +
 +''​EngineComponent''​ is a mandatory ''​Powertrain''​ component. It is always first in the ''​Components''​ list.
 +
 +== Inertia ==
 +Higher engine inertia results in an engine that is harder to stall. Such engine will also take longer to spin up.
 +
 +== Power Curve ==
 +Power curve represents engine power across its RPM range.
 +Both X and Y values are normalized where X (0 to 1) represents RPM as a percentage of ''​Rev Limiter RPM''​ and Y (0 to 1) represents power as a percentage of ''​Max Power''​. ​
 +
 +[{{ :​NWH:​VehiclePhysics2:​Powertrain:​pasted:​20200317-172525.png|Similar power output, different power curves.}}]
 +
 +== Idler Circuit ==
 +Idler circuit tries to keep RPM at ''​Idle RPM''​ when there is no user input. ​
 +
 +== Starter ==
 +Starter spins up the engine to try and reach the RPM at which the power generated by the engine is enough for it to spin by itself. If too low ''​Starter Torque''​ is used or ''​Starter RPM Limit''​ is lower than ''​Stall RPM''​ of the engine, the engine will fail to start.\\
 +
 +== Rev Limiter ==
 +Cuts throttle to the engine when RPM reaches ''​Rev Limiter RPM''​ for a duration of ''​Rev Limiter Cutoff Duration''​.
 +
 +== Forced Induction ==
 +{{page>​[NWH:​VehiclePhysics2:​Powertrain:​EngineComponent_ForcedInduction]}}
 +
 +== Power Modifiers ==
 +Power modifiers can be used through scripting to modify the power of the engine. These are functions that return a ''​float''​ which denotes an engine power coefficient. Example:
 +
 +<​code>​
 +public float AddBoost()
 +{
 +   ​if(boostIsActive)
 +   ​{ ​
 +       ​return 1.5f; // Increases power for 50%.
 +   }
 +}
 +...
 +myVehicleController.powertrain.engine.powerModifiers.Add(AddBoost);​
 +</​code>​
 +
 +This is a fictional example. A concrete example can be found inside TCS module which uses this mechanic to limit power when there is wheel spin.
 +
 +