skip to Main Content

UE5-Create a drivable car

1. Import your car fbx with skeletal mesh ticked

· we are going to have 3 items:

· mesh (UE5Car)

· physics-asset (UE5Car-PhysicsAsset)

· skeleton (UE5Car_Skeleton)

* we’ll also have the materials which we should transfer to a new folder – Materials

· open the mesh, go to Asset Details and make sure that all the materials are correctly assigned

· next open the skeleton and make sure that the bone hierarchy is correct.

* an ideal hierarchy should be something like this:

· Root

· FL

· FR

· RL

· RR

· next open physics asset. if the physics bodies are not correct, delete them and recreate them.

* Remember to click on the settings-wheel and choose “Show All Bones”

2. Edit->Plugins and install ChaosVehiclesPlugin (a restart of UE5 may be required)

3. Create a Blueprints folder, and open it.

4. Right-click in the Blueprint folder,

· select [Blueprint Class],

· expand All Classes,

· search for WheeledVehiclePawn and

· create.

· Rename your Blueprint to a meaningful name (ie: CarBP) and open it. It will open in the Blueprint Editor.

· In the Components tab (left side) you will have three components:

CarBP (self)

Mesh (VehicleMesh) (Inherited)

Vehicle Movement Component (VehicleMovementComp) (Inherited)

· Click the Mesh to select it and from the Details tab at the right find the Mesh/Skeletal Mesh and select the UE5Car mesh.

Now from the Components tab:

· Click [Add] button and add a SpringArm under the Mesh,

and under the SpringArm Add a Camera

· Adjust the SpringArm’s position and rotation so the camera captures the Car at a good angle

· The SpringArm should not inherid the rotation of the controller, so with the SpringArm selected in the Components tab,

find the [Camera Settings] in the Details Tab, and uncheck all CheckBoxes under it.

· Also, turn off Camera collission: under the [Camera Collision] make the Probe Size: 0 and uncheck the [Do Collision Test]

· Select the Vehicle Movement Component

· From the [Details] Tab to the right, locate the [Wheel Setup] section

· and add 4 elements under the Wheel Setups by clicking the (+). Each element represents a wheel.

· Expand each wheel element and enter the Bone-Name for each wheel, in this sequence:

0-FrontLeft (FL)

1-FrontRight (FR)

2-RearLeft (RL)

3-Rear-Right (RR)

* You can find the BoneNames in the UE5Car_Skeleton

Next, we have the Engine Setup – under the [Mechanical Setup] section:

Notice the Max Torque value under the graph (the default is 300 which is fine)

· Open the Torque Curve Editor and create a curve from 0 to 300 by adding points to the graph by Shift+Click.

5. Right-click in the Blueprint folder,

select [Blueprint Class],

expand All Classes,

search for ChaosVehicleWheel and create.

* This Blueprint will contain all the settings for the the wheels, so it is basically our wheels profile/template.

* We need two Wheel Blueprints, one for the Front wheels and one for the Rear.

· Name the first one FrontWheel

· Duplicate it and name the other one RearWheel

· Open the FrontWheel Blueprint and in the Details Tab we are going to adjust its settings:

Under the Wheel section change the following:

· Axle Type: Front

· Check – Affected by Break

· Check – Affected by Engine (depending on your vehicle being AWD or FWD)

· Uncheck – Affected by Handbreak

· Check – Affected by Steering

· Change Max Steer Angle to 45

· Open the RearWheel Blueprint and in the Details Tab we are going to adjust its settings:

Under the Wheel section change the following:

· Axle Type: Rear

· Check – Affected by Break

· Check – Affected by Engine (depending on your vehicle being AWD or RWD)

· Check – Affected by Handbreak

· Uncheck – Affected by Steering

· After creating these objects, we need to add them into the CarBP Blueprint:

Open the CarBP Blueprint, select [Vehicle Movement Component], in the Details Tab locate the Wheel Setup section and expand it.

Expand each Wheel group and modify its [Wheel Class] accordingly:

· For the two Front Wheels, select [FrontWheel] from the drop-down menu.

· For the two Rear Wheels, select [RearWheel] from the drop-down menu.

· Next, Select the Mesh Component from the Components list, and from the Details Tab,

· Locate the Physics Section and make sure that the [Simulate Physics] is Checked

All Done! Our car is configured.

6. Now we need to create our Player Start:

Return to the main UE5 window and click the [Create] button (the white cube with the green [+], upper left),

expand Basic and choose [Player Start]

* This is where our player will be spawned

7. Right-click in the Blueprint folder, click BluePrint Class and

Click on [Game Mode Base] to create a new Blueprint and rename it to [CarGameMode]

· Open the Game Mode and from the Details Tab locate the Classes section,

and change the Default Pawn Class to [CarBP] object.

8. Open the World Settings (Window/World Settings)

