Extend Codegen CLIを使用してExtend Service ExtensionのUnreal SDKプラグインを生成する
注釈:本資料はAI技術を用いて翻訳されています。
Overview
このガイドでは、Extend Codegen CLIを使用して、カスタムサービス用のUnrealプラグインを最短の手順で生成する方法を説明します。
以下がすでに用意できている場合は、このフローを使用してください。
- Unrealプロジェクト内のAccelByte Unreal SDK
- サービス用のOpenAPI 2.0 JSONファイル
- GitHub ReleasesからのUnrealテンプレートパックZIP
開始する前に
まず以下の項目を準備してください。
- AccelByte Unreal SDKがすでにインストールされているUnrealプロジェクト。
bash、make、Dockerが利用可能なLinux環境またはWindows 11 WSL2。- カスタムサービス用の有効なOpenAPI 2.0 JSONファイル。
accelbyte-unreal-sdk-template-pack.zipファイル。
OpenAPI 2.0 JSONは、AGSのAdmin PortalのアプリのOpen API Documentationページから取得できます。デプロイ前にOpenAPIファイルが必要な場合は、デプロイせずにService ExtensionのOpenAPIを生成するを参照してください。
コード生成を実行する前に、Swagger EditorでOpenAPIファイルを検証してください。無効な仕様は、生成が失敗する最も一般的な原因です。
クイックスタート
1. Extend Codegen CLIのDockerイメージをプルする
docker pull accelbyte/extend-codegen-cli:0.0.29
2. Unrealテンプレートパックをダウンロードして展開する
wget https://github.com/AccelByte/extend-codegen-cli/releases/download/v0.0.29/accelbyte-unreal-sdk-template-pack.zip
unzip accelbyte-unreal-sdk-template-pack.zip
3. 展開したフォルダを開く
cd accelbyte-unreal-sdk-template-pack/
4. specフォルダを準備する
Unrealプロジェクトにspecフォルダを作成し、同じOpenAPIファイルをルートと以下の3つのサブフォルダに配置します。
spec/Clientspec/GameServerspec/Models
例:
/path/to/my-unreal-project/
|__ MyAwesomeGame.uproject
|__ Config/
|__ Content/
|__ Plugins/
|__ Source/
|__ spec/
|__ Client/
| |__ guild.json
|__ GameServer/
| |__ guild.json
|__ Models/
| |__ guild.json
|__ guild.json
guild.jsonのような単純な小文字のファイル名を使用してください。テンプレートパックは、コード生成時にこのファイル名をサービス識別子として使用します。
複数のサービスを生成する場合は、各OpenAPIファイルが一意のbasePathを使用するようにしてください。basePathが重複すると、命名や実行時の競合が発生する可能性があります。
5. コード生成を実行する
以下を実行します。
make all \
CODEGEN_IMAGE_VERSION=0.0.29 \
PROJECT_PATH=/path/to/my-unreal-project \
SPEC_PATH=/path/to/my-unreal-project/spec \
PACKAGE_TYPE=plugin \
ADMIN_API_PATH=/admin/
パラメーターの概要:
CODEGEN_IMAGE_VERSION: 使用するaccelbyte/extend-codegen-cliのバージョンPROJECT_PATH: UnrealプロジェクトのルートSPEC_PATH:specフォルダへのパスPACKAGE_TYPE=plugin: スタンドアロンのUnrealプラグインを生成ADMIN_API_PATH: クライアントとサーバーのエンドポイントを分割するための任意指定のパス
6. プラグインが生成されたことを確認する
PACKAGE_TYPE=pluginの場合、生成されたプラグインはプロジェクト内のPlugins/AccelByteUe4SdkCustomization/に作成されます。
AccelByteUe4SdkCustomization/
|__ AccelByteUe4SdkCustomization.uplugin
|__ Resources/
|__ Source/
|__ AccelByteUe4SdkCustomization/
|__ AccelByteUe4SdkCustomization.Build.cs
|__ Private/
|__ Public/
|__ Api/
|__ Models/
7. 生成されたプラグインの依存関係を追加する
AccelByteUe4SdkCustomizationをプロジェクトの.Build.csファイルに追加します。
PublicDependencyModuleNames.AddRange(new string[] { ..., "AccelByteUe4SdkCustomization" });
PACKAGE_TYPE=moduleで生成した場合は、AccelByteUe4Sdk.upluginにもモジュールを追加します。
{
"Name": "AccelByteUe4SdkCustomization",
"Type": "Runtime",
"LoadingPhase": "PreDefault"
}
生成されたAPIを使用する
生成されたAPIヘッダーをインクルードします。
#include "Api/AccelByteGuildApi.h"
次に、AccelByte APIクライアントを通じて呼び出します。
FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();
// ApiClient->GetApiPtr<AccelByte::Api::YourApiName>()->SomeFunction(...);
カスタムサービスのServerUrlまたはbasePathをオーバーライドする必要がある場合は、Unrealの環境切り替えを有効にするを参照してください。
さらに詳しい情報が必要な場合
クイックスタート以上の情報が必要な場合は、以下の参考資料を使用してください。
トラブルシューティング
生成が始まる前にmakeが失敗する
まず以下を確認してください。
- Dockerがインストールされ、実行されていること。
- ユーザーがDockerコマンドを実行できること。
- OpenAPIファイルが有効なOpenAPI 2.0であること。
プラグイン生成後にUnrealがビルドできない
以下の項目を確認してください。
- ベースのAccelByte Unreal SDKがすでにインストールされていること。
AccelByteUe4SdkCustomizationがPublicDependencyModuleNamesに追加されていること。- 生成された
.upluginファイルが有効であること。
生成されたコードが他のカスタムサービスと競合する
以下の項目を確認してください。
- 各OpenAPIファイルが一意のファイル名を使用していること。
- 各OpenAPIファイルが一意の
basePathを使用していること。
再生成すると手動での編集が削除される
生成されたファイルはビルド出力として扱ってください。生成されたプラグインを直接編集するのではなく、カスタムロジックは独自のプロジェクトコード内に保持してください。