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

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

Environments

[参考]

Unrealサポートバージョン

  • UE 4.26 ~ UE 5.0
  • 下位バージョンのUnrealのサポートが必要な場合はサポートへお問い合わせください。

Supported Platforms

  • iOS
  • Android
  • Windows

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

  • GamebaseErrorCode::NOT_SUPPORTED
  • GamebaseErrorCode::NOT_SUPPORTED_IOS
  • GamebaseErrorCode::NOT_SUPPORTED_ANDROID
  • GamebaseErrorCode::NOT_SUPPORTED_UE4_STANDALONE
  • GamebaseErrorCode::NOT_SUPPORTED_UE4_EDITOR

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

API

Supported Platforms UNREAL_IOS UNREAL_ANDROID UNREAL_EDITOR 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ファイルの依存モジュール設定時に、下記のように2つのモジュールを追加する必要があります。 lurim-nhn marked this conversation as resolved.
    PrivateDependencyModuleNames.AddRange(
        new[]
        {
            "Gamebase",
            "GamebaseInterface"
        }
    );
    

Android Settings

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

Unreal Project Settings - Android

  • Android - Authentication
    • 使用するIdPを有効にします。
    • Hangame IdPを使用する時は、サポートへお問い合わせください。
  • Android - Push
    • 使用するPushを有効にします。
  • Android - Purchase
    • 使用するストアを選択します。
    • ONE Store
      • View Option - 全体決済画面(Full)とポップアップ決済画面(Popup)のいずれかを選択します。

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

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

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>

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)
  • Authentication

    • 使用したいIdPを有効にします。
  • Purchase
    • 使用したいストアを選択します。
  • Push
    • 使用したいプッシュサービスを有効にします。

Sign in with Apple

Sign in with Apple機能を使用するにはentitlementにcom.apple.developer.applesigninキー値が追加されている必要があります。

該当のキー値を追加せずにGamebsae AppleIdログインを進行する場合、下記のようなエラーが発生します。

Authorization failed: Error Domain=AKAuthenticationError Code=-7026 "(null)"

UE4(4.24.3)は該当機能をサポートしないため、Engine/Source/Programs/UnrealBuildTool/Platform/IOS/IOSExports.csファイルの上に上記コードを追加する必要があります。

// AS-IS
if (bRemoteNotificationsSupported)
{
    Text.AppendLine("\t<key>aps-environment</key>");
    Text.AppendLine(string.Format("\t<string>{0}</string>", bForDistribution ? "production" : "development"));
}

// TO-BE
if (bRemoteNotificationsSupported)
{
    Text.AppendLine("\t<key>aps-environment</key>");
    Text.AppendLine(string.Format("\t<string>{0}</string>", bForDistribution ? "production" : "development"));
    Text.AppendLine("\t<key>com.apple.developer.applesignin</key>");
    Text.AppendLine("\t<array>");
    Text.AppendLine("\t\t<string>Default</string>");
    Text.AppendLine("\t</array>");
}

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/GamebaseSDK-iOS/externals/plcrashreporter.zipファイルを解凍します。
  2. UE4内部PLCrashReporterのaファイルとheaderファイルを解凍したファイルと交換します。
    • Engine/Source/ThirdParty/PLCrashReporter/plcrashreporter-master-xxxxxxx

Windows Settings

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

Unreal Project Settings - Windows

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

Epic Storeサービス

  • UE 4.27以降のバージョンでサポートされ、エンジン内部にEOSSDKモジュールが使用されています。
  • Epic Storeを使用するためには、EOSSDKを使用してログインする必要があります。
  • Gamebase で使用する EOS のバージョンは 1.15.5.0 で、エンジンパス Engine\Source\ThirdParty\EOSSDK\SDK に該当バージョンをインストールしてアップグレードする必要があります。
  • ゲーム起動時にEOS Handleの設定が必要です。
    • エンジンに含まれているOnline Subsystem EOSを使用する場合、下記のコードのように設定できます。

      #include "OnlineSubsystemEOS.h" 
      #include "IEOSSDKManager.h"
      #include "GamebaseStandalonePurchaseEpicAdapterModule.h"
      
      void UGamebasePurchaseEpicSupportTestCase::SetEosPlatformInstance()
      {
          IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld());
      
          if (const FOnlineSubsystemEOS* EosSubsystem = static_cast<FOnlineSubsystemEOS*>(Subsystem))
          {
              EOS_HPlatform PlatformHandle = *EosSubsystem->EOSPlatformHandle;
              FGamebaseStandalonePurchaseEpicAdapterModule::SetEosPlatformInstance(*Handle);
          }
      }
      

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

API Deprecate Governance

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

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

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

TOP