Re: note

技術的な知見やポエムなど役に立たない情報を書き連ねる場所

UE4でBluePrint HTTP REST通信

f:id:hik0leaf:20200724173231j:plain

Unreal EngineのBluePrintを使ってHTTP通信を行ってみます。

使用環境:UE4.25.1

1. 準備

BluePrintでHTTP通信を行うために、VaRestというプラグインを使用します。 マーケットプレイスからダウンロードすることができます。無料。

www.unrealengine.com

ダウンロードが終わったらゲームエンジンにインストールします。 次に使用するプロジェクトを開いてメニューの [Edit] > [Plugins]をクリックします。

f:id:hik0leaf:20200724174112j:plain

インストールしたVarestプラグインをEnabledにします。これでBluePrintからVaRestが使えるようになります。

2. GET

レベルブループリントを開いて以下のようにノードを配置します。接続先には httpbin.org を使っています(便利!)。 Xキーを押すと画面上にString型に変換されたJSONが表示されます。

f:id:hik0leaf:20200724174352j:plain

Get String Fieldノードを使用するとJSONオブジェクトから指定したフィールド値を取得することができます。

f:id:hik0leaf:20200724175351j:plain

3. POST

Request BodyにJSONを組み込んでPOSTする方法です。エラーハンドリングを入れています。

f:id:hik0leaf:20200724175603j:plain

成功すると以下のように返ってきます。

{
  "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通信ができると最高なのですが、あまり需要がないってことなのでしょうかね?