執筆: M.M
執筆バージョン: Unreal Engine 4.23
はじめに
引き続き、MATLABとUE4の連携アプリを作成していきます。前回はMATLAB側のアプリを作成したところで終わりました。今回はその続きでUE4側の設定を行いつつ、実際に動かすところまで紹介します。
UE4のプロジェクト編集
最初にUE4を立ち上げますが、通常の立ち上げを行わずにMATLABを経由して起動をしてみます。
まずMATLABを起動し、新規スクリプトを作成していきます。MATLABのウィンドウの「ホーム」→「新規スクリプト」を選択してください。
表示されたエディタに以下の内容を書いて保存してください。
editor = sim3d.Editor(fullfile("UE4の絶対パス"));editor.open();
1行目にあるfullfileの内部は作成したUE4の絶対パスを指定してください。
保存しましたら、そのファイルをコマンドウィンドウにD&Dしてください。一定時間後にUE4が立ち上がります。
UE4が立ち上がりましたら「ファイル」→「新規レベル作成」を選択し、次のウィンドウで「Default」を選択してください。
新しく生成されたレベルのアウトライナに配置しているFloorの詳細にある、拡大縮小のXをできるだけ大きな値に設定してください
次に以下の画像の通りに手順を行ってSimulink用の車を配置してください。
①コンテンツブラウザ右クリックして「Show in new content blowser
」を選択します。
②開いたウィンドウの戻るボタンを選択して、検索対象をすべてのアセットにします。
③「Sim3dPassVeh」を検索してアウトライナに配置してください。
※配置する際の注意点として必ず床(Floor)と接している必要があります。しない場合、実行したときにすぐエラーが発生し停止します。
配置した「Sim3dPassVeh」のタグ「SimulinkVehicle1」を追加します。
レベルブループリントを開いてクラス設定で「Sim3dLevelScript」を選択してください。また、デフォルトで配置されるカメラだと、車が正常に動いているかがわかりにくいため、以下の画像のようにカメラを設定するのが好ましいです。
以上で全ての準備が完了しました。
Simulinkの実行を押下して左下のステータスが初期化中になったら、UE4もプレイを押下してください。
実際に動かしてみた
アウトライナに配置しているsim3PassVehが動いていることがわかるかと思います
また、Simulinkが表示しているToVideoDisplayでは車窓が表示されたと思います。
まとめ
UE4とMATLABの連携について簡単にまとめました。これを応用することによって、MATLAB側から車の操作を任意で行ったり、UE4側でよりリアルな仮想空間を設定したりすることで、より精度の高いシミュレーションが行えるかと思います。
車のシミュレーションをする際に参考になれば幸いです。