はじめに
Unreal Engine 5で外部サービスにREST APIで接続する方法について調べてみました。
今回は、外部サービスとしてAzure Functions上にサンプルアプリケーションを作成し、REST APIで接続してみましたので下記に記載します。
作業概要
Unreal Engine 5からREST APIで接続するのに、Fetchプラグインを使用しました。
Fetchプラグインを使用すると、Unreal Engine 5のブループリントを使用してREST APIで接続する事ができます。
※Fetchプラグインは有料です。

Fetch - A Simple HTTP Client:コードプラグイン - UE マーケットプレイス
Unreal Engine 5からREST APIで接続するには、下記を実施します。
- Unreal Engine 5にFetchプラグインをインストールする
- Unreal Engine 5で任意のプロジェクトを作成する
- Unreal Engine 5でFetchプラグインを有効にする
- REST APIで接続するサービスを準備する(今回はAzure FunctionsのHTTPトリガーで、REST APIで接続するサービスを準備した)
- Unreal Engine 5のブループリントに、Fetchプラグインによる接続を設定する
作業手順
Unreal Engine 5にFetchプラグインをインストールする
Fetchプラグインを購入すると、Unreal Engine 5のエンジンにインストールできます。

Unreal Engine 5で任意のプロジェクトを作成する
今回は、サードパーソンプロジェクトを作成しました。

Unreal Engine 5でFetchプラグインを有効にする
Fetchをチェックして有効化した後は、画面右下のボタンを押してプロジェクトを再起動して下さい。

REST APIで接続するサービスを準備する
今回はAzure FunctionsのHTTPトリガーで、REST APIで接続するサービスを準備しました。
デプロイしたソースコードは下記です。
※名前、年齢を格納したjsonデータを返します。
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using System.Net.Http;
using System.Net;
using System.Text;
namespace FunctionApp20230110
{
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
Person p = new Person();
p.Name = "hoge";
p.Age = 45;
string json_str = JsonConvert.SerializeObject(p);
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StringContent(json_str, Encoding.UTF8, "application/json");
return response;
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
}
試しに、Postmanで動作を確認します。
名前、年齢がjsonデータで取得できました。

Unreal Engine 5のブループリントに、Fetchプラグインによる接続を設定する
レベルブループリントで下記を設定します。
ブループリントでFetch Jsonを配置して、Azure FunctionsのURLを設定します。
※Options MethodにGETを指定します。
取得したjsonデータは As Object と Get String を使用して必要な文字列を抽出できます。
※下記の画像ではjsonデータからNameを抽出しています。
今回は、取得したNameをPrint Stringで画面に出力します。

実行してみます。
画面左上に、今回取得したNameの内容が出力されました。

まとめ
Unreal Engine 5からREST APIで接続してデータを取得することができました。
Fetchプラグインでは、Get、Post、Put、Deleteメソッドを実行する事ができます。
Unreal Engine 5からREST APIで接続ができると、様々な外部サービスから取得したデータをUnreal Engine 5の世界に反映する事ができます。
Azure IoT Hub や Azure Digital Twins からデータを取得して活用することも可能になります。