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

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

Environments

[参考]

Unrealサポートバージョン

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

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

Android Settings

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

Unreal Project Settings - Android

  • Android - Authentication
    • 使用するIdPを有効にします。
    • Hangame IdPを使用する時は、サポートへお問い合わせください。
  • Push
    • 使用したいプッシュサービスを有効にします。
    • FCM
      • 該当機能を使用する場合に有効になります。
      • GoogleServicesFilePath - Firebase Notification Settingsでダウンロードしたgoogle-services.jsonファイルのパスを指定します。
  • 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
    • 使用したいプッシュサービスを有効にします。

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/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 Games Store
      • EOSサービス情報を各項目に合わせて入力します。

Epic Games Storeサービス

  • UE 4.27以降のバージョンでサポートされ、エンジン内部にEOSSDKモジュールが使用されています。
  • Epic Games 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

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を直接適用する場合、初期化、アップデート、終了などの必須的な処理については直接実装する必要があります。

API Deprecate Governance

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

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

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

TOP