# Unreal Engine SDK Import Integration

Unreal Engine SDKを使用して、[Unreal Engine](https://www.unrealengine.com/)アプリからTreasure Dataへのデータ送信を開始できます。詳細については、次のリポジトリを参照してください。

![](/assets/image-20191022-132426.f322f86a09d78e50b2c307af1257421ea14e3b6fc60f4ed28604bd3eedc1d4b1.3fd85dbb.png)

- [Unreal Engine 4 SDK Repository](https://github.com/treasure-data/td-ue4-sdk)


## 要件

- Unreal Engine 4.14
- Treasure Data書き込み専用APIキー（**User** > **API Keys**を選択）


## はじめに

次のドキュメントは、現在のUnreal Engineがソースからコンパイルされているか、サードパーティプラグインをビルドできるようにすべての依存関係を持っていることを前提としています。

### プラグインのダウンロードと配置

メインGITリポジトリからプラグインのコピーを取得します：


```
$ git clone http://github.com/treasure-data/td-ue4-sdk
```

新しい**td-ue4-sdk**をEngineプラグインフォルダにコピーします。ターゲットパスは次のとおりです：


```
UnrealEngine/Engine/Plugins/td-ue4-sdk
```

> または、プラグインコンテンツをProjectプラグインディレクトリ内にコピーすることもできますが、このアプローチはLinux開発環境では機能しません。


## プラグインのビルド

プラグインをビルドするには、ビルドルールを生成する必要があります。この目的のために、UE4 Engineは**GenerateProjectFiles**というスクリプトを提供しています：

- GenerateProjectFiles.bat
- GenerateProjectFiles.sh


システム（UnixベースまたはWindow）に応じて、コマンドラインから適切なスクリプトを実行します：

- プラグインがProjectディレクトリ内（Project/Plugins）にある場合は、Projectルートディレクトリに移動してスクリプトを実行します。
- プラグインがEngine内にある場合は、Unreal Engineソースルートディレクトリからコマンドを実行します。


コマンドが終了したら、*make*コマンドを入力します：


```bash
$ make
```

数秒後、プラグインバイナリが利用可能になります。

### プラグインビルドフェーズの高速化

場合によっては、プラグインのみを再ビルドする必要があります。通常の*make*コマンドを使用すると、依存関係を修正するためにいくつかのスクリプトを実行するパースを行うため、数分かかる場合があります。プロセスを高速化するには、次のオプションを追加できます：


```bash
$ make UE4Editor ARGS=-canskiplink
```

## プロジェクトのAnalyticsプラグインを有効にする

Unreal Engine 4エディタ内で、プロジェクトと*plugins*ウィンドウを開きます：

- Edit > Plugins


次に、2つの必要なプラグインを有効にします：

- Blueprints：Built-in > Analyticsにあります
- Treasure Data：Installed > Analyticsにあります


![](/assets/image-20191022-132504.d8ef25004a8914d9aeb816f1eb52423fec61361b2651eb26a106463e80f05c0e.3fd85dbb.png)![](/assets/image-20191022-132513.795ddcb8d26225801bc0bb865cdde797762f202f6828b83cca73769d289dd941.3fd85dbb.png)

## プロジェクト設定を構成する

プロジェクトディレクトリから、*Config/DefaultEngine.ini*ファイルを開いて編集し、次の内容を下部に追加します：


```c++
[Analytics]
 ProviderModuleName=TreasureData
TDApiKey=TD-WRITE-ONLY-KEY
TDDatabase=DATABASE_NAME
SendInterval=10

[AnalyticsDevelopment]
 ProviderModuleName=TreasureData
TDApiKey=TD-WRITE-ONLY-KEY
TDDatabase=DATABASE_NAME
SendInterval=10

[AnalyticsTest]
 ProviderModuleName=TreasureData
TDApiKey=TD-WRITE-ONLY-KEY
TDDatabase=DATABASE_NAME
SendInterval=10
```

ファイルを保存し、Unreal Engine Editorを再起動します。

## Blueprintsを通じてメトリクスを収集する

エディタで、Blueprintsドロップダウンメニューを選択し、*Open Level Blueprint*オプションを選択します：

![](/assets/image-20191022-132603.0ebbdf6e5796a5cd6d2ad8fb6e0450ebc3a4dcd3b66aebc89b8ce7d24ff9a8b6.3fd85dbb.png)

Event graphsで、さまざまなイベントをAnalytics機能に接続できます。例として、次の画像は*Session Start*、*Session End*、*Record Event w/Attributes*イベントを追跡する方法を示しています：

ゲームが開始された後、プラグインはイベントをTreasure Dataに送信します。

## Treasure Data

ゲームイベントをクエリするには、Treasure コンソールに移動し、**Databases**を選択し、ゲームで使用されているデータベースを開きます（Config/DefaultEngine.ini > TDDatabase）：

![](/assets/image-20191022-132637.e2074fcadb175961c18432787b104e2c10deac7024895099460750092f25a6a8.3fd85dbb.png)

デフォルトでは、2つのテーブルが作成されます：

- Sessions：開始および停止セッション
- Events：属性の有無にかかわらずすべてのイベント。


レコードをクエリするには、テーブル名を選択し、*Query*ボタンを選択します。デフォルトでは、次の例のようにSQLクエリを発行できます：


```sql
SELECT * from events;
```

![](/assets/image-20191022-132726.316a30dce56d38fcfeaf69fc5934c01f73f7b3bf0802ed8f0a9a6c1b8c16e3d0.3fd85dbb.png)