· Change the GameMode Override into [CarGameMode]

· Also expand the [Selected GameMode] section and confirm that:

· Default Pawn Class is [CarBP]

9. Run the game to check that our car is spawned correctly.

* At this point, the suspension should be working as expected.

10. Stop the game

11. Open the [CarBP] Blueprint, switch to the Event Graph and click on the SpringArm to select it.

· Drag the SpringArm and drop it in the EventGraph

· Drag the SpringArm node and in the dropdown search for AddRelativeRotation and click it.

* This will help you change the rotation of your camera

· Right-click the Delta Rotation and click [Split Struct Pin] to split the vector into separate x,y,z values

· Ctrl+D to duplicate that, connect it with the SpringArm

· Now we need to add two mouse axes,

· Right-click in the EventGraph, search for mousex and select the · [Mouse X Event]

· Right-click in the EventGraph, search for mousey and select the · [Mouse Y Event]

· Connect the [Axis Value] of the [Mouse X Event] on the first Relative Rotation node [Delta Rotation Z(Yaw)]

* Any movement of the mouse on the X axis will affect the camera on the Z axis

* Connect the Exec node of the [Mouse X Event] on the [AddRelativeRotation] node as well!

· Connect the [Axis Value] of the [Mouse Y Event] on the second Relative Rotation node [Delta Rotation Y(Pitch)]

* Any movement of the mouse on the Y axis will affect the rotation of the camera on the Y axis

12. Test the game again, and you should see that you have a free rotating camera!

* Now notice that your car wheels:

1. they might touch the ground normally:

2. they might be above ground – like flying

3. or they might be inside the ground…

· if the wheels are flying or are inside the ground:

Open the Wheel classes [FrontWheel] and [RearWheel],

locate the [Wheel] Tab,

and increase or decrease the [Wheel Radius] accordingly until you manage to correct the wheels touching the ground.

13. Now let’s program the movement of the Car:

Open the [CarBP] Blueprint

Select the Vehicle Movement Component and drag it into the EventGraph window.

· Click and drag its node and from the drop-down search for [Set Throttle Input] and create It

· Click and drag its node again and from the drop-down search for [Set Brake Input] and create It

· Click and drag its node again and from the drop-down search for [Set Steering Input] and create it

· Click and drag its node again and from the drop-down search for [Set Handbrake Input] and create it

* These four nodes will control the movement of the vehicle.

14. Now we need to setup the axis mappings and the input mappings

· Go to Edit/Project Settings

· In the Input section there is an option for Action mappings and Axis mappings

· In the [Action Mappings] click (+) to add an action mapping and name it [Handbrake]

· Bind it to the Space Bar key

· In the [Axis Mappings] add (+) three new mappings:

1. first one will be Throttle. Bind it to the [W] key and make sure its scale is 1.0

2. second one will be Brake. Bind it to the [S] key and make sure its scale is 1.0

3. third one will be Steering. Bind it to the [A] key and set its scale to -1.0

· we also need to add another key under Steering and bind it to the [D] key and set its scale to 1.0

15. Open the CarBP Blueprint and connect the respective axis events into the respective inputs:

· Right-click in the EventGraph,

search for Throttle, Brake and Steering (under Axis Events) and create them

search for Handbrake (under the Action Events) and create It

* Now connect each event respectively

* For the Handbrake you need to duplicate the SetHandbrakeInput because we need one for On and one for Off.

Connect the first one to the InputAction Handbrake [Pressed] and the other one to the [Released]

16. Test the game again, and you should see that the car is moving and responding to the WSAD keys and Space as well.

* Notice that the wheels are static in this stage.

17. For the rotation of the wheels we need to create an Animation Blueprint:

· In the Content Browser, locate our car’s skeleton file [UE5Car_Skeleton],

right-click it, expand Create and select Anim Blueprint to create it.

· Name it [UE5Car_AnimBP]

· Open the [UE5Car_AnimBP], click on [Class Settings]

Locate the Parent Class under the [Class Options]

and change it into [Vehicle Animation Instance]

· Right-click in the AnimGraph window and search for [Wheel Controller for WheeledVehicle] and create It.

· Connect it into the [Output Pose]

· Right-click in the AnimGraph window and search for [Mesh Space Ref Pose] and create it.

· Connect it into the [Wheel Controller]

18. Now we need to link this Animation Blueprint in the [CarBP]

· Open the [CarBP], select the Mesh and under the Animation section

· Make sure that Animation mode is set to [Use Animation Blueprint]

· Set the Anim Class to [UE5Car_AnimBP_C]

19. Test the game again, and you should have rotating wheels too!

* You will notice that we have a blurring effect on the wheels while they rotate.

If you want to fix this:

Open Project Settings and search for [Motion Blur] and uncheck it.

 

This Post Has 0 Comments

Leave a Reply

Back To Top