Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Simulation 3D Message Get

Unreal Engine 可視化環境からのデータの取得

R2019b 以降

  • Simulation 3D Message Get block

ライブラリ:
Vehicle Dynamics Blockset / Vehicle Scenarios / Sim3D / Sim3D Core
Aerospace Blockset / Animation / Simulation 3D

説明

Simulation 3D Message Get ブロックは、Unreal Engine® 3D 可視化環境からデータを取得します。モデルで、Simulation 3D Scene Configuration ブロックが Simulation 3D Message Get ブロックと同じレベルにあることを確認します。

ヒント

Simulation 3D Scene Configuration ブロックが Simulation 3D Message Get ブロックよりも先に実行されることを確認します。これにより、Unreal Engine 3D 可視化環境でデータが準備されてから、そのデータを Simulation 3D Message Get ブロックで受信するようになります。ブロックの実行順序を確認するには、ブロックを右クリックして [プロパティ] を選択します。[一般] タブで、[優先順位] の設定が次のようになっていることを確認します。

  • Simulation 3D Scene Configuration0

  • Simulation 3D Message Get1

実行順序の詳細については、実行順序の制御と表示を参照してください。

データを送信するためのシーンの構成

このブロックを使用するには、Simulink® モデルにデータを送信するように Unreal Engine 環境のシーンを構成する必要があります。

  1. 車両運動のシミュレーションのための 3D シーンのカスタマイズをインストールします。

  2. Unreal® Editor で、Simulink にデータを送信するための次の一般的なワークフローに従います。詳細については、Unreal Engine 可視化環境との通信の開始を参照してください。

    Unreal Engine ユーザー

    ワークフロー

    ブループリント

    1. Simulink モデルに送信するデータ型に対応する Sim3DSet アクターをインスタンス化します。次の例は、Unreal Editor の Sim3DSet のデータ型を示しています。

      Image of Unreal Engine options

    2. Simulation 3D Message Get ブロックの [信号名] パラメーターと一致するアクターのタグ名を指定します。

    3. レベル ブループリントに移動します。

    4. Simulation 3D Message Get ブロックの [データ型] パラメーターと [メッセージ サイズ] パラメーターで指定されたデータ型とサイズに基づいて、Sim3DSet アクター クラスのブループリント メソッドを調べます。

      たとえば、次の Unreal Editor の図は、Write Array BooleanSim3DSetBoolean アクター クラス用のメソッドであり、配列のサイズが 30 である boolean データ型を送信することを示しています。

      Image of Unreal Engine blueprint connections

    5. シーンをコンパイルして保存します。

    メモ

    既定では、Double Lane Change シーンは NumOfConesHit というタグ名の Sim3DSetBoolean アクターをもちます。

    C++ クラス

    1. Simulink モデルで操作するメッシュまたはアセットの新しいアクター クラスを作成します。ASim3dActor からこれを派生させます。

    2. 新しいアクター クラスで、次を行います。

      • 信号名へのポインターをクラス フィールドとして宣言する。

      • クラス タグを取得する。

      • 信号ライターを作成して、メソッド Sim3dSetup でポインターを割り当てる。

      • メソッド Sim3dStep で、関数 WriteSimulation3DMessage を呼び出して Simulink モデルにデータを書き込む。

      • アクターのメソッド Sim3dRelease で、信号ライターを削除する。

    Unreal Editor の詳細については、Unreal Engine 4 のドキュメンテーションを参照してください。

端子

出力

すべて展開する

3D 可視化環境のシーン データから取得したデータ。Unreal Engine 環境で Sim3DSet クラスを使用して、Simulink モデルにデータを送信するようにシーン アクターを構成できます。

たとえば、Unreal Editor で、Double Lane Change シーンは NumOfConesHit というタグ名の Sim3DSetBoolean アクターをもちます。これを使用して、ダブルレーン チェンジの操縦中に車両が衝突したコーンの数を取得します。

次の表は、ReadMsg の配列要素に対応する Double Lane Change シーンのコーン名を示しています。

Simulation 3D Message Get ブロックの ReadMsg の値

Unreal Editor でのコーン名

Simulation 3D Message Get ブロックの配列要素

Unreal Editor でのコーン名

ReadMsg(1,1)SM_Cone5ReadMsg(2,1)SM_Cone10
ReadMsg(1,2)SM_Cone4ReadMsg(2,2)SM_Cone09
ReadMsg(1,3)SM_Cone3ReadMsg(2,3)SM_Cone08
ReadMsg(1,4)SM_Cone2ReadMsg(2,4)SM_Cone07
ReadMsg(1,5)SM_Cone01ReadMsg(2,5)SM_Cone06
ReadMsg(1,6)SM_Cone15ReadMsg(2,6)SM_Cone20
ReadMsg(1,7)SM_Cone14ReadMsg(2,7)SM_Cone19
ReadMsg(1,8)SM_Cone13ReadMsg(2,8)SM_Cone18
ReadMsg(1,9)SM_Cone12ReadMsg(2,9)SM_Cone17
ReadMsg(1,10)SM_Cone11ReadMsg(2,10)SM_Cone16
ReadMsg(1,11)SM_Cone25ReadMsg(2,11)SM_Cone30
ReadMsg(1,12)SM_Cone24ReadMsg(2,12)SM_Cone29
ReadMsg(1,13)SM_Cone23ReadMsg(2,13)SM_Cone28
ReadMsg(1,14)SM_Cone22ReadMsg(2,14)SM_Cone27
ReadMsg(1,15)SM_Cone21ReadMsg(2,15)SM_Cone26

パラメーター

すべて展開する

3D 可視化環境で信号名を指定します。Unreal Engine 環境で、[Details] ペインにある Sim3DSet アクター クラスの [Tags] プロパティを使用します。

たとえば、Double Lane Change シーンから、ダブルレーン チェンジの操縦中にコーンに衝突したかどうかを示すデータを取得できます。Double Lane Change シーンからコーン衝突データを取得するには、このパラメーターを NumOfConesHit に設定します。Double Lane Change シーンの Sim3DSet アクター クラスの [Tags] プロパティは NumOfConesHit に設定されます。

3D 可視化環境の信号のデータ型。サポートされるデータ型は、Unreal Engine のワークフローによって異なります。

ワークフロー

サポートされるデータ型

ブループリント

single

int32

Boolean

*C++ クラス

double

single

int8

uint8

int16

uint16

int32

uint32

Boolean

Unreal Engine 環境で、Simulink モデルに送信するデータ型の Sim3DSet アクター クラスをインスタンス化します。たとえば、Double Lane Change シーンから、ダブルレーン チェンジの操縦中にコーンに衝突したかどうかを示すデータを取得できます。Double Lane Change シーンからコーン衝突データを取得するには、このパラメーターを [boolean] に設定します。Double Lane Change シーンの Sim3DSetBoolean アクター クラスが、コーンに衝突した/衝突しなかったことを示す boolean データを送信するようにインスタンス化されます。

3D 可視化環境の信号の次元。Unreal Engine 環境のブループリントで、入力を Sim3DSet アクター クラスのノードに設定し、Simulink モデルに送信するデータの次元を指定します。

たとえば、Double Lane Change シーンから、ダブルレーン チェンジの操縦中にコーンに衝突したかどうかを示すデータを取得できます。Double Lane Change シーンからコーン衝突データを取得するには、このパラメーターを [2 15] に設定します。Double Lane Change シーンで、Sim3DSetBoolean アクター クラスのブループリント ノードの入力は 30 (シーン内のコーン数) に設定されます。

サンプル時間 (秒)。グラフィックスのフレーム レートはサンプル時間の逆数です。サンプル時間を -1 に設定すると、ブロックは Simulation 3D Scene Configuration ブロックに指定されているサンプル時間を使用します。

バージョン履歴

R2019b で導入