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

複数の環境を設定する

Last updated on February 4, 2026

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

概要

AccelByte Gaming Services (AGS) を使用すると、1 つのプロジェクト内で異なる環境(ProductionCertificationDefaultDevelopment)を使用できます。つまり、ゲームを一度だけビルドすればよいということです。AGS Game SDK を使用することで、ビルドの実行中でも環境を切り替えることができます。

たとえば、Certification 環境でビルドを実行してテストし、その後ゲームを Production 環境に公開することができます。各環境ごとにゲームを再ビルドする必要はありません。

このガイドでは、複数のプロジェクト環境をセットアップする方法について説明します。

Unreal Engine

環境の切り替えを有効にするには、DefaultEngine.ini に 3 つの新しい AccelByteSettings を入力する必要があります。

  • Development 環境の場合は、/Script/AccelByteUe4Sdk.AccelByteSettingsDev に設定を入力します。
[/Script/AccelByteUe4Sdk.AccelByteSettingsDev]
ClientId=Game Client ID
ClientSecret=Game Client Secret
Namespace=Game Namespace
PublisherNamespace=Publisher Namespace
RedirectURI="http://127.0.0.1"
BaseUrl="https://dev.accelbyte.io"
IamServerUrl="https://dev.accelbyte.io/iam"
PlatformServerUrl="https://dev.accelbyte.io/platform"
LobbyServerUrl="wss://dev.accelbyte.io/lobby/"
CloudStorageServerUrl="https://dev.accelbyte.io/binary-store"
BasicServerUrl="https://dev.accelbyte.io/basic"
GameProfileServerUrl="https://dev.accelbyte.io/soc-profile"
StatisticServerUrl="https://dev.accelbyte.io/statistic"
QosManagerServerUrl="https://dev.accelbyte.io/qosm"
LeaderboardServerUrl="https://dev.accelbyte.io/leaderboard"
CloudSaveServerUrl="https://dev.accelbyte.io/cloudsave"
GameTelemetryServerUrl="https://dev.accelbyte.io/game-telemetry"
AgreementServerUrl="https://dev.accelbyte.io/agreement"
AchievementServerUrl="https://dev.accelbyte.io/achievement"
SessionBrowserServerUrl="https://dev.accelbyte.io/sessionbrowser"
UGCServerUrl="https://dev.accelbyte.io/ugc"
ReportingServerUrl="https://dev.accelbyte.io/reporting"
AppId=Your App Id
  • Certification 環境の場合は、/Script/AccelByteUe4Sdk.AccelByteSettingsCert に設定を入力します。
[/Script/AccelByteUe4Sdk.AccelByteSettingsCert]
ClientId=Game Client ID
ClientSecret=Game Client Secret
Namespace=Game Namespace
PublisherNamespace=Publisher Namespace
RedirectURI="http://127.0.0.1"
BaseUrl="https://cert.accelbyte.io"
IamServerUrl="https://cert.accelbyte.io/iam"
PlatformServerUrl="https://cert.accelbyte.io/platform"
LobbyServerUrl="wss://cert.accelbyte.io/lobby/"
CloudStorageServerUrl="https://cert.accelbyte.io/binary-store"
BasicServerUrl="https://cert.accelbyte.io/basic"
GameProfileServerUrl="https://cert.accelbyte.io/soc-profile"
StatisticServerUrl="https://cert.accelbyte.io/statistic"
QosManagerServerUrl="https://cert.accelbyte.io/qosm"
LeaderboardServerUrl="https://cert.accelbyte.io/leaderboard"
CloudSaveServerUrl="https://cert.accelbyte.io/cloudsave"
GameTelemetryServerUrl="https://cert.accelbyte.io/game-telemetry"
AgreementServerUrl="https://cert.accelbyte.io/agreement"
AchievementServerUrl="https://cert.accelbyte.io/achievement"
SessionBrowserServerUrl="https://cert.accelbyte.io/sessionbrowser"
UGCServerUrl="https://cert.accelbyte.io/ugc"
ReportingServerUrl="https://cert.accelbyte.io/reporting"
AppId=Your App Id
  • Production 環境の場合は、/Script/AccelByteUe4Sdk.AccelByteSettingsProd に設定を入力します。
[/Script/AccelByteUe4Sdk.AccelByteSettingsProd]
ClientId=Game Client ID
ClientSecret=Game Client Secret
Namespace=Game Namespace
PublisherNamespace=Publisher Namespace
RedirectURI="http://127.0.0.1"
BaseUrl="https://prod.gamingservices.accelbyte.io"
IamServerUrl="https://prod.gamingservices.accelbyte.io/iam"
PlatformServerUrl="https://prod.gamingservices.accelbyte.io/platform"
LobbyServerUrl="wss://demo.accelbyte.io/lobby/"
CloudStorageServerUrl="https://prod.gamingservices.accelbyte.io/binary-store"
BasicServerUrl="https://prod.gamingservices.accelbyte.io/basic"
GameProfileServerUrl="https://prod.gamingservices.accelbyte.io/soc-profile"
StatisticServerUrl="https://prod.gamingservices.accelbyte.io/statistic"
QosManagerServerUrl="https://prod.gamingservices.accelbyte.io/qosm"
LeaderboardServerUrl="https://prod.gamingservices.accelbyte.io/leaderboard"
CloudSaveServerUrl="https://prod.gamingservices.accelbyte.io/cloudsave"
GameTelemetryServerUrl="https://prod.gamingservices.accelbyte.io/game-telemetry"
AgreementServerUrl="https://prod.gamingservices.accelbyte.io/agreement"
AchievementServerUrl="https://prod.gamingservices.accelbyte.io/achievement"
SessionBrowserServerUrl="https://prod.gamingservices.accelbyte.io/sessionbrowser"
UGCServerUrl="https://prod.gamingservices.accelbyte.io/ugc"
ReportingServerUrl="https://dev.accelbyte.io/reporting"
AppId=Your App Id

