UE4でBluePrint HTTP REST通信
Unreal EngineのBluePrintを使ってHTTP通信を行ってみます。
使用環境:UE4.25.1
1. 準備
BluePrintでHTTP通信を行うために、VaRestというプラグインを使用します。 マーケットプレイスからダウンロードすることができます。無料。
ダウンロードが終わったらゲームエンジンにインストールします。 次に使用するプロジェクトを開いてメニューの [Edit] > [Plugins]をクリックします。
インストールしたVarestプラグインをEnabledにします。これでBluePrintからVaRestが使えるようになります。
2. GET
レベルブループリントを開いて以下のようにノードを配置します。接続先には httpbin.org を使っています(便利!)。 Xキーを押すと画面上にString型に変換されたJSONが表示されます。
Get String Fieldノードを使用するとJSONオブジェクトから指定したフィールド値を取得することができます。
3. POST
Request BodyにJSONを組み込んでPOSTする方法です。エラーハンドリングを入れています。
成功すると以下のように返ってきます。
{ "args": {}, "data": "", "files": {}, "form": { "id": "test_id", "password": "mypassword" }, "headers": { "Accept": "*/*", "Accept-Encoding": "deflate, gzip", "Content-Length": "30", "Content-Type": "application/x-www-form-urlencoded", "Host": "httpbin.org", "User-Agent": "HttpRequest01/++UE4+Release-4.25-CL-13594126 Windows/10.0.18363.1.256.64bit", }, "json": null, "origin": "xxx.xxx.xxx.xxx", "url": "http://httpbin.org/post" }
4. まとめ
VaRestを使うことでBluePrintからHTTP REST通信を行うことができました。VaRestの公式ドキュメントには具体的な方法が記されていなかったので参考になれば幸いです。
本記事の内容もマーケットプレイスの Questions の販売者の回答を参考にしています。より詳しい使い方が知りたい場合は、Questionsの内容を探してみるか販売者に直接質問してみるのが良いかもしれません。
本来であればUE4の標準機能としてBluePrintからHTTP REST通信ができると最高なのですが、あまり需要がないってことなのでしょうかね?