Main Content

Simulink および Unreal Editor を使用したシーンのカスタマイズ

サポート パッケージのインストールと環境の構成の説明に従って Vehicle Dynamics Blockset™ Interface for Unreal Engine® Projects サポート パッケージをインストールした後で、Unreal® Editor と Simulink® の両方からカスタム シーンを同時にシミュレートできます。このコシミュレーション フレームワークを使用すると、車両とセンサーを Simulink モデルに追加して、このシミュレーションをカスタム シーンで実行できます。

サポート パッケージの以前のリリースを使用して開発したプロジェクトを使用するには、まず、Unreal Engine 5.1 との互換性をもつようにプロジェクトを移行します。以前のサポート パッケージを使用して開発されたプロジェクトの移行を参照してください。

Unreal Editor を開く

MATLAB® または Simulink の外部で Unreal Editor を開くと、Simulink はエディターとの接続を確立できません。この接続を確立するには、プロジェクトを Simulink モデルから開くか、または MATLAB 関数を使用する必要があります。

Unreal Editor を初めて開くときに、UnrealEditor DLL ファイルまたは AutoVrtlEnv モジュールをリビルドするように求められる可能性があります。[はい] をクリックして、これらのファイルまたはモジュールをリビルドします。また、エディターから、新しいプラグインが使用可能であるというプロンプトが表示されます。[Manage Plugins] をクリックし、[MathWorks Interface] プラグインがインストールされていることを確認します。このプラグインは、サポート パッケージのインストールと環境の構成で Unreal Editor のインストール環境にコピーした MathWorksSimulation.uplugin ファイルです。

'_BuiltData' という名前のファイルに関するメッセージは、関連付けられたレベルのライティング データが欠損していることを示します。実行可能ファイルを提供する前に、これらのレベルのライティングをリビルドする必要があります。

ライティングをリビルドする必要があるという警告が表示される場合、エディター ウィンドウの上のツール バーで [Build][Build Lighting Only] を選択します。シーンを初めて開くとき、またはシーンに新しい要素を追加するときに、エディターでこの警告が表示されます。Vehicle Dynamics Blockset の AutoVrtlEnv と共にインストールされるライティングを使用するには、カスタム シーンでの AutoVrtlEnv プロジェクトのライティングの使用を参照してください。

Simulink から Unreal Editor を開く

  1. 3D 環境でシミュレートするように構成された Simulink モデルを開きます。モデルには最低限、Simulation 3D Scene Configuration ブロックが含まれていなければなりません。

  2. このモデルの Simulation 3D Scene Configuration ブロックで、[シーン ソース] パラメーターを [Unreal Editor] に設定します。

  3. [プロジェクト] パラメーターで、カスタマイズするシーンが含まれたプロジェクト ファイルを参照します。

    たとえば、次のサンプル パスは、Vehicle Dynamics Blockset Interface for Unreal Engine Projects サポート パッケージと共にインストールされる AutoVrtlEnv プロジェクトを指定します。

    C:\Local\AutoVrtlEnv\AutoVrtlEnv.uproject
    次のサンプル パスはカスタム プロジェクトを指定します。
    Z:\UnrealProjects\myProject\myProject.uproject

  4. [Unreal Editor を開く] をクリックします。Unreal Editor が開いてプロジェクトからシーンが読み込まれます。

コマンド ライン関数を使用して Unreal Editor を開く

Vehicle Dynamics Blockset Interface for Unreal Engine Projects サポート パッケージからコピーされた AutoVrtlEnv.uproject ファイルを開くには、このプロジェクトをコピーした場所へのパスを指定します。たとえば、AutoVrtlEnv.uprojectC:/Local/AutoVrtlEnv にコピーした場合、次のコードを使用します。

path = fullfile('C:','Local','AutoVrtlEnv','AutoVrtlEnv.uproject');
editor = sim3d.Editor(path);
open(editor);

エディターで AutoVrtlEnv.uproject ファイルが開きます。

独自のプロジェクトを開くには、AutoVrtlEnv.uproject ファイルを開くのに使用したのと同じコマンドを使用します。変数 path.uproject ファイルへのパスに更新します。たとえば、プロジェクトが C:/Local フォルダーに保存されている場合は、次のコードを使用します。

path = fullfile('C:','Local','myProject','myProject.uproject');
editor = sim3d.Editor(path);
open(editor);

アクター ブループリントの親の再設定

メモ

Vehicle Dynamics Blockset Interface for Unreal Engine Projects サポート パッケージと共にインストールされる AutoVtrlEnv プロジェクトのシーンを使用している場合は、このセクションをスキップします。ただし、このプロジェクトのいずれかのシーンに基づいて新しいシーンを作成する場合は、このセクションを完了する必要があります。