OSS オンライン環境を取得する

利用可能な Unreal OSS オンライン環境を取得して、ゲームが正しい環境で実行されているかを確認し、環境設定の不一致を回避します。

IOnlineSubsystem* OSS = IOnlineSubsystem::Get(PS4_SUBSYSTEM);
EOnlineEnvironment::Type OSSEnvironment = OSS->GetOnlineEnvironment();

OSS 環境を AGS 設定環境に変換する

Unreal OSS 環境列挙型を AGS 設定環境に変換して、Unreal OSS 環境で設定されているものに基づいて AGS 環境を切り替えることができます。これらの環境の詳細については、以下の Unreal OSS と AGS 設定環境の列挙型の例を参照してください:

enum EOnlineEnvironment::Type
{
/** Dev environment */
Development,
/** Cert environment */
Certification,
/** Prod environment */
Production,
/** Not determined yet */
Unknown
};
enum class ESettingsEnvironment : uint8
{
/** Dev environment settings */
Development,
/** Cert environment settings */
Certification,
/** Prod environment settings */
Production,
/** Default environment settings */
Default
};

次の関数を使用して、Unreal OSS 環境列挙型を AGS 設定環境に変換します:

ESettingsEnvironment ConvertOSSEnvtoABEnv (const EOnlineEnvironment::Type& Environment)
{
switch (Environment)
{
case EOnlineEnvironment::Type::Development :
return ESettingsEnvironment::Development;

case EOnlineEnvironment::Type::Certification:
return ESettingsEnvironment::Certification;

case EOnlineEnvironment::Type::Production:
return ESettingsEnvironment::Production;

case EOnlineEnvironment::Type::Unknown:
default:
return ESettingsEnvironment::Default;
}
}

環境切り替え関数を呼び出す

環境を切り替えるには、AccelByteUe4SdkModule.h を使用し、以下の例のように IAccelByteUe4SdkModuleInterface::Get().SetEnvironment(ABEnvironment) 関数を呼び出してください:

IOnlineSubsystem* OSS = IOnlineSubsystem::Get(PS4_SUBSYSTEM);
EOnlineEnvironment::Type OSSEnvironment = OSS->GetOnlineEnvironment();

ESettingsEnvironment ABEnvironment = ConvertOSSEnvtoABEnv(OSSEnvironment);

IAccelByteUe4SdkModuleInterface::Get().SetEnvironment(ABEnvironment);

IAccelByteUe4SdkModuleInterface::Get().SetEnvironment(ABEnvironment) を呼び出すと、SDK は以前に設定した各 AGS 環境設定を読み込みます。これで AGS 環境を切り替えることができるようになります。

Unity

Unity で環境切り替えを有効にするには、次の手順に従います。

設定ファイルをセットアップする

設定は ProjectName/Assets/Resources フォルダに JSON 形式で保存されます。設定は 2 つのファイルに分かれています:ClientIdClientSecret を含む OAuthConfig、およびサービス URL とその他の追加設定を含む Config です。

クライアント側 SDK の場合、設定は AccelByte の設定エディターから設定できます。AccelByte > Edit Settings に移動し、次の必須フィールドに入力します:

  1. Base Url
  2. Redirect Uri (デフォルト: http://127.0.0.1)
  3. Namespace
  4. Client Id
  5. Client Secret

Save を押して設定を保存します。エディターは Resources ディレクトリ内に AccelByteSDKOAuthConfig.jsonAccelByteSDKConfig.json を自動生成します。

サーバー側 SDK の場合は、以下の各ファイルを後続のコードで設定します。

  • OAuthConfig ファイル用の AccelByteServerSDKOAuthConfig.json
{
"Development": {
"ClientId": "",
"ClientSecret": ""
},
"Certification": {
"ClientId": "",
"ClientSecret": ""
},
"Production": {
"ClientId": "",
"ClientSecret": ""
},
"Default": {
"ClientId": "",
"ClientSecret": ""
}
}
  • Config ファイル用の AccelByteServerSDKConfig.json
{
"Development": {
"Namespace": "Dev",
"BaseUrl": "",
"RedirectUri": "http://127.0.0.1"
},
"Certification": {
"Namespace": "Cert",
"BaseUrl": "",
"RedirectUri": "http://127.0.0.1"
},
"Production": {
"Namespace": "Prod",
"BaseUrl": "",
"RedirectUri": "http://127.0.0.1"
},
"Default": {
"Namespace": "Default",
"BaseUrl": "",
"RedirectUri": "http://127.0.0.1"
}
}

環境を変更する

次のコードを使用して、クライアント側とサーバー側の SDK の両方でアクティブな環境を変更できます:

AccelByte.Core.AccelByteSDK.Environment.Set(SettingsEnvironment.Production);

environmentChanged を使用して、環境変更が成功するたびにコールバックを受け取ることができます。

AccelByte.Core.AccelByteSDK.Environment.OnEnvironmentChangedV2 += (SettingsEnvironment changedFrom, SettingsEnvironment changedTo) =>
{
Debug.Log($"Environment changed from {changedFrom} to {changedTo}");
};

次のコードを使用して、アクティブな環境情報を取得できます:

SettingsEnvironment activeServerEnvironment = AccelByte.Core.AccelByteSDK.Environment.Current;
ヒント

AccelByte は、予期しない動作や潜在的なコードの問題を防ぐために、ユーザーがログインする前に環境を切り替えることを推奨します。