メインコンテンツまでスキップ

ゲームで複数のレジストリのサポートを有効にする (Unreal)

Last updated on April 7, 2026

注釈:本資料はAI技術を用いて翻訳されています。

概要

AccelByte Gaming Services (AGS) の複数のレジストリ機能は、1 つのゲームプロセスでのマルチプレイヤーをサポートします。この記事では、Unreal Engine ゲームをシングルトンベースのレジストリから複数のレジストリに移行し、複数のレジストリをサポートできるようにする方法を説明します。

ゲームクライアント

FApiClient ゲームクライアントは、FMultiRegistry から作成できるクラスです。FApiClient を構築するためにキーを準備する必要があります。キーは管理対象のユーザーを表し、識別子として機能します。複数のユーザーを同時に処理するには、このメソッドを使用して複数のキーを作成するか、ゲームが 1 つのゲームプロセスまたは実行ファイルに 1 人のプレイヤーしかいない場合は空のままにして default ユーザーを使用します。

FRegistry から FMultiRegistry に移行するには、以下の手順に従います:

  1. すべて検索を使用してプロジェクト内のすべての FRegistry::* クラスを見つけます。次に、シングルトンクラスの場合、FRegistry::FMultiRegistry::GetApiClient()-> に置き換えます。

    警告

    FRegistry::SettingsFRegistry::CredentialsFRegistry::HttpRetryScheduler は変更しないでください。

  2. 名前変更後にコンパイルが引き続き実行されるか確認します。実行されない場合は、前の変更を元に戻して手順を繰り返してください。

FMultiRegistry::GetApiClient()->User.LoginWithUsername(
TEXT("user+a@example.com"),
TEXT("Password321"),
FVoidHandler::CreateWeakLambda(this, [this]()
{
UE_LOG(LogTemp, Log, TEXT("Login successful"));
}), FErrorHandler::CreateWeakLambda(this, [](int32 ErrorCode, const FString& ErrorMessage)
{
UE_LOG(LogTemp, Error, TEXT("Login Failed : %d, %s"), ErrorCode, *ErrorMessage);
}));

ゲームサーバー

FRegistry から FMultiRegistry に移行するには、以下の手順に従います:

  1. すべて検索を使用してプロジェクト内のすべての FRegistry::* シングルトンクラスを見つけ、FRegistry::*FMultiRegistry::GetServerApiClient()-> に置き換えます。

    警告

    FRegistry::ServerSettings は変更しないでください。

auto ServerApiClient = FMultiRegistry::GetServerApiClient();

ServerApiClient->ServerOauth2.LoginWithClientCredentials(FVoidHandler::CreateWeakLambda(this, [this]()
{
UE_LOG(LogTemp, Log, TEXT("Login With Credentials success"));
}), FErrorHandler::CreateWeakLambda(this, [this](int32 ErrorCode, const FString& ErrorMessage)
{
UE_LOG(LogTemp, Error, TEXT("Login With Credentials failed, Error Code: %d Error Message: %s"), ErrorCode, *ErrorMessage);
}));

AGS OSS とクライアント SDK の併用

AGS Online Subsystem (OSS) を使用してログインを処理している場合に ApiClient を取得するには、以下の手順に従います:

  1. DefaultEngine.ini 設定ファイルを確認します。1 つのゲームプロセスに複数のローカルプレイヤーがいる場合は、bMultipleLocalUsersEnabledtrue であることを確認します。

    [OnlineSubsystemAccelByte]
    bEnabled=true
    bAutoLobbyConnectAfterLoginSuccess=false
    bMultipleLocalUsersEnabled=true
  2. プレイヤーの認証とプロファイルに使用される AGS Online Identity Interface を使用してユーザーをログインさせます。

  3. ログイン後、渡される LocalUserNum をメモします。

    virtual bool Login(int32 LocalUserNum, const FOnlineAccountCredentials& AccountCredentials) override;
  4. [OnLoginCompleteDelegates](https://docs.unrealengine.com/4.27/en-US/API/Plugins/OnlineSubsystem/Interfaces/IOnlineIdentity/OnLoginCompleteDelegates/index.html) を使用して Identity インターフェースからログイン結果を取得します。

  5. ユーザーがログインした後、AGS Identity インターフェースから以下の関数を呼び出します:

    IOnlineSubsystem* SubsystemAB = IOnlineSubsystem::Get(ACCELBYTE_SUBSYSTEM);
    const FOnlineIdentityAccelBytePtr IdentityPtr = StaticCastSharedPtr<FOnlineIdentityAccelByte>(SubsystemAB->GetIdentityInterface());
    FApiClientPtr ApiClient = IdentityPtr->GetApiClient(in32 LocalUserNum);
  6. ログインに使用したものと同じ LocalUserNum を渡します。FApiClientPtr が返され、指定されたユーザーによるさまざまな API 呼び出しに使用できます。

Blueprint 実装

以下の Blueprint 図は、Login with Username API を呼び出すために Unreal Engine で API を使用するために必要なフローを示しています。

注記

UI の実装は、ゲームと選択したログイン方法によって異なる場合があります。

Unreal Blueprint showing flow to use an API to call Login with Username

このフローを作成するには、以下の手順に従います:

  1. Get Api Client を呼び出します。

  2. Return Value で、使用したい API を呼び出します。この場合は User API になります。

  3. この API が正常に呼び出されたら、Login with Username API を呼び出すことができます。

Login with Username API が正常に呼び出されたら、セットアップが完了です。