スタンドアローン アプリケーションで、外部の API やサービスと連携しないものはほとんどありません。これは、オープンソース パラダイムや利用可能な人気の API が増加してきたことを考えると当然です。デベロッパーはゼロから何もかもを記述するのではなく、既存のコードを活用できるようになりました。
ソフトウェアで新しいパラダイムが生まれるたびに、それを支える新たなインフラストラクチャを構築する必要が生じます。過去数年間で、多くのデベロッパー ツールがこうした連携された豊富なアプリケーションを活用するように構築されてきました。
アンリアル エンジン 4 (UE4) には、Web サービス向けの堅牢な機能があります。Twitter の API などの外部データソースや AWS サーバーからのデータをアンリアル エンジンに取り込むことは Web API を統合した経験がない方々にとっては難しい課題です。多くの場合、単純な AJAX 呼び出しを介して WEB リクエストを処理することに精通しているデベロッパーは、同じ機能をレプリケートするために UE4 で基本的な C++ を記述しなければなりません。
現在、この問題に対処するために Helios Simple Data Integration (SDI) Plugin をオープンソース化しています。
この Helios SDI Plugin では、自動生成されるブループリント ノードを使って直接 Web サーバーと連携し (C++ コードは不要!)、外部データを簡単に UE4 クライアントに統合することができます。これを使えば、 iPad などのインターネット接続されたデバイスを介してインゲームの体験を制御し、データをサーバーに送り、それを他のクライアントが使い、UE4 アプリケーション内から Twitter、 Facebook、 Youtube などのサードパーティーの API と通信することができます。
Web サーバーとブループリントとの間のサーバー、クライアントのインタラクションを可能にすることで、幅広いスキル レベルのデベロッパーが、UE4 外部のデータ ソースをプルして (またはプッシュして) インゲームの体験を豊かなものにすることができます。
実例として、このデモ のようにネットワーク接続された iPad からゲームのスプレーガンの色を変更する機能を考えてみます。 “DecalColor” という名前の変数が作成された状態で、 サーバーはセットアップされており、 iPad は新しいデータをサーバーに送るように設定されています。ブループリントで “DecalColor” の値を取得するには、この変数を検索し、
自動生成されたノードをプロジェクトにドロップします。
以下は開始手順です。
- サーバーをセットアップし データを維持管理します。
- プラグインを設定し UE4 とサーバーが通信できるようにします。
- ノードの使用方法や、使用例については、プラグインの使用の記事 を参照してください。
皆さんのお役に立つかもしれないと考え、UE4 でこのプロジェクトを開発中に発生した問題や、実施した回避策を共有することにしました。プラグインの仕組みや、このオープンソース プロジェクトへの貢献などについてさらに学びたい場合は、技術的詳細の記事 をご覧ください。