Game > Gamebase > Unreal SDK使用ガイド > 開始する

Gamebase Unreal SDKの使用環境および初期設定の説明を行います。

Environments

[参考]

Unrealサポートバージョン

  • UE 4.27~UE 5.7
  • 他のバージョンのサポートが必要な場合はサポートへお問い合わせください。

Supported Platforms

  • Android
  • iOS
  • Windows

選択したプラットフォームでサポートしないGamebase APIを呼び出す時は、下記のエラーがコールバックで返り、コールバックがない場合はWarningログが出力されます。

  • GamebaseErrorCode::NOT_SUPPORTED
  • GamebaseErrorCode::NOT_SUPPORTED_ANDROID
  • GamebaseErrorCode::NOT_SUPPORTED_IOS
  • GamebaseErrorCode::NOT_SUPPORTED_UE_STANDALONE
  • GamebaseErrorCode::NOT_SUPPORTED_UE_EDITOR

各APIでサポートするプラットフォームは、下記のアイコンで区別します。

API

Supported Platforms UNREAL_ANDROID UNREAL_IOS UNREAL_WINDOWS

Installation

  1. Gamebase Unreal SDKをダウンロードして、プロジェクトパスにPluginsフォルダを作成し、ダウンロードしたSDK内部 NHNCloudフォルダを追加します。
  2. UnrealエディタでSettings > Pluginsウィンドウを開き、Project > NHN Cloud > Gamebase Pluginプラグインを探して有効にします。

  3. Download Gamebase Unreal SDK

Module Settings

  • Gamebaseコードを使用するには、モジュールのBuild.csファイルの依存モジュール設定時に、下記のようにモジュールを追加する必要があります。
    PrivateDependencyModuleNames.AddRange(
        new[]
        {
            "Gamebase",
        }
    );
    

Android Settings

  1. エディタのメニュー Edit > Project Settingsを選択します。
  2. Project SettingsウィンドウでPluginカテゴリーからGamebaseを選択します。

Unreal Project Settings - Android

  • Android - Authentication
    • 使用するIdPを有効にします。
    • Hangame IdPを使用する時は、サポートへお問い合わせください。
    • GPGS(Google Play Games Services)
      • Auto Login - GPGS自動ログインをサポート
  • Push
    • 使用したいプッシュサービスを有効にします。
    • FCM
      • 該当機能を使用する場合に有効になります。
      • GoogleServicesFilePath - Firebase Notification Settingsでダウンロードしたgoogle-services.jsonファイルのパスを指定します。
  • Purchase
    • 使用するストアを選択します。
    • ONE Store
      • 該当ストアを使用する場合に有効化になります。
      • View Option - 全体決済画面(Full)とポップアップ決済画面(Popup)のいずれかを選択します。

Google Play認証および決済ができない問題

Google Playサービスに認証と決済を行うには、Distributionの設定が必要です。 詳細な内容は、以下の文書を参照してください。

GPGS(Google Play Games Services)設定

Sign in with Apple使用時、プロジェクトで/Config/Android/AndroidEngine.iniファイルに下記の内容を追加してGPGSのApplication IDを入力します。

[/Script/AndroidRuntimeSettings.AndroidRuntimeSettings]
GamesAppID=

AndroidX適用

  • Gamebase Android SDK 2.25.0からAndroidXが導入され、UPL(Unreal Plugin Language)ファイルの下に設定を追加する必要があります。
<gradleProperties>    
  <insert>
    android.useAndroidX=true      
    android.enableJetifier=true    
  </insert>  
</gradleProperties>

multidex適用

  • Gamebase Unreal SDK 2.26.0からGamebase内部で設定したmultidex関連内容が削除されたため、UPL(Unreal Plugin Language)ファイルに以下の設定を追加する必要があります。
<buildGradleAdditions>
  <insert>
  android {
    defaultConfig {
      multiDexEnabled true
    }
  }
  </insert>
</buildGradleAdditions>

<androidManifestUpdates>
    <addAttribute tag="application" name="android:name" value="androidx.multidex.MultiDexApplication"/>
</androidManifestUpdates>

Epic Gamesサービス

iOS Settings

Gamebase SDK for Unrealを使用するにはUE4 Githubソースコードを使用する必要があり、Epic gamesに会員登録した後、Githubアカウントを接続するとUnrealEngine repositoryが表示されます。 See below for relevant guides.

!重要 このプロセスを無視すると、以下のガイドリンクが正常に動作しなかったりGamebase SDK for Unrealを使用できません。

Project Settings

  1. エディタのメニューEdit > Project Settingsを選択します。
  2. Project SettingsウィンドウでPluginカテゴリーからGamebase - iOSを選択します。

