Let's Enjoy Unreal Engine

Unreal Engineを使って遊んでみましょう

UE4 HTTPリクエストを投げてJsonを取得する

今回はインターネット上の特定URLに対してリクエストして、その結果のJsonを受けとるといった内容をやってみます。

 

今回はプラグインを使用します。使用するプラグインは以下にあるものを使わせていただきました。ありがとうございます!


[PLUGIN] JSON Query

 プロジェクトを作成

さて、普通にプロジェクトを作成するのですが、その前に注意をする必要があります。今回使用するプラグインはブループリントのみしか使用しないのですが、プラグインのバイナリーが現時点での最新安定板であるUE4.6.1に対応していないのか、C++プロジェクトを作成してビルドさせてあげる必要があります。

ビルドを行うにはWindowsだとVisual Studioのインストールが必須になりますので、以下のリンクからダウンロードしてインストールまで行ってください。また現在のVisual StudioはExpressではなくて、Communityという特別なバージョンになっています。特別理由がなければ、Communityの方をインストールします。。

ダウンロードの概要

 

Visual Studioが使えるようになったら新規プロジェクト作成をして、C++プロジェクトの作成を行います。

f:id:alwei:20150109223345j:plain

もし、ここでC++プロジェクトを作らなくてもプロジェクトの".uproject"ファイルを右クリックして、"Generate Visual Studio project files"でC++プロジェクトを作成することができます。

f:id:alwei:20150109223747j:plain

これで、プロジェクトが準備できました。

当然ながら用意したプラグインをプロジェクトに配置する必要がありますので、プロジェクトの中に"Plugins"フォルダーを作って、そこにJson Queryプラグインの中身をまるごとコピーしておきます。プラグインに関しては以下の記事で色々紹介していますので、参考に。

UE4で使えるプラグインいろいろ紹介 - Let's Enjoy Unreal Engine

あとはVisual Studio側からF5なりでエディターを起動すると自動的にプラグインを認識します。

HTTPリクエストを行う

レベルブループリントなどで実装を行います。やることは非常に単純です。"Create JSON Data"のノードを使用して、Jsonデータを作成し、それを保存しておきます。あとは"Post JSON Request"でリクエストを投げるだけです。

f:id:alwei:20150109224120j:plain

今回はJsonをテストするために以下のWebサイトに対してリクエストを投げています。

JSON Test by jsontest

実際に投げているのは、日時を取得するための専用のURLがあります。

http://date.jsontest.com

今回はこの場所に対してリクエストします。もちろん、これだけではリクエストを投げて終わりという状態なので、ちゃんとリクエストに対してのコールバックを処理します。全体で見ると以下のようなブループリントになります。

f:id:alwei:20150109224838j:plain

これを実行してFキーを押してみると…

f:id:alwei:20150109224938j:plain

Keyに対応したJsonの内容が取得できていることがわかります。ちなみに時間は日本時間ではないので、実際の時間とは20時間ちょっとの差があるようです。

Jsonに入れる内容は自分で作成可能

当然ですが、リクエストに使用するJsonは自分で作成可能です。

f:id:alwei:20150109225705j:plain

AddするたびにURLに追加されて、Keyに対応するJsonデータが作成されます。最後にPostした時点のものが結果として出力されます。どのようなJson配列になっているかは、"Get String Field"や、"Get String Array Field"ノードを使って確認が可能です。