Simulation 3D Message Set
Send data to Unreal Engine visualization environment
Vehicle Dynamics Blockset / Vehicle Scenarios / Sim3D / Sim3D Core
Aerospace Blockset / Animation / Simulation 3D
Simulink 3D Animation / Simulation 3D
The Simulation 3D Message Set block sends data to the Unreal Engine® 3D visualization environment. In your model, ensure that the Simulation 3D Scene Configuration block is at the same level as the Simulation 3D Message Set block.
Verify that the Simulation 3D Message Set block executes before the Simulation 3D Scene Configuration block. That way, Simulation 3D Message Set prepares the signal data before the Unreal Engine 3D visualization environment receives it. To check the block execution order, right-click the blocks and select Properties. On the General tab, confirm these Priority settings:
Simulation 3D Scene Configuration —
Simulation 3D Message Set —
For more information about execution order, see Control and Display Execution Order.
Configure Scenes to Receive Data
To use the block, you must configure scenes in the Unreal Engine environment to receive data from the Simulink® model:
Install the Customize 3D Scenes for Vehicle Dynamics Simulations.
In the Unreal® Editor, follow these general workflows to receive data from Simulink. For detailed information, see Get Started Communicating with the Unreal Engine Visualization Environment.
Unreal Engine User
Sim3DGetactor that corresponds to the data type you want to receive from the Simulink model. This example shows the Unreal Editor
Specify an actor tag name that matches the Simulation 3D Message Set block Signal name parameter.
Navigate to the Level Blueprint.
Find the blueprint method for the
Sim3DGetactor class based on the data type and size that you want to receive from the Simulink model.
For example, in Unreal Editor, this diagram shows that
Read Scalar Integeris the method for
Sim3DGetIntegeractor class to receive
int32data type of size scalar.
Compile and save the scene.
By default, the Double Lane Change scene has a
Sim3DGetIntegeractor with tag name
Create a new actor class for the mesh or asset that you want the Simulink model to interact with. Derive it from
In the new actor class:
Declare a pointer to the signal name as a class field.
Get the class tag.
Create a signal reader and assign the pointer in the method
In the method
Sim3dStep, invoke the
ReadSimulation3DMessagefunction to read the data from a Simulink model.
Delete the signal reader in the method
Sim3dReleaseof the actor.
For more information about the Unreal Editor, see the Unreal Engine 4 Documentation.
WriteMsg — Data sent to scene
Data sent to the 3D visualization environment scene. In the Unreal Engine environment, you can configure the
Sim3DGet class to
receive the data from the Simulink model.
For example, in the Unreal Editor, the Double Lane Change scene has a
Sim3DGetInteger integer actor with tag name
TrafficLight1. The integer actor reads
data type from the Simulink model. You can use it to control the traffic signal light color.
table provides the scene traffic signal light color that corresponds to the
WriteMsg value in the Double Lane Change scene.
Simulation 3D Message Set Block
Signal name, SigName — Message signal name
Specifies the signal name in the 3D visualization environment. In the Unreal Engine environment, use the
Sim3Get actor class 'Tags'
property located in the 'Details' pane.
For example, you can send data to the double lane change scene that changes the
traffic signal light color to red, yellow, or green. To send data to the traffic signal
light, set this parameter to
TrafficLight1. In the double lane change
scene, the 'Tags' property value for
Sim3dGetInteger actor class is
set to TrafficLight1.
Sample time — Sample time
0.02 (default) |
Sample time, in s. The graphics frame rate is the inverse of the sample time. If you set the
sample time to
-1, the block uses the sample time specified in the
Simulation 3D Scene Configuration block.
Introduced in R2019b