Unreal Engine 5を使ってみる その1(Datasmith、DUALSHOCK 4)
はじめに
ロボットのシミュレーションをしようということで、Unreal Engine 5を触ることになりました。これまでハードウェアとソフトウェアの両面でロボットの製作をしていたのですが、その経験を活かしていこうと思っています。
少し触っていると、これまで設計していたロボットのCADデータを取り込めたり、プログラミングがNode-REDと同じタイプだったりで、すぐに使えそうです。やりたいことがいっぱいあります。
まずは情報収集
まずはUnreal Engine 5で何ができるのかを調べてみました。
▼ちょうど分かりやすい動画がありました。ゲーム開発以外の分野でも使われているようですね。
自動車の例が面白いですね。リアルタイムレンダリングができて、色違いの商品を見比べたり、シミュレーション上で走行させたりできるようです。なるほど...
▼オブジェクトや人物など、すでに用意されている素材もあるようです。
https://www.unrealengine.com/ja/metahuman
▼こちらのページにはUnreal Engine関連の情報が集まっています。チュートリアルもありますね。
https://gamemakers.jp/category/game-create/tutorial/
▼ニュースのページを見ていると、流体シミュレーションを行うプラグインがあるのだとか。
https://gamemakers.jp/article/2024_04_06_65321/
▼猫でも分かるシリーズが紹介されていました。Unreal Engine 4の内容ですが、参考になりそうです。
Unreal Engine 5を起動してみる
Unreal Engine 5.1.1をインストールし、起動してみました。Windows環境で実行しています。
▼ダウンロードページはこちら
https://www.unrealengine.com/ja/download
▼Epic Games Launcherで起動できます。マーケットプレイスにあるアセットも追加できるようです。

▼今回はサードパーソンのプロジェクトを作成しました。

▼開いてみるとこんな感じ。上の欄にある緑色の三角ボタンを押すと、早速操作することができます。

Fusion360のデータをインポート
3DCADである、Fusion360で設計したロボットをインポートしてみました。
Datasmith CAD Importerを使います。
▼こちらの記事で紹介されていました。
https://metatimecg.com/how-to-use-datasmith/
▼編集→プラグインでプラグインを追加することができます。

▼Datasmithの「ファイルをインポート」から、CADのデータを取り込むことができます。

ハッカソンのときに作ったものをインポートしてみました。まずはFusion360で設計したときのデータをご覧ください。
▼スマホを運ぶロボットです。
▼Fusion360で設計したデータはこちら


▼Fusion360でレンダリングしてみるとこんな感じ。


▼実際に作ったものがこちら。木材をレーザーカッターで切断して組み立て、塗装して赤くしました。PS4のコントローラで操作できます。


▼Unreal Engine 5に取り込むとこんな感じ。色のデータも引き継がれているみたいですね。

▼他にもOBJやFBXを取り込めるようです。こちらの記事が分かりやすかったです。
https://metatimecg.com/ue5-how-to-import-3dmodel/
PS4のコントローラで操作する
PS4のコントローラ(DUALSHOCK 4)で操作できるように設定してみました。ロボットの操作も、PS4のコントローラで行うことがよくあります。
▼よくマイコンと接続して使っています。
▼こちらの記事を参考に設定すると、操作できるようになりました。Windows RawInputというプラグインを使っています。
https://qiita.com/suramaru517/items/a42199126a6b634c55ca
プロジェクトのConfigフォルダにあるDefaultInput.iniを編集するのですが、場所が分かりにくいかもしれません。プロジェクトを一旦閉じて、開くときに右クリックをするとエクスプローラーで表示することができます。
▼これで開くのが楽だと思います。

記事を参考にブループリントというフローエディタで、コントローラのプログラムを用意しました。
▼フローのアイコンから、新規のブループリントクラスを作成します。

▼Player Controllerを選びました。

▼Blueprintsに保存しました。

記事の中でマクロのコピペ用テキストがあったのですが、どこでもいいのでCtrl+Vで貼り付けると、マクロが追加されました。
▼Node-REDと同じフロー型!雰囲気は何となく分かります。

ちなみに、PCとコントローラの接続がすぐに切れることがあったのですが、単にバッテリー不足だったりしました。普段は有線でパソコンに接続しています。
接続されていても反応しないことがあったのですが、プロジェクトを開きなおすと解決したりしました。
▼コントローラで操作して2ショット!

最後に
まだ少ししか触っていませんが、すぐにキャラクターを操作出来たり、用意されている素材を使えたりと、便利に使えそうです。キャラクター操作のプログラムとかは書きたくないですね...
普段CADで設計していると、データを取り込んだときの寸法が気になったりします。また詳しく見ていこうと思います。カメラを搭載したロボットのシミュレーションとかが出来そうですね。
▼大きさを変えないで対比するとこんな感じです。同じくらいの大きさかもしれません。