Unreal Project Settings - iOS

  • Path
    • Xcode Path:Xcodeのパスを入力します。 (デフォルト値: /Applications/Xcode.app)
  • Info.plist     * Disable Auto Info.plist Update:Project SettingsによるInfo.plistの自動アップデートを無効化します。         * AdditionalPlistDataでInfo.plistを直接管理する場合は有効化してください。         * IdP別の設定項目は、Game > Gamebase > iOS SDK使用ガイド > はじめに > IdP Settingsを参照してください。     * Enable Contact (Privacy Permissions):カスタマーセンターで添付ファイルを使用するためのカメラ、写真ライブラリ、マイクの権限説明をInfo.plistに追加します。     * Enable Tracking Description:App Tracking Transparency権限リクエストのためのNSUserTrackingUsageDescriptionをInfo.plistに追加します。
  • Authentication     * 使用するIdPを有効化します。     * 各IdP別の追加設定項目は次のとおりです。 * Facebook: FacebookAppId, FacebookClientToken, FacebookDisplayName * Google: GoogleClientId, GoogleReservedClientId * Weibo: WeiboAppKey
  • Purchase
    • 使用したいストアを選択します。
  • Push
    • 使用したいプッシュサービスを有効にします。

Gamebase Unreal SDKを使用するためのエンジン変更

Gamebase Unreal SDK及び外部認証SDKでswiftで開発されたフレームワークをコンパイルするには、Engine/Source/Programs/UnrealBuildTool/Platform/IOS/IOSToolChain.csファイルで下記のコードを追加してください。

// need to tell where to load Framework dylibs
Result += " -rpath /usr/lib/swift";                 // 追加コード
Result += " -rpath @executable_path/Frameworks";

Sign in with Apple

Sign in with Appleを使う時、プロジェクトで /Config/IOS/IOSEngine.ini ファイルに下記の内容を追加します。

[/Script/IOSRuntimeSettings.IOSRuntimeSettings]
bEnableSignInWithAppleSupport=True

Remote Notification

  1. Gamebase Remote Notification機能を使用するには、Project Settings > Platforms > iOSページでEnable Remote Notifications Support機能を有効化する必要があります。(Githubソースからのみ可能)
  2. Foregroundプッシュ通知を受け取るにはEngine/Source/Runtime/ApplicationCore/Private/IOS/IOSAppDelegate.cppファイルから以下のコードを削除するか
    - (void)userNotificationCenter:(UNUserNotificationCenter *)center
        willPresentNotification:(UNNotification *)notification
            withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler
    {
        // Received notification while app is in the foreground
        HandleReceivedNotification(notification);
    
        completionHandler(UNNotificationPresentationOptionNone);
    }
    

次のように修正する必要があります。

    // AS-IS
    completionHandler(UNNotificationPresentationOptionNone);

    // TO-BE
    completionHandler(UNNotificationPresentationOptionAlert);

Rich Push Notification

次のようなイシューによりRich Push Notification機能を使用できません。

iOS SDKのWarningメッセージによるUnrealビルドエラー

iOS SDKで発生するWarningメッセージがUnrealビルド時、エラーに変換されてビルドに失敗する現象が発生する場合はEngine/Source/Programs/UnrealBuildTool/Platform/IOS/IOSToolChain.csファイルのclangコンパイルオプションコードをコメント処理してください。

// Result += " -Wall -Werror";

PLCrashReporter

UE4で使用中のPLCrashReporterがarm64e architectureをサポートしておらず、該当architectureを使用するデバイスでメモリアドレス値を取得できないイシューがあります。

NHN Cloud Log & Crash Searchでクラッシュ分析を行うゲーム開発会社は、次のガイドを参照してUE4内部PLCrashReporterを修正する必要があります。

  1. GamebaseSDK-Unreal/Source/Gamebase/ThirdParty/IOS/plcrashreporter.zipファイルを解凍します。
  2. UE4内部PLCrashReporterのaファイルとheaderファイルを解凍したファイルと交換します。
    • Engine/Source/ThirdParty/PLCrashReporter/plcrashreporter-master-xxxxxxx

Epic Gamesサービス

Windows Settings

  1. エディタのメニュー Edit > Project Settingsを選択します。
  2. Project SettingsウィンドウでPluginカテゴリーからGamebase - Windowsを選択します。

Unreal Project Settings - Windows

  • Authentication
    • 使用する IdP を有効にします。
  • Purchase
    • 使用したいストアを選択します。
    • Epic Games Store
      • EOSサービス情報を各項目に合わせて入力します。

WebViewプラグイン案内

  • WebViewを使用するコンテンツを使用する場合、プラグインの有効化が必要です。
    • GameNotice
    • ImageNotices
    • WebView
  • エンジンを修正せずにWebView関連機能を使用する場合、UnrealエディタでSettings > Pluginsウィンドウを開き、Project > NHN Cloud > NHNWebViewプラグインを見つけて有効にします。
  • エンジンが提供するWeb Browserプラグインを使用する場合、エンジン内部のCEFバージョンとWeb Browser機能によっては、機能が正常に動作しないことがあります。

[注意]

NHNWebViewプラグインとWeb Browserプラグインは同時に使用することができず、両方のプラグインが有効になっている場合、ビルド時にエラーが発生します。

Epic Gamesサービス

