Unreal Engine 向け AGS OSS をインストールする
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services (AGS) Online Subsystem (OSS) は、Unreal Engine (UE) と AGS の間の高レベルのブリッジであり、AGS とその機能にアクセスするためのインターフェースで構成されています。AGS OSS は非同期通信とデリゲートを使用した高レベルのロジックを処理するように設計されており、Unreal Engine ゲームへの AGS 機能の統合が容易になります。
プラグインの依存関係
AGS OSS は依存関係として AGS Unreal Engine SDK と AGS Network Utilities プラグインの両方が必要です。このガイドでは、必要なすべてのプラグインのインストールについて説明します。WebSocket の重要な要件と V2 セッションのセットアップを含む詳細な依存関係情報については、UE プラグイン依存関係ガイドを参照してください。
前提条件
- Unreal Engine 4.27、または Unreal Engine 5 のバージョン 5.6 まで
- AGS のゲームネームスペース
- AGS の IAM クライアント
- AGS のクライアント ID
AGS OSS がサポートする UE バージョンについては、以下の表を参照してください。
| AGS OSS バージョン | UE 4.27 | UE 5.0 | UE 5.1 | UE 5.2 | UE 5.3 | UE 5.4 | UE 5.5 | UE 5.6 |
|---|---|---|---|---|---|---|---|---|
| バージョン 0.5.9 まで | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ |
| バージョン 0.6.0 から 0.7.9 | ✔ | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ | ✖ |
| バージョン 0.8.0 から 0.11.4 | ✔ | ✔ | ✔ | ✖ | ✖ | ✖ | ✖ | ✖ |
| バージョン 0.11.5 から 0.11.26 | ✔ | ✔ | ✔ | ✔ | ✖ | ✖ | ✖ | ✖ |
| バージョン 0.11.27 から 0.12.14 | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ | ✖ | ✖ |
| バージョン 0.12.15 から 0.12.28 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ | ✖ |
| バージョン 0.12.29 から 0.13.6 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ |
| バージョン 0.13.7 以降 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Game SDK との比較における AGS OSS の使用
AGS OSS と Game SDK には重複する機能がありますが、非常に異なる特性を持っています。
- OSS は、複雑なフローが OSS によって処理されるゲームへの AGS の統合に使用される高レベルの API レイヤーです。OSS はすぐに使用でき、フローを再実装する必要がありません。
- Game SDK は HTTP や Websocket などのバックエンド API を呼び出すためだけに使用される低レベルの API レイヤーで、内部にわずかなロジックしか持っていません。直接使用する場合、SDK は SDK レイヤーの上にラッパーが必要です。
以下の点でさらに区別できます。
OSS
-
メリット
- すぐに使えるソリューションを提供します
- ゲームコンソールの機能をラップします
- ApiClient を使用して SDK レイヤーにアクセスする機能を提供します
-
デメリット
- フットプリント/オーバーヘッドが大きい
- Blueprints のサポートがない
SDK
-
メリット
- フットプリント/オーバーヘッドが小さい
- Blueprints のサポートがある
-
デメリット
- 複雑な機能を実装するにはラッパーが必要
- ゲームコンソール機能を実装するには追加のコードとプラグインが必要
チュートリアル
このチュートリアルに従って Unreal Engine 向け AGS OSS のセットアップ方法を学びましょう。
必要なプラグインのダウンロードとインストール
-
ダウンロード:
- AGS Unreal Engine OSS
- AGS Unreal Engine SDK、ゲームクライアントとゲームサーバーが AccelByte サービスにリクエストを送信するための API を提供するライブラリ。
- AGS Unreal Engine Network Utilities、ゲームクライアント間のピアツーピア(P2P)通信のためのネットワーク機能を提供するライブラリ。
-
ダウンロードした zip ファイルを解凍します。
-
[project root]/Plugins/AccelByte/にディレクトリを作成します。 -
OSS の zip から抽出した
OnlineSubsystemAccelByteフォルダーをAccelByteディレクトリにコピーします。 -
AccelByte/の下にAccelByteUe4Sdkという名前のディレクトリを作成し、SDK の zip から抽出したコンテンツをそのディレクトリにコピーします。 -
AccelByte/の下にAccelByteNetworkUtilitiesという名前のディレクトリを作成し、Network Utilities の zip から抽出したコンテンツをそのディレクトリにコピーします。 -
プロジェクトは以下の構造になります。
Root/
├── Config/
├── Content/
├── ...
└── Plugins/
└── AccelByte/
├── OnlineSubsystemAccelByte/
│ └── ...
├── AccelByteNetworkUtilities/
│ ├── Resource/
│ │ └── ...
│ └── Source/
│ └── ...
└── AccelByteUe4Sdk/
├── Config/
│ └── ...
├── Content/
│ └── ...
├── Resource/
│ └── ...
└── Source/
└── ...
.uproject ファイルの設定
[MyAwesomeGame].uproject ファイルに必要なプラグインを追加します。
"Plugins": [
...
{
"Name": "AccelByteUe4Sdk",
"Enabled": true
},
{
"Name": "OnlineSubsystemAccelByte",
"Enabled": true
},
{
"Name": "AccelByteNetworkUtilities",
"Enabled": true
}
...
]
Target.cs ファイルの設定
-
モジュールを
/Source/[MyAwesomeGame].Target.csファイルに追加します。ExtraModuleNames.AddRange(new string[]
{
...
"AccelByteUe4Sdk",
"OnlineSubsystemAccelByte",
"AccelByteNetworkUtilities",
...
}); -
モジュールを
/Source/[MyAwesomeGame]Editor.Target.csファイルに追加します。ExtraModuleNames.AddRange(new string[]
{
...
"AccelByteUe4Sdk",
"OnlineSubsystemAccelByte",
"AccelByteNetworkUtilities",
...
});
Build.cs ファイルの設定
モジュールを /Source/MyAwesomeGame/[MyAwesomeGame].Build.cs ファイルに追加します。
PublicDependencyModuleNames.AddRange(
new string[] {
...
"AccelByteUe4Sdk",
"AccelByteNetworkUtilities",
"OnlineSubsystemAccelByte",
...
}
);
OSS の設定
-
Game SDK の設定セクションに従って、
DefaultEngine.iniファイルで AccelByte Game SDK の設定を行います。 -
AGS OSS の設定を
Config/DefaultEngine.iniファイルに追加します。[OnlineSubsystem]
DefaultPlatformService=AccelByte
; プラットフォーム固有の OSS の名前を指定します(例: Steam、PS5、Xbox)
NativePlatformService=
[OnlineSubsystemAccelByte]
bEnabled=true
; ログイン成功後に自動的に Lobby WebSocket に接続するかどうかを指定します
bAutoLobbyConnectAfterLoginSuccess=true
; 互換性のために V2 セッションを有効にします
bEnableV2Sessions=true
[/Script/AccelByteNetworkUtilities.IpNetDriverAccelByte]
NetConnectionClassName=AccelByteNetworkUtilities.IpConnectionAccelByte -
Config/DefaultEngine.iniファイルに以下を追加して AGS NetDriver を有効にします。Play-In-Editor の制限AccelByte NetDriver(IpNetDriverAccelByte)は Play-In-Editor(PIE)モードで実行する際に制限があります。"Play Standalone" Net Mode のみをサポートしています。他の PIE モードを使用すると、NULL サブシステム参照などの問題が発生したり、出力ログに警告 "LogAccelByteOSS: Warning: AccelByte API disabled!" が表示されたりする場合があります。
最良の結果を得るには、"Play Standalone" モードを使用するか、スタンドアロンプロセスでゲームを実行してください。
[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/AccelByteNetworkUtilities.IpNetDriverAccelByte",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")
+NetDriverDefinitions=(DefName="DemoNetDriver",DriverClassName="/Script/Engine.DemoNetDriver",DriverClassNameFallback="/Script/Engine.DemoNetDriver")
プラットフォーム固有の設定
プラットフォームのフォルダー内にあるプラットフォーム固有の config.ini ファイルを編集します。例えば、Config/Windows/WindowsEngine.ini。
[OnlineSubsystem]
NativePlatformService=Steam
[OnlineSubsystemSteam]
bEnabled=true
bUseSteamNetworking=false
SteamDevAppId=<game_app_id>
別のプラットフォームを使用している場合は(例: PS5、Xbox)、Steam をプラットフォームの OSS 名に置き換えてください。
プロジェクトを開く
Unreal Editor でプロジェクトを開きます。AGS OSS プラグインが読み込まれ、使用できる状態になっているはずです。
次のステップ
Unreal Engine 向け AGS OSS のインストールと設定が完了したら、OSS インターフェースを使用してゲームに AGS 機能を統合し始めることができます。AGS OSS の使用方法の詳細については、Unreal Engine 向け AGS OSS ガイドを参照してください。
おめでとうございます!Unreal Engine 向け AGS OSS の設定が完了しました。