Unreal 5 Conversion
If you created these vehicles in Unreal 4, and now require them in UE5 - this guide goes over that process.
You don't need to start your project in Unreal 4 - if you are already in UE5 the previous guide will work exactly the same except for a few minor adjustments highlighted in Vehicle Setup - Config Asset Adjustment (UE5)
This process is laborious and not recommended as the standard creation method. If you have vehicles made in PhysX that you absolutely need to convert, I recommend grabbing a nice drink and setting aside a chunk of time for this, as the process might take some time.
This process might look strange throughout - though has some logic behind it. The nesting of components and changing of actor means that information is not lost in the migration process. Chaos Physics removes a few key components when migrating that we have to ensure don't get caught up in the process.
First things first - in order to make sure your asset is safe in case of any errors, duplicate the blueprint of the vehicle and add the _UE5 suffix
Before we do anything else, go into your UE5 vehicle blueprint and add a new Skeletal Mesh Component
Now nest the entire components tab underneath the skeleton component EXCEPT the original skeletal mesh
Now we're going to want to go into the blueprint, go to Class Settings and set the parent class to "Actor"
Select reparent - this will break the blueprint, but ensures the data survives the migration process.
Next you'll want to migrate it to the respective UE5 content folder
You'll also want to migrate the Skeletons and Physics components, as changing the default class they're no longer referenced by the blueprint.
Remember to enable to UE5 Chaos Vehicles Plugin otherwise this process will not work
Once you've migrated everything to UE5, open up the project and the Hatchback blueprint, you'll notice lots of errors - don't worry, we'll be fixing those quickly!
You're going to want to change your Parent Class under Class Settings to WheeledVehiclePawn
Now delete the SteeringWheel Function in Functions tab and disconnect it from the Event Tick
You can also delete the SteeringWheel function in the Event Graph
Now reconnect the tick to the UI Mouseover Line Trace
Now head on over to the components tab and select everything nested under the SkeletalMesh we nested everything under earlier.
Drag them from under the SkeletalMesh and attach them to the Mesh (VehicleMesh) component
Delete the old SkeletalMesh component
Now we'll rebuild the vehicle's config files
Create a new Animation Blueprint using our vehicle skeleton
Click the Class Settings and set the Parent Class to to a VehicleAnimationInstance
Create a new float variable called "Steer Angle"
Now in the Event Graph reproduce the graph below:
Now head on over to the Animgraph and paste the code below, you should end up with a graph like this.
Remember to connect "Component to Local" to the "Output Pose"!
Right click on the XYZ variables in the bottom left, and promote it to the Variable "Rotation"
"Create Variable 'Rotation'" might not appear if you're clicking in the wrong area. Click on the empty space, NOT the text to promote it.
Next drag and drop the 'Steer Angle' variable created earlier and 'Get' It
Connect it to the rest of the graph as pictured below and remember to connect 'Component To Local' to the 'Output Pose'
Compile and save and head back to the Hatchback blueprint
Now let's rebuild the vehicle! Select the Mesh (VehicleMesh) Component and drag the hatchback skeleton onto the Skeletal Mesh in the Details panel
Check that Simulate Physics is enabled
Make sure "Simulate Physics" is enabled!
Now add the recently created animation blueprint
Select the Vehicle Movement Component in the details panel
On the right hand side, under the details panel - head on over to Wheel Setup and add Four new array elements to the Wheel Setups section
Now head back to your config files and create a ChaosVehicleWheel
Name it BP_Hatchback_Wheel_Front
Open your new BP_Hatchback_Wheel_Front actor and set the original dimensions for the wheel from the Wheeled Vehicle Component you set in UE4
You can find those dimensions Here.
Set your Axle Type to "Front" and check "Affected by Steering"
Make sure you check "Affected by Steering" and set the correct Axle Type
You might notice that the original method for defining the tyres (via a Data Asset) no longer exists and has been replaced with a graph system. This gives you more power to tweak your tyres. This guide will not go through creating one, the file below is the Lateral Slip Graph we'll be using.
Place these .uasset files in your content folder in WINDOWS EXPLORER. They should appear in the engine. There is also a TQC file, which we will use later - copy this as well.
Place the Lateral Slip Graph into the External Curve section
Make sure "Affected by Handbrake" is enabled
Duplicate the tyre blueprint and name it "BP_Hatchback_Wheel_Rear" Open it, set the Axle Type to Rear and uncheck "Affected by Steering"
Make sure you uncheck "Affected by Steering" and change the "Axle Type" to Rear!
Head back to your vehicle blueprint and select the Vehicle Movement Component
Add your Wheeled Vehicle blueprints to the corresponding array elements, two for the front, two for the rear.
Name the four bones for the wheels in this order:
Wheel_Front_Left
Wheel_Front_Right
Wheel_Rear_Left
Wheel_Rear_Right
Scroll down and now place the Torque graph you downloaded earlier into the torque curve section
We now have to replace all the vehicle movement components with the new chaos vehicle movement component. Simply drag and drop the Vehicle Movement Component and replace all the old ones in the graph.
Do this for the rest of the vehicle movement components.
The only difference is the steering wheel's angle is now set on the MoveAxis event.
Your new graph should look like this:
Make sure to also replace the handbrake input in the top right of the graph
You'll also need to update the unpossession - just refresh it with a new node "Event Unpossessed"
Now we can start to reassemble all the components for the vehicle. If your vehicle uses sockets (like the hatchback) this process is a lot more straightforward. If your vehicle doesn't - you'll have to manually reposition everything which can take some time.
Essentially we're rebuilding the same component menu from UE4. Nest the corresponding blueprints and UI elements inside the meshes and making sure their location is updated.
Drag and drop the corresponding assets to their parents and things should snap back into place.
If they don't snap, try updating the socket or manually repositioning them
Place the camera onto the SpringArm component, this will fix its location.
If you've followed all these steps, your vehicle should now be fully useable in UE5 *phew*
Last updated