Liling Liu
[Chaos Physics] Unreal Engine 5.2 物理約束可掛接拖車車輛教學 |Physics Constraint Hitchable Trailer
Physics Constraint Hitch-able Trailer

Here to use Driving Chaos Vehicle Projects to make hitchable trailer
Import Mesh and Texture: Crab the model and texture into Browser


Trailer already rig and skin
FBX import Options:
Skeletal Mesh: turn on
Combine Meshes: If you have many separate mesh, you could turn on
Plugins:
ChaosVehiclesPlugin

WheeledVehiclePawn
Create BP:

Right click mouse > Blueprint Class
All Classes:
search: vehicle
Select “ WheeledVehiclePawn ”

Mesh > Skeletal Mesh Asset > trailer

Wheel Setup
Select Vehicle Movement Component
This trailer has two wheels so Press 2 times to add
Wheel Setup > Wheel Setups > +

Go to Skeleton and copy bone name
Select the bone > right click > Copy selected Bone Names

Paste to Wheel setups index bone name

Turn on Simulate Physics

Trailer Physic
Open physics Asset

Select physic and delete
Because the default physic shape is not fit for the trailer

Select wheel bones > Primitive shape: Sphere >Add bodies

Select Root bone > Primitive shape: Single convex Hull >Add bodies

Input Action
Project settings

Go to Engine - Input

Action Mappings: Interact--> T

Animaton
Obtain the behaviors we want for our vehicle.
Select trailer skeleton > right click mouse > Create > Anim Blueprint

Opne AnimBP > Class Settings > class options > Parent Class : Vehicle Animation Instance
Mesh Space Ref Pose: this is used to return the mesh space reference pose for our skeletal mesh in the Animation Blueprint
Wheel Controller : offloading a lot of the work in creating these types of animations, you can use the Wheel Controller Node to drive the animations.

GO to BP_trailer
Select Mesh > Animation > Anim Class : ABP_trailer

Prepare Interaction Object
Open BP_CAR
Add Collision, and naming: Docking.

Blueprint > Blueprint Interface
A Blueprint Interface is a collection of one or more functions - name only, no implementation - that can be added to other Blueprints. This is essentially like the concept of an interface in general programming, which allows multiple different types of Objects to all share and be accessed through a common interface.

Functions: Interact
Inputs: car (BP_Car, object reference)

Open BP_car
Use for loop to check does implement interface, if true, does interact

Opne BP_Trailer
Add Collision
Naming: Trigger_coli

Add PhysicsConstraint
A physics constraint is a joint that allows you to connect two Actors or component together and also apply limits or forces on them.

Constraint
Conponent name 1: Mesh
Conponent name 2: Trigger_coli

Control Physics constraint - Angular Limits
Swing 1 motion (Z) : Limited, swing 1 limted: 60
Swing 2 motion (x): Locked
Twist motion (y): Locked

Add Text Render

1. Text: type the information.
2.Turn off visibility

Add cube
In order to let trailer to stand on the ground, so add cube

Add Interface
Class Settings > Implemented Interfaces > select BI_Interact

Add variables:
1. CanHitch :Boolean
2. TryHitch : Boolean
Select trigger_collision box add begin overlap and end overlap
When End overlap, try Hitch: turn off, and text does not show

When begin overlap, try Hitch: turn on

Get car docking and trailer trigger_coli’s world location and do float to integrate value
Does car docking X subtract trailer trigger X to get the value. The value is less equal what we want the value. However, we might be get the negative value, so here I use ABS to get positive value.
Does car docking Y subtract trailer trigger Y to get the value. The value is less equal what we want the value.
X and Y value both are true and return true.
Set true/false to can Hitch

Set text visibility and delay the time.
After completed, try hitch again to condition, if true, cast to bp_Car

Interact Event
If can hitch, the car connect to trailer to get movement and set constraint components. Turn off try hitch and set text visibility.
Otherwise, when press T again, release the throttle and break constraint, and set try hitch: turn on

Result:

Stand
When the car connects into the trailer, the stand is disappear.
Creat function: RemoveStand
Add Variables: StandRemovedBool :bool
Open RemoveStand function:
Destory stand compoent, and set standRemovedBool: on, and call stand removed
Event Dispatchers: StandRemoved

Event graph
Using event tick to do event StandRemoved.
If stand is valid, remove stand. If not, do once to print string

Event Interact:
Remove stand event and turn off standRemovedbool

Result:

Youtube Tutorial:
Plugins: ChaosVehiclesPlugin
Sketchfab - Car Scene:
https://sketchfab.com/3d-models/car-scene-b7b32eaca80d460c9338197e2c9d1408
Sketchfab - Generator Trailer:
https://sketchfab.com/3d-models/generator-trailer-c07a679eadb64c15b26cb063b8a736ae
Physics Constraint Component:
https://docs.unrealengine.com/5.2/en-US/physics-constraint-component-user-guide-in-unreal-engine/
How to Set up Vehicles Unreal Engine 5.0
https://docs.unrealengine.com/5.0/en-US/how-to-set-up-vehicles-in-unreal-engine/
Ref: Unreal Engine Truck Tutorial: Trailer System
https://www.youtube.com/watch?v=YLoOH24sKf8
教學專案和文件下載 / Full Project and Document Download:
贊助 / Support Me
BuyMeAcoffee: https://www.buymeacoffee.com/lutopialab
Patreon: https://www.patreon.com/LutopiaLab/
#ChaosPhysics #car #UnrealEngine5 #教學 #虛幻引擎 #車子#Vehicle #Drive #PhysicsConstraint #可掛接拖車 #HitchableTrailer