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

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

Last updated on February 4, 2026

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

概要

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

ゲームクライアント

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

FRegistryFMultiRegistry に移行するには、次の手順に従います:

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

    警告

    FRegistry::SettingsFRegistry::Credentials、または FRegistry::HttpRetryScheduler は変更しないでください。

  2. 名前を変更した後、コンパイルがまだ実行されることを確認します。そうでない場合は、以前の変更を元に戻し、これらの手順を繰り返します。

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

ゲームサーバー

FRegistryFMultiRegistry に移行するには、次の手順に従います:

  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);
}));

クライアント SDK で AGS OSS を使用する

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

  1. DefaultEngine.ini 設定ファイルを確認します。単一のゲームプロセスに複数のローカルプレイヤーがいる場合は、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 Interface からのログイン結果を見つけます。

  5. ユーザーがログインした後、AGS Identity Interface から次の関数を呼び出します:

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

ブループリント実装

次のブループリント図は、Unreal Engine で API を使用して Login with Username 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 が正常に呼び出されたら、セットアップは完了です。