Steamworksサービス

  • WindowsでSteam認証と決済はSteamworks SDKを通じて行われます。
  • Gamebaseで使用するSteamworksのバージョンは1.57以上です。 UE 5.3以下を使用する場合Steamworksをアップデートする必要があります。
  • 内部では、Online Subsystem設定オプションのDefaultPlatformServiceの値がSteamの場合、自動的にOnline Subsystem Steamを使用しているものとみなされます。この値がない場合、エンジン内部にSteamworksモジュールのインストールバージョンを確認し、1.57以上の場合、Gamebase内のSteam機能が動作します。

[注意]

Online Subsystem Steamを使用せずにSteamworksのみを使用する場合、Gamebase内部でSteamworksを使用した認証情報を受け取る作業のみを行い、Steamworks SDKプロセスは行われません。 Steamworks SDKを直接適用する場合、初期化、アップデート、終了などの必須的な処理については直接実装する必要があります。

3rd-Party Provider SDK Settings

Epic Games

  • Epic Gamesの機能を使用するには、Epic Online Services(EOS) SDKを使用してログインする必要があります。
  • Online Subsystem EOSプラグインが有効であり、Engine.iniのOnlineSubsystemEOSセクション内のbEnabledが有効になっている場合、Online Subsystem EOSを使用していると見なします。

    [OnlineSubsystemEOS]
    bEnabled=True
    
  • EOS SDKはエンジンパス内のEngine/Source/ThirdParty/EOSSDKモジュールを使用します。

    • EOS SDKを更新する際は、該当モジュール内で必要なプラットフォームに合わせて更新してください。
      • Windows:最小バージョンは1.15.5で、1.16.3バージョンまで確認されています。
      • Android, iOS: 1.17.0-CL39599718バージョンまで確認されています。
    • Online Subsystem EOSでログイン認証タイプPersistentAuthタイプをサポートするには、UE 4.27ではコードの修正が必要です。

      • OnlineSubsystemEOSモジュール内のUserManagerEOS.cppファイルを開き、FUserManagerEOS::Loginメソッド内のAccountCredentials.Typeの文字列を比較する条件文を探し、PersistentAuthログイン用のコードを追加する必要があります。
        else if (AccountCredentials.Type == TEXT("persistentauth"))
        {
            // Use locally stored token managed by EOSSDK keyring to attempt login.
            Credentials.Type = EOS_ELoginCredentialType::EOS_LCT_PersistentAuth;
            Credentials.Id = nullptr;
            Credentials.Token = nullptr;
        }
        
    • UE 4.27でOnline Subsystem EOSを使用する場合、ビルドエラーが発生するため修正が必要です。

      EOS SDKのハンドルを取得するためにOnlineSubsystemEOS.hヘッダーをインクルードするとビルドエラーが発生するため、OnlineSubsystemEOSプラグインのPrivateフォルダ内のヘッダーファイルをPublicフォルダへ移動する必要があります。 (参考: EOSエラーに関するお問い合わせ) - SocketSubsystemEOS.h - EOSSettings.h - EOSHelpers.h - [Platform]/[Platform]EOSHelpers.h

    • Online Subsystem EOSを使用しない場合、EOSSDKモジュールを使用して別途EOSの初期化を行い、EOS SDKのプラットフォームハンドルを設定する必要があります。

      • Gamebaseでは、Epic Gamesの認証およびストア設定に応じて必要な機能のみを呼び出し、EOS SDKの必須ライフサイクルはゲーム内で直接呼び出す必要があります。
      • プラットフォームハンドル設定用のモジュール追加

        PrivateDependencyModuleNames.AddRange(
            new[]
            {
                "GamebaseSharedEOS"
            }
        );
        
      • プラットフォームハンドル設定

        #include "GamebaseSharedEOS.h"
        
        void USample::SetEosPlatformHandle(UGameInstance* GameInstance, EOS_HPlatform PlatformHandle)
        {
            if (const auto GamebaseSharedEOS = UGameInstance::GetSubsystem<UGamebaseSharedEOS>(GameInstance))
            {
                // EOS SDK初期化後、プラットフォームハンドルを取得し、Gamebase SDKに渡す
                GamebaseSharedEOS->SetPlatformHandle(PlatformHandle);
            }
        }
        
    • Androidサポート時、ログインレスポンスを受け取るため、EOS SDKガイドを参考にしてエンジン内のEOSSDKモジュール内のEOSSDK_strings.xmlファイルに該当する値を登録する必要があります。

      <?xml version="1.0" encoding="utf-8"?>
      <resources>
          <!-- EOS SDK requires the Client ID to be in lowercase. -->
          <string name="eos_login_protocol_scheme">eos.yourclientidhere</string>
      </resources>
      

API Deprecate Governance

GamebaseでサポートしないAPIはDeprecate処理します。 DeprecatedされたAPIは、次の条件を満たすと、事前告知を行わずに削除される場合があります。

  • 5回以上のマイナーバージョンアップデート

    • Gamebase Version Format - XX.YY.ZZ
      • XX : Major
      • YY : Minor
      • ZZ : Hotfix
  • 5か月経過

TOP