Simulink からカスタム シーンを初めて開く場合、このプロジェクトを Vehicle Dynamics Blockset で使用される [Sim3dLevelScriptActor] レベル ブループリントに関連付ける、つまり "親を再設定" する必要があります。"レベル ブループリント" は、3D 環境に配置されたオブジェクトの 3D 環境との対話方法を制御します。プロジェクトの親が再設定されていない場合、Simulink はシミュレーションの開始時にエラーを返します。カスタム プロジェクトのシーンごとに、個別に親を再設定する必要があります。

レベル ブループリントの親を再設定するには、次の手順に従います。

  1. Unreal Editor のツール バーで、[Blueprints][Open Level Blueprint] を選択します。

  2. [Level Blueprint] ウィンドウで、[File][Reparent Blueprint] を選択します。

  3. [Sim3dLevelScriptActor] ブループリントをクリックします。[Sim3dLevelScriptActor] ブループリントがリストに表示されない場合は、次の手順に従って、MathWorksSimulation プラグインがインストールされて有効になっていることを確認してください。

    1. Unreal Editor のツール バーで、[Settings][Plugins] を選択します。

    2. [Plugins] ウィンドウで、インストール済みのウィンドウのリストに [MathWorks Interface] プラグインが表示されていることを確認します。プラグインがまだ有効になっていない場合は、[Enabled] チェック ボックスをオンにします。

      このウィンドウに [MathWorks Interface] プラグインが表示されない場合は、環境の構成の手順 3 を繰り返し、エディターを Simulink から再度開きます。

    3. エディターを閉じて Simulink から再度開きます。

  4. [Level Blueprint] ウィンドウを閉じます。

Unreal Editor でのシーンの作成または変更

エディターを開いた後で、プロジェクト内のシーンを変更したり新しいシーンを作成したりできます。

シーンを開く

Unreal Editor では、プロジェクト内のシーンは "レベル" と呼ばれます。レベルには複数のタイプがあり、シーンはレベル タイプ "マップ" をもちます。

あらかじめ用意されたシーンを AutoVrtlEnv.uproject ファイルから開くには、エディター ウィンドウの下にある [Content Drawer] ペインで、[Content][Maps] フォルダーに移動します。次に、変更するシーンに対応するマップを選択します。

Unreal Editor のマップ

Vehicle Dynamics Blockset のシーン

HwCurveCurved Road
DblLnChngDouble Lane Change
BlackLakeOpen Surface
LargeParkingLotLarge Parking Lot
SimpleLotParking Lot
HwStrghtStraight Road
USCityBlockUS City Block
USHighwayUS Highway

メモ

AutoVrtlEnv.uproject ファイルには、 Virtual Mcity シーンは含まれません。

独自のプロジェクト内のシーンを開くには、[Content Drawer] ペインで、シーンが含まれているフォルダーに移動します。

シーンへのデータ送信

Simulation 3D Message Get ブロックは、Unreal Engine 3D 可視化環境からデータを取得します。このブロックを使用するには、Simulink モデルにデータを送信するように Unreal Engine 環境内のシーンを構成する必要があります。

ブロックを使用してシーンにデータを送信する方法の詳細については、Unreal Engine 可視化環境との通信の開始を参照してください。

シーンからのデータの受信

Simulation 3D Message Set ブロックは、Unreal Engine 3D 可視化環境にデータを送信します。このブロックを使用するには、Simulink モデルからデータを受信するように Unreal Engine 環境内のシーンを構成する必要があります。

ブロックを使用してシーンからデータを受信する方法の詳細については、Unreal Engine 可視化環境との通信の開始を参照してください。

新しいシーンの作成

プロジェクト内に新しいシーンを作成するには、エディターの左上のメニューから [File][New Level] を選択します。

または、既存のシーンから新しいシーンを作成できます。この手法は、AutoVtrlEnv プロジェクト内のプリビルドされたいずれかのシーンを、独自のシーンを作成する開始点として使用する場合に役立ちます。現在開いているバージョンのシーンをプロジェクトに保存するには、エディターの左上のメニューから [File][Save Current As] を選択します。新しいシーンが既存のシーンと同じ場所に保存されます。

シーンへのアセットの追加

Unreal Editor では、シーン内の要素は "アセット" と呼ばれます。シーンにアセットを追加するには、下部にある [Content Drawer] ペインでアセットを参照するか検索して、エディター ウィンドウにドラッグできます。

AutoVrtlEnv プロジェクト内のシーンにアセットを追加する場合、ドライビング関連のアセットのライブラリから選択できます。これらのアセットは "静的メッシュ" として作成されており、接頭辞 SM_ で始まります。[Content Drawer] ペインでこれらのオブジェクトを検索します。

たとえば、AutoVrtlEnv プロジェクト内のシーンにトラフィック コーンを追加するには、次のようにします。

  1. エディターの下部にある [Content Drawer] ペインで、[Content] フォルダーに移動します。

  2. 検索バーで、SM_Cone を検索します。[Content Drawer] から編集ウィンドウにコーンをドラッグします。その後、編集ウィンドウまたは右側の [Details] ペインの [Transform] セクションで、コーンの位置を変更できます。

既定の気象をオーバーライドする場合や、シーン内で拡張霧条件を使用する場合は、[Exponential Height Fog] アクターを追加します。

Exponential Height Fog actor selection

Unreal Editor は、左手系の Z が上向きの座標系を使用し、ここで Y 軸は右方向を指します。Vehicle Dynamics Blockset の車両ブロックは、右手系の Z が下向きの座標系を使用し、ここで Y 軸は右方向を指します。シーン内にオブジェクトを配置するときに、この座標系の違いに留意してください。

シーンの変更およびアセットの追加の詳細については、Unreal Engine のドキュメンテーションを参照してください。

AutoVrtlEnv プロジェクトから独自のプロジェクト ファイルにアセットを移行するには、Unreal Engine のドキュメンテーションを参照してください。

カスタム シーンでの AutoVrtlEnv プロジェクトのライティングの使用

Vehicle Dynamics Blockset の AutoVrtlEnv プロジェクトと共にインストールされるライティングを使用するには、次の手順に従います。

  1. [World Settings] タブで、[Force no precomputed lighting] をオフにします。

    Unreal Editor World Settings tab

  2. [Build] で、[Lighting Quality][Production] を選択して、生産品質のマップを再作成します。複雑なマップの再作成には時間がかかることがあります。

    Unreal Editor Build menu

シミュレーションの実行

テスト シミュレーションを実行して、Simulink モデルと Unreal Editor がコシミュレートするように構成されていることを確認します。

  1. Simulink モデルで [実行] をクリックします。

    Unreal Editor で開かれるプロジェクトがシーンのソースであるため、シミュレーションは開始されません。代わりに、エディターからシミュレーションを開始する必要があります。

  2. Simulink の [診断ビューアー] ウィンドウに次のメッセージが表示されていることを確認します。

    In the Simulation 3D Scene Configuration block, you set the scene source to 'Unreal Editor'. In Unreal Editor, select 'Play' to view the scene.

    これは、Simulink が Unreal Engine 3D 環境で車両および他のアセットをインスタンス化したことを示す確認のメッセージです。

  3. Unreal Editor で [Play] をクリックします。Unreal Editor で現在開いているシーンでシミュレーションが実行されます。Simulink モデルに車両が含まれている場合、これらの車両は、エディターで開いているシーンを走行します。

シミュレーション中にシーンのビューを制御するには、Simulation 3D Scene Configuration ブロックの [シーン ビュー] パラメーターから車両名を選択します。シミュレーションの実行中にシーン ビューを変更するには、エディターで数値キーパッドを使用します。次の表に、[シーン ビュー] パラメーターで選択した車両を基準とする、シーンを表示するカメラの位置を示します。

カメラ ビューを滑らかに切り替えるには、次のキーボード ショートカットを使用します。

キーボード ショートカットカメラ ビュー

1

左後方

A diagram shows numbered key commands corresponding to camera views

 アニメーション GIF の表示

2

後方

3

右後方

4

5

内部

6

7

左前方

8

前方

9

右前方

0

その他のカメラ コントロールについては、次のキーボード ショートカットを使用します。

キーボード ショートカットカメラ コントロール
Tab

シーン内のすべての車両間でビューを切り替えます。

 アニメーション GIF の表示

マウスのスクロール ホイール

車両からのカメラの距離を制御します。

 アニメーション GIF の表示

L

カメラのラグ効果のオンとオフを切り替えます。ラグ効果を有効にすると、カメラ ビューに以下が含まれます。

  • 車両の並進加速度に基づく位置のラグ

  • 車両の回転速度に基づく回転のラグ

このラグにより、車両の加速と回転の全体的な可視化が改善されます。

 アニメーション GIF の表示

F

フリー カメラ モードのオンとオフを切り替えます。フリー カメラ モードを有効にすると、マウスを使用してカメラのピッチとヨーを変更できます。このモードを使用すると、車両の周りをカメラが旋回移動できます。

 アニメーション GIF の表示

シミュレーションを再実行するには、Simulink モデルで [実行] をクリックし、診断ビューアーに確認メッセージが表示されるまで待ってから、エディターで [再生] をクリックします。モデルでシミュレーションを開始する前に [再生] をクリックすると、Simulink と Unreal Editor の間の接続が確立されず、エディターに空のシーンが表示されます。

カスタム プロジェクトをコシミュレートしている場合、数値キーパッドを有効にするには、サポート パッケージのインストール フォルダーからカスタム プロジェクト フォルダーに DefaultInput.ini ファイルをコピーします。たとえば、次の場所から DefaultInput.ini をコピーします。

C:\ProgramData\MATLAB\SupportPackages\<MATLABRelease>\toolbox\shared\sim3dprojects\spkg\project\AutoVrtlEnv\Config

次の場所にコピーします。

C:\<yourproject>.project\Config

シミュレーション結果に基づいてカスタム シーンを調整した後で、シーンを実行可能ファイルにパッケージ化できます。詳細については、実行可能ファイルへのカスタム シーンのパッケージ化を参照してください。

参考

|

外部の Web サイト