【UE5】アクターを赤外線リモコンで動かしてみた
今回は、Arduinoと赤外線受信機を使いUnrealEngine5のアクターを動かしてみます。
赤外線受信部分(Arduino)の準備
今回利用したのは以下です。
・ArduinoUNO
・赤外線センサー
・赤外線リモコン
こちらが今回主役の赤外線(IR)センサーです。
今回は、受信のみに使っていますが送信もできる優れものです。
ArduinoUNOと赤外線センサーを接続しました。
リモコンは、赤外線タイプのテレビのリモコンを試しに利用してみました。
ArduinoIDEを起動しスケッチを作成します。
ソースの細かい説明は省略させて頂きますが、赤外線リモコンの信号を受信して受信した値に応じて数字の0~4をシリアルで表示させます。
今回はリモコンの十字キーの、
左ボタンの信号を受信した時は「1」
右ボタンの信号を受信した時は「2」
上ボタンの信号を受信した時は「3」
下ボタンの信号を受信した時は「4」
それ以外の信号を受信した時は「0」を表示させています。
※信号の値は予め、受信したコードを調べています
スケッチをArduinoに書き込みシリアルモニタを表示し、リモコンの各ボタンを押すとシリアルモニタにスケッチで記載した値が表示されるシンプルな動きです。
※スケッチのコードは要点を明確にするため最低限となっています。
例外処理を入れていなかったり、処理の一部を省略しているなど
業務で耐えられるコードとなっていないため、ご参考程度にお願いします。
また、ご利用される場合は自己責任でよろしくお願いいたします。
UnrealEngine5でシリアル通信をする準備
UE4.26までは、「UE4Duino」プラグインとしてマーケットプレイスでダウンロードできましたが、UE5用としては記事を作成している時点では見つけることができませんでした。
ソースコードがGitで公開されているのでダウンロードします。
注.UE4Duinoの使用は自己責任でお願いいたします
UE5で空のプロジェクトを作成し、一度プロジェクトを閉じておきます。
作成したプロジェクトフォルダの直下に「Plugins」というフォルダを作成しダウンロードした「UE4Duino」を保存します。
再びプロジェクトを起動すると、このプラグインは4.26.0ように設計されていますという旨の注意が表示されますが、そのままロードします。
※ビルドエラーが表示された場合は、VisualStudioでコンパイルが必要です
UnrealEngine5で動かすキャラクターを作成
プロジェクトを起動し、ブループリントアクターを作成します。
ビューポートで、Sphere、Cylinder、Coneを組み合わせこれからの時期にピッタリな可愛い(笑)雪だるまを作成しました。
Pluginsに保存した「UE4Duino」が正しくインポートされていればノードを引っ張ったときに、UE4Duinoが表示されます。
まずは動きを確認するため最低限のブループリントを組んでみました。
イベントBeginPlay ⇒ Open Serial Port Port:4 Baud Rate:9600
ポートは、Arduinoを接続し認識しているポートを数値で入力します
ボーレートは、スケッチで指定した値を入力します
イベントTick ⇒ Read String でArduinoから通信されている値を読み込みます
イベントEndPlay ⇒ ClosePort を接続しておきます
実行して、リモコンのボタンを押すとPrintStringした値が表示されます。
雪だるまが動くように、ブループリントを修正しました。
上を押すと前進、下を押すと後退、左右は方向転換です。
※上記ブループリントは要点を明確にするため最低限で作成しています
雪だるまは、方向転換した場合も同じ軸の方向へ動きます
今回は、赤外線受信部が手元にあったので赤外線で作成しましたが、無線の受信機があれば、ラジコンのコントローラで制御も可能ですね。
UnrealEngineと外部デバイスを接続することで、UEの可能性はさらに広がりそうです。