This section explains all the features of the Drone Model & Game Template available on the UE Marketplace. The drone model consists solely of Blueprints, which can be easily added to your scene for use. It also includes templates that can be used for configurators and racing games.
- Drone Model
- Operation of the drone model
- Blueprints for drone models
- Blueprint Structure
- Blueprint parameters
- Configurator Templates
- Race Course Template
Operation of the drone model
(List of drone operations)
|Up / Down||E / Q|
|Left / Right||A / D|
|Forward / backward||W / S|
|Third-person camera switching||1|
|First-person camera switching||2|
|Truck camera switching||3|
|Side camera display position switching||4|
|Camera Up / Down||C / V|
To start the motor, press the ‘F’ key while the drone is stopped. The drone will start spinning its propeller after the motor is started, and all operations will be available.
To stop the motor, press the ‘F’ key while the drone is landing on the ground.
Up / Down
The ‘E’ key is assigned for upward movement and the ‘Q’ key is assigned for downward movement.
You can move up and down after starting the motor.
Left / Right 、 Forward / backward
The ‘A’ key is assigned to move left, and the ‘D’ key is assigned to move right.
The ‘W’ key is assigned for forward movement, and the ‘S’ key is assigned for backward movement.
You cannot move back and forth, left and right, unless you are in flight.
The judgement of the flight state is confirmed by the JudgeGround function in the Blueprint.
When moving forward, backward, left or right, the body will tilt.
The body tilt is implemented by the “BodyRotater function” in Blueprint.
You can turn by moving the mouse left or right.
Third-person camera switching
Use the ‘1’ key to switch to the viewpoint of the third-person camera installed behind the Blueprint.
The “Change Owner Camera” function in “CM_CameraControllComponent” is used to switch the viewpoint.
First-person camera switching
Press the ‘2’ key to switch to the first-person camera.
The camera for the first-person perspective is generated in advance in “Begin Play” of “CM_CameraControllComponent”.
The parameter “Front Camera” can be disabled by setting it to “False”.
The parameter “Front Camera Transfrom” allows you to fine-tune the generation position. By default, it is set to the entire surface of the drone.
The “Change Front Camera” function in “CM_CameraControllComponent” is used to switch the viewpoint.
Truck camera switching
Press the ‘3’ key to switch to the Truck camera.
This camera is fixed to the ground. The viewpoint always follows the drone. It assumes the perspective of the pilot.
The truck camera is generated in advance by “Begin Play” of “CM_CameraControllComponent”.
You can disable it by setting the parameter “Track Camera” to “False”.
The parameter “Track Camera Transform” is used to adjust the generation position.
The “Change Track Camera” function in “CM_CameraControllComponent” is used to switch the viewpoint.
Side camera display position switching
Use the ‘4’ key to switch the display position of the side camera.
Each time the ‘4’ key is pressed, the display switches in the order of lower right, upper right, upper left, lower left, and hidden.
The side camera is displayed after the motor starts.
Use the “Change Side Camera function” of “CM_CameraControllComponent” to switch the display.
The side camera uses a widget.
Camera Up / Down
Moves the viewpoint of the side camera. The ‘C’ key is assigned to move up, and the ‘V’ key is assigned to move down.
Parameter ‘CameraMoveMin’ sets the minimum value of the movement amount.
The parameter “CameraMoveMax” sets the maximum value of the movement amount.
Parameter “CameraMoveSpeed” sets the speed of the move.
The “Move Camera Capture function” of “CM_CameraControllComponent” is used to move the viewpoint.
Blueprints for drone models
Blueprints can be found in the following folder
|Body||Static mesh on the body|
|BodyArm_XX||Static mesh on body arm (*1)|
|PropellerArm_XX||Static mesh on propeller arm (*1)|
|Propeller_XX||Propeller static mesh (*1)|
|Trail_XX||Trail Effect (Niagara Particle System) (*1)|
|BodyCamera||Camera static mesh|
|SceneCaptureComponent2D||Scene capture component for side camera|
|SpringArm||Spring Arm Component|
|Camera||Camera for third-person view|
|FloatingPawnMovement||Components for movement. UE standard components|
|PropellerRotationComponent||Components that control the rotation of the propeller|
|CameraControllComponent||Components that control the camera|
|MaterialComponent||Components that control the material|
*1 FL:Front left FR:Front right RL:Rear left RR:Rear right
|[ Body Rotater ]|
|Default Relarive Rotation||Initial drone rotation value. Used to calculate the body tilt.|
|Rotate Max Angle||Maximum angle to tilt when moving forward, backward, left or right.|
|Rotate Speed||Maximum speed of tilting when moving forward, backward, left or right.|
|[ Drone Param ]|
|Distance to Ground||The distance from the drone to the ground. |
Used to determine if the drone is flying.
|Effect Display||Show/hide the drone’s Trail effect.|
Camera Control Components
|[ Track Camera ]|
|Track Camera Transform||Position of the track camera|
|TrackCamera||Track camera enable/disable switching|
|[ Scene Capture Component ]|
|CameraMoveMin||Minimum vertical movement of the side camera|
|CameraMoveMax||Maximum vertical movement of the side camera|
|CameraMoveSpeed||Vertical movement speed of the side camera|
|[ Front Camera ]|
|FrontCamera||Front camera enable/disable switching|
|FrontCameraTransform||Front camera position|
Propeller Rotation Components
|[ Propeller Component ]|
|Propeller Auto Start||Auto-start propeller rotation?|
When set to “True,” the propeller will always rotate
regardless of whether the motor is started.
|propeller Max Speed||Propeller rotation speed|
|AccelerationMaxTime||The speed at which the propeller reaches its maximum speed.|
|DecelerationMaxTime||The speed at which the propeller comes to a stop|
|PropellerSound||Sound effects of propeller rotation|
|[ Material Component ]|
|Material Instance||Setting up a material instance|
|Type No||Indicates “1:TypeA 2:TypeB 3:TypeC”|
|Color No||Represents “1-4”|
「Material Instance is defined as an array of type Map, where Key is of type Name and Value is of type Material Instance.
To identify the Material Instance to be used, create a Key string from “Type No” and “Color No”. Type No” is converted to a string by “No”, and “Color No” is edited to two digits with zero padding.
For example, if “Type No.” is “1” and “Color No.” is “2”, it will be “TypeA_02”.
In-flight judgment with the ground
To determine the flight status, the function “JudgeGround” in the Blueprint is used.
In JudgeGround, the distance to the ground is determined by LineTraceByChannel, and the Distance to Ground parameter of DroneParam is used as the distance reference.
This is a template for the configurator. The ability to change the material of the drone mesh is implemented by selecting the Type or Color button to change the drone material.
The sequencer “LS_Configurator” is used for the performance when the configurator is opened.
The UI of the configurator is defined by the following widget.
When the Type and Color buttons are pressed, their respective OnClicked events are called, and the “changeMaterial function” of the drone Blueprint “BP_DroneV4” and “CM_MaterialComponent” is called.
This complete does not save the changed “Type No.” and “Color No.”, but the actual implementation needs to keep the values in its own project.
However, the actual implementation needs to keep the values in its own project. For example, you can store them in a global location such as a GameInstance, and the drone in the game will need to use the values in that GameInstance to change the materials.
Race Course Template
This is a template for a drone race. A course for the drone to fly, and the ability to acquire items are implemented.
The course is created with blocks for level design.
Item acquisition and scoring
Items are implemented in blueprints.
When a drone overlaps an item, the BeginOverlap event executes the item acquisition process.
It is possible to set the score for each item, which can be set in the Blueprint parameters.
The value of the score is added to the score. The widget for scoring is shown below.
The process of adding scores is implemented in the level print, but in the actual game, you will have to implement your own GameMode.