Unreal Engine SDK

1. Unreal Engineの対応バージョン

本SDKはUnreal Engine 4.10〜4.19の環境にて動作します。

Androidプラットフォームの場合
※ Android 2.3以降

iOSプラットフォームの場合
※ iOS 6.1以降

2. Unreal EngineのProjectへのSDKの取り込み方法

Step1:SmartBeatプラグインの追加

下記からSmartBeatのSDKをダウンロードしてください。

SmartBeat-UE4.zipを展開してSmartBeatフォルダを取り出し、プロジェクトのPluginsフォルダ(Pluginsフォルダがない場合は作成)にコピーしてください。

上の手順の後にUnreal Editorでプロジェクトを開くと、初回だけ以下のようにプラグインのビルドを促すダイアログが表示されるので、「Yes」を選択してビルドを行ってください。

C++を含まずにBlueprintのみで構成されるプロジェクトの場合は、そのままではプラグインのビルドが行われないため、Unreal EditorのメニューからFile > New C++ Class...を選び、C++クラスを追加してください。追加するクラスの種類はNone、名前はデフォルト値のままで結構です。C++クラスを追加した後でプロジェクトを再度開いてください。
※最初からC++を含むプロジェクトの場合は、C++クラスの追加は必要ありません。

Step2:APIキーの設定

Unreal EditorでツールバーのSettings > Project Settings...からProject Settingsを開いてください。

Plugins - SmartBeatのページの、IOS/Androidの項目の下にAPI Keyの項目があるので、SmartBeat Consoleより取得したAPIキーを設定してください。

Step3(Android):重複ユーザカウントの抑止

特に設定はありません。
※UnrealEngineによりGooglePlayServiceが読み込まれているため、常に有効になっています。
※本機能はGoogle Play services 4.0以降がイントールされた端末を使用するユーザカウントにのみ有効です(それ以外のユーザは従来通りカウントされます)。

Step3(iOS):重複ユーザカウントの抑止

※こちらの項目はiOS向けUnreal Engineプロジェクトへの組み込みに必要な項目です。

ユーザ数の集計にIDFAを使用することで、同一ユーザの重複カウントを抑止します。これにより、アプリの再インストールを繰り返す行為(俗に言う「リセマラ」)があった場合でも、不要なMAU(Monthly Active Users)数の増加を抑えることができます。

※ 重複ユーザカウントの抑止設定を有効にすることでオーディエンス機能も有効となります。
※本機能はiOS 6.0以降を利用のユーザカウントにのみ有効です。

本機能を有効にしない場合には、以下の手順は不要です。

リンカオプションの追加

Project SettingsのPlatforms - iOSのページを開き、「Additional Shipping Linker Flags」の項目に以下を追加してください。

-force_load "/プロジェクトのパス/Plugins/SmartBeat/Lib/IOS/libSmartBeatIdfa.a"


※Unreal Engine 4.10ではAdditional Shipping Linker Flagsが正しく機能しないため、上の設定を行っても重複ユーザカウントの抑止は有効にできません。

Step4(Android):SIGNAL取得の有効化

SIGNAL取得を有効にする場合、下記のようにUnreal Engineのソースコード(Engine/Source/Runtime/Core/Private/Android/AndroidMisc.cpp)を修正してください。

const int32 TargetSignals[] =
{
    SIGQUIT, // SIGQUIT is a user-initiated "crash".
    //SmartBeatでエラー取得するためコメントアウト
    //SIGILL,
    //SIGFPE,
    //SIGBUS,
    //SIGSEGV,
    SIGSYS
};

3. オプション機能

3.1 LogCat/NSLog出力

ネイティブのレイヤー(iOSの場合はObjective-CやC++、Androidの場合はJavaやC++)でクラッシュが発生した場合に、ネイティブのレイヤーから出力されたログをクラッシュデータとともにSmartBeatサーバへ送信します。
※64KBに満たない場合は最大500行、それ以外は64KBに収まる範囲で最新のログを取得します。
※Blueprintのレイヤーで発生したエラーについてはLogCat/NSLogは含まれません。
※iOS 10.0以降では本機能を有効にしてもNSLogをクラッシュデータに含めることはできません。

有効化方法

Project SettingsのPlugins - SmartBeatのページで「Enable NSLog」(iOSの場合)または「Enable Logcat」(Androidの場合)を有効にしてください。

3.2 ログ出力

Blueprintのレイヤーでログを保存して、クラッシュデータともにSmartBeatサーバへ送信します。
※64KBに満たない場合は最大500行、それ以外は64KBに収まる範囲で最新のログを取得します。

有効化方法

BlueprintのGraph Editorでコンテキストメニューを開き、SmartBeat > Log for SmartBeatを選択してノードを追加してください。

ノードの「Message」にログメッセージを設定してください。

3.3 ユーザID設定

対象のアプリケーションが管理するユーザを識別するIDが既にある場合、それを設定することができます。
設定されたユーザIDはクラッシュとともにSmartBeatサーバへ送信されます。どのユーザでクラッシュが発生したかなど管理コンソール上で確認が可能です。

有効化方法

BlueprintのGraph Editorでコンテキストメニューを開き、SmartBeat > Set User ID for SmartBeatを選択してノードを追加してください。

ノードの「User ID」にユーザIDを設定してください。

3.4 拡張情報

クラッシュ情報に拡張情報を付与することができます。アプリケーションによっては、ユーザが設定した情報や、アプリケーションが内部に保持している情報が、クラッシュ解析に役立ちます。

有効化方法

BlueprintのGraph Editorでコンテキストメニューを開き、SmartBeat > Add Extra Data for SmartBeatを選択してノードを追加してください。

ノードの「key」と「Value」に任意のキー名と値のセットを設定してください。

値を変更したい場合は、同じキー名で追加すると、新しい値で上書きされます。

3.5 パンくず(breadcrumb)機能

任意のポイントでパンくずを残すことにより、エラー発生までにユーザが行った操作や画面遷移などを収集することができます。

有効化方法

BlueprintのGraph Editorでコンテキストメニューを開き、SmartBeat > Leave Breadcrumb for SmartBeatを選択してノードを追加してください。

ノードの「Breadcrumb」にパンくずを設定してください。

パンくずは最後に記録されたものから最大16個保存されます。
例えば、「マップ画面」→「ゲーム画面」→「設定画面」などと、キーとなる画面の遷移時に残した場合、エラー直前にユーザがどのような画面遷移を行ったかを知ることができます。

3.6 エラー収集有効・無効切り替え

初期状態をエラー収集無効とし、途中からエラーの収集を有効にしたい場合に利用できます。

有効化方法

Project SettingsのPlugins - SmartBeatのページで「Disable at Startup」を設定して、起動時に有効とするか無効とするか設定してください。

その後、有効にしたい場合は、BlueprintのGraph Editorでコンテキストメニューを開き、SmartBeat > Enable SmartBeatを選択して、任意の箇所でノードを追加してください。Enable SmartBeatが実行された以降に発生したエラーの収集を行います。

3.7 オーディエンス機能

ユーザ識別子として Advertising ID for Android もしくは IDFA for iOS を使用することで、アプリケーションを利用するユーザの男女比や年齢分布を確認できるようになります。

有効化方法

重複ユーザカウントの抑止設定を有効にすることでオーディエンス機能も有効となります。重複ユーザカウントの抑止設定についてはこちら(Android)/(iOS)を参照ください。

4. 改版履歴

改版日 変更内容
2018年2月1日 初版リリース