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

Extend Codegen CLIを使用してExtend Service ExtensionのUnreal SDKプラグインを生成する

Last updated on February 4, 2026

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

概要

この記事では、Extend Codegen CLIテンプレートパックを使用して、AccelByte Unreal SDK用のカスタムサービスプラグインを生成する方法を段階的に説明します。

カスタムサービスモジュールを使用すると、開発者はAccelByte Unreal SDKを活用してカスタムサービスAPIと対話できます。これには、Extend Service Extensionで作成されたサービスや、OpenAPI 2.0仕様を提供するその他のカスタムサービスが含まれます。

Extend Codegen CLIテンプレートパックは、MakefileといくつかのJinjaテンプレートファイルで構成されています。必要なコードを生成するには、単一のmakeコマンドを実行するだけです。このコマンドは、Extend Codegen CLIをトリガーして、カスタムサービスAPIを定義するOpenAPI 2.0 JSONファイルと共にJinjaテンプレートファイルを処理し、対応するコードを生成します。

前提条件

  1. 以下のツールがインストールされたWindows 11 WSL2またはLinux Ubuntu 22.04。

    a. Bash

    bash --version

    GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
    ...

    b. Make

    • Ubuntuリポジトリからインストールするには、次を実行します:sudo apt update && sudo apt install make
    make --version

    GNU Make 4.3
    ...

    c. Docker (Docker Engine v23.0+)

    • Ubuntuリポジトリからインストールするには、次を実行します:sudo apt update && sudo apt install docker.io docker-buildx docker-compose-v2
    • ユーザーをdockerグループに追加します:sudo usermod -aG docker $USER
    • 変更を有効にするため、ログアウトして再度ログインします。
    docker version

    ...
    Server: Docker Desktop
    Engine:
    Version: 24.0.5
    ...
  2. AccelByte Unreal SDK

  3. AccelByte Unreal SDK用のExtend Codegen CLIテンプレートパックzip

  4. カスタムサービス用の有効なOpenAPI 2.0 JSONファイル。

    備考

    カスタムサービスがExtend Service Extensionを使用している場合、アプリがAccelByte Gaming Services(AGS)にデプロイされると、OpenAPI 2.0 JSONファイルが自動的に生成されます。アクセスするには、AGS管理ポータルを開き、アプリのアプリ詳細ページに移動し、Open APIドキュメントをクリックして、Swagger UIページの上部にあるJSONファイルのリンクを見つけます。

    または、AGSにアプリをデプロイする前にOpenAPI 2.0 JSONファイルを取得する必要がある場合は、こちらを参照してください。

Extend Service Extension用のUnreal SDKプラグインを生成する

  1. カスタムサービス用のOpenAPI 2.0 JSONファイルをmy-unreal-project/specフォルダに配置します。この例では、ファイル名はguild.jsonです。次に、guild.jsonファイルを次の3つのフォルダにコピーします:ClientGameServer、およびModels

    /path/to/my-unreal-project/
    |__ ...
    |__ MyAwesomeGame.uproject
    |__ Config
    |__ Content
    |__ Plugins
    |__ Source
    |__ spec/
    |__ Client/
    | |__ guild.json <
    |__ GameServer/
    | |__ guild.json <
    |__ Models/
    | |__ guild.json <
    |__ guild.json
    important

    Extend Codegen CLIテンプレートパックは、OpenAPI 2.0 JSONファイル名をサービスの識別子として使用します: ファイル名は好みに応じて変更できますが、コード生成時の問題を避けるため、**すべて小文字のアルファベット(a-z)**を使用することをお勧めします。

    注意

    複数のOpenAPI 2.0 JSONファイルを扱う場合、ファイル間で同一のbasePath値があると、生成されたコードで問題が発生する可能性があります: 各OpenAPI 2.0 JSONファイルが、サービスがデプロイされたときの実際のベースパスと一致する一意のbasePath値を持つようにすることをお勧めします。

  2. ダウンロードしたExtend Codegen CLIテンプレートパックを解凍し、抽出されたフォルダに移動して、makeコマンドを実行してコードを生成します。

    unzip accelbyte-unreal-sdk-template-pack.zip
    cd accelbyte-unreal-sdk-template-pack/
    make all \
    CODEGEN_IMAGE_VERSION=x.x.x-alpha \
    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こちらで確認できます。新しいプロジェクトでは、利用可能な最新バージョンを使用することをお勧めします。
    • PROJECT_PATHSPEC_PATHは手順1から取得します。
    • PACKAGE_TYPEには2つのオプションがあります:
      • moduleAccelByteUe4Sdkプラグイン内のモジュールとして生成します。
      • pluginAccelByteUe4SdkCustomizationという名前のスタンドアロンプラグインとして生成します。
    • ADMIN_API_PATHが指定されている場合、ServerAPIには指定されたパスを持つエンドポイントが含まれ、ClientAPIには他のすべてのエンドポイントが含まれます。ADMIN_API_PATHが指定されていない場合、ServerAPIとClientAPIの両方に利用可能なすべてのエンドポイントが含まれます。
    • UnrealプロジェクトにPluginsフォルダが存在しない場合は、手動で作成する必要があります。
  3. プロジェクトの.Build.csファイルのPublicDependencyModuleNamesAccelByteUe4SdkCustomizationを追加します。

    PublicDependencyModuleNames.AddRange(new string[] { ..., "AccelByteUe4SdkCustomization" });
  4. [オプション] PACKAGE_TYPEmoduleに設定されている場合、AccelByteUe4Sdk.upluginファイルにAccelByteUe4SdkCustomizationモジュールを追加する必要があります。

    {
    "Name": "AccelByteUe4SdkCustomization",
    "Type": "Runtime",
    "LoadingPhase": "PreDefault"
    }

Extend Service Extension APIをUnrealプロジェクトに統合する

  1. AccelByteUe4SdkCustomizationプラグインからAPIをインクルードします。

    // #include "Api/AccelByte<ApiName>Api.h"
    #include "Api/AccelByteGuildApi.h"
  2. API関数を呼び出します。

    FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();
    // ApiClient->GetApiPtr<AccelByte::Api::<ApiName>>()->SomeFunction(...);
    ヒント

    カスタムサービスのServerUrlbasePathをオーバーライドする必要がある場合は、Unrealの環境切り替えを有効にするガイドを参照してください。