クイックスタート: Unreal Engine 用の PlayFab クライアント ライブラリ

Unreal Engine 用の PlayFab プラグインを使用して開始します。 このクイックスタートに従うと、PlayFab Unreal Engine プラグインをインストールして C++ クライアント ライブラリとブループリント インターフェイスを使用するサンプル アプリを作成できるようになります。

Unreal Engine の PlayFab プラグインを使用して、タイトルの LiveOps を管理し、次のような管理者操作、クライアント操作、サーバー操作を実行できます。

前提条件

Unreal プロジェクトを作成する

Unreal Engine で、新しい Unreal プロジェクトを作成します。 詳細な手順については、「新しいプロジェクトの作成ガイド」に従います。

  1. プロジェクト カテゴリ に、ゲーム を選択します。
  2. テンプレート選択 で、空白 を選択します。
  3. プロジェクト設定 で、C++ または ブループリント のどちらかを選択します。
  4. スターター コンテンツなし を選択します。
  5. MyProject などのようにプロジェクト名を選択します。

Unreal プロジェクトで PlayFab プラグインを有効にする

PlayFab プラグインを有効にするには:

  1. [設定] メニューの [ゲーム固有の設定] で、[プラグイン] をクリックします。
  2. PlayFab プラグインを有効にし、必要に応じて Unreal Engine を再起動します。

C++ でのモジュールの依存関係として PlayFab を 追加する

Visual Studioで、PlayFab を C++ プロジェクトでのモジュールの依存関係として追加します。

  1. [表示] メニューから、ソリューション エクスプローラー を開き C++ プロジェクト ファイルを表示させます。

  2. ソリューション エクスプローラーで、Solution\Games\YourProjectName\Source に移動し YourProjectName.Build.cs を開きます。

  3. 次の行を追加します。

    PrivateDependencyModuleNames.AddRange(new string[] { "PlayFab", "PlayFabCpp", "PlayFabCommon" });
    
  4. 変更を保存します。

必要な Visual Studio プロジェクト ファイルを生成する

PlayFab プラグインを使用するのに必要な Visual Studio プロジェクト ファイルを更新して生成するには:

  1. エクスプローラー ウィンドウを開き、プロジェクト ファイルがあるフォルダーに移動します。
  2. プロジェクトのルート フォルダーで、YouProjectName. プロジェクト ファイルを右クリックします。
  3. コンテキスト メニューから [Visual Studio プロジェクト ファイルの生成] を選択します。

C++ を使用して PlayFab を呼び出す

次の手順では、カスタム ID を使用しながら PlayFab にログインするタイルを作成する手順について説明します。 ブループリント プロジェクトからのログインについての詳細は、この記事の後半にある 「Unreal ブループリントからの PlayFab 呼び出し」を参照します。

新しいアクターを作成する

新しいアクターを作成するには:

  1. [ファイル] メニューで [新しい C++ クラス] をクリックします。

  2. [親クラス][アクター] を選択します。

  3. アクターの名前を LoginActor にします。 アクターを作成すると、Unreal Engine では自動的に C++ 開発環境が開き、LoginActor.cpp と LoginActor.h が読み込まれます。

    重要

    このクイック スタートでは、アクターの名前を LoginActor にしてください。 アクターに別の名前を付ける場合は、このクイックスタートにあるサンプル コードを更新して新しい名前に合わせて下さい。

  4. 新しいアクターの LoginActor をコンテンツ ブラウザーからビューポート パネルにドラッグ アンド ドロップします。 新しいアクターが、世界のアウトライン ウィンドウに表示されます。 LoginActorが表示されない場合は、ソース パネルの表示と非表示 アイコンを選択します。 次に、C++ クラスでプロジェクトの名前を選択します。

    コンテンツ ブラウザーではソース パネル アイコンが表示されます。

世界のログイン アクター

PlayFab API 呼び出しを C++ LoginActor に追加する

このクイックスタートでは LoginWithCustomID を使用してログインを実行します。 LoginWithCustomIDを使用したログインは簡単に実装できますが、公開タイトルのシナリオではあまり役に立ちません。 タイトルを起動する前に、堅牢なログイン機能の実装に関する詳細情報で、ログインの基本とベスト プラクティス を参照します。

LoginWithCustomID 呼び出しは、LoginActorで行われます。 PlayFab 固有のコードを LoginActorに追加するには:

  1. LoginActor.h の内容を以下のコードで置き換えます。
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "PlayFab.h"
#include "Core/PlayFabError.h"
#include "Core/PlayFabClientDataModels.h"
#include "LoginActor.generated.h"

UCLASS()
class ALoginActor : public AActor
{
    GENERATED_BODY()
public:
    ALoginActor();
    virtual void BeginPlay() override;
    void OnSuccess(const PlayFab::ClientModels::FLoginResult& Result) const;
    void OnError(const PlayFab::FPlayFabCppError& ErrorResult) const;

    virtual void Tick(float DeltaSeconds) override;
private:
    PlayFabClientPtr clientAPI = nullptr;
};
  1. LoginActor.cpp の内容を以下のコードに置き換えます。
#include "LoginActor.h"
#include "Core/PlayFabClientAPI.h"

ALoginActor::ALoginActor()
{
    PrimaryActorTick.bCanEverTick = true;
}

void ALoginActor::BeginPlay()
{
    Super::BeginPlay();

    clientAPI = IPlayFabModuleInterface::Get().GetClientAPI();
    clientAPI->SetTitleId(TEXT("144"));

    PlayFab::ClientModels::FLoginWithCustomIDRequest request;
    request.CustomId = TEXT("GettingStartedGuide");
    request.CreateAccount = true;

    clientAPI->LoginWithCustomID(request,
        PlayFab::UPlayFabClientAPI::FLoginWithCustomIDDelegate::CreateUObject(this, &ALoginActor::OnSuccess),
        PlayFab::FPlayFabErrorDelegate::CreateUObject(this, &ALoginActor::OnError)
    );
}

void ALoginActor::OnSuccess(const PlayFab::ClientModels::FLoginResult& Result) const
{
    UE_LOG(LogTemp, Log, TEXT("Congratulations, you made your first successful API call!"));
}

void ALoginActor::OnError(const PlayFab::FPlayFabCppError& ErrorResult) const
{
    UE_LOG(LogTemp, Error, TEXT("Something went wrong with your first API call.\nHere's some debug information:\n%s"), *ErrorResult.GenerateErrorReport());
}

void ALoginActor::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);
}

ヒント

Visual Studio の Intellisense では、含まれるファイルと PlayFab の名前空間が見つからないことが表示されます。 これらの警告は無視しても問題ありません。 実行時にはプロジェクトが正常に構成され実行されます。

C++ の完成と実行

これで、C++ 上で Unreal Engine から PlayFab への呼び出しをテストする準備ができました。 テスト呼び出しの結果は、Unreal Engine の 出力ログ に表示されます。

Unreal Engine では:

  1. Windows メニューから出力ログを表示し、開発者ツール を選択して 出力ログ を有効にします。
  2. ツール バーで、コンパイル を選択し、Unreal Engine のコンパイルが完了するまで待ちます。 コードのコンパイル中、Unreal では "C++ コードをコンパイル中" と表示されます。
  3. [再生] を選択します。 コードが実行されると、Unreal の 出力ログ ウィンドウに次の内容が表示されます。

LogTemp: Congratulations, you made your first successful API call!

出力ログの呼び出し成功

Unreal ブループリントからの PlayFab を呼び出しています

このセクションでは、ブループリント構造を作成して PlayFab API を使用しながら LoginWithCustomID を呼び出す方法について説明します。 LoginWithCustomIDを使用したログインは簡単に実装できますが、公開タイトルのシナリオではあまり役に立ちません。 タイトルを起動する前に、堅牢なログイン機能の実装に関する詳細情報で、ログインの基本とベスト プラクティス を参照します。

ヒント

ブループリント プロジェクトから開始する場合は、C++ プロジェクトに変換して PlayFab ブループリント アクションが機能するようにしておく必要があります。

ブループリント構造を作成する

Unreal Engine で、ツール バーから [オープン レベル ブループリント] を選択します。

オープン レベル ブループリント

EventGraph が開き、2 つのアクションが事前に設定されます。 Event BeginPlay そして Event Tick

このクイック スタートで使用されるアクション:

  • Set Play Fab Settings
  • Login with Custom ID
  • Make ClientLoginWithCustomIDRequest
  • AddCustomEvent x 2
  • Break PlayFabError
  • Print String x 2

次のようにブループリントを作成します:

  • Event BeginPlay の出力ピンを選択し、Event Graph で所定の場所にドラッグします。 [実行可能アクション] ダイアログで、Set Play Fab Settings を検索して選択し、ブループリントに追加します。 Set Play Fab Settings で、ゲーム タイトル ID が空白の場合は、ゲームの タイトル ID に設定します。

  • Set Play Fab Settings で出力ピンを選択し、所定の場所にドラッグします。 [実行可能アクション] ダイアログで、Login with Custom ID を検索して選択し、ブループリントに追加します。

  • [要求] ピンを Login with Custom ID で選択し、空の場所にドラッグします。 クライアントのカスタム ID を使ってログインする要求の構造になっているアクション から Make ClientLoginWithCustomIDRequest を選択します。

  • Make ClientLoginWithCustomIDRequest の場合:

    • アカウントの作成 を選択します。
    • カスタム IDを GettingStartedGuide に設定します。
  • Login with Custom ID成功した場合 ピンを選択し、空の場所にドラッグします。 [デリゲートがあるアクション] で、Add Custom Event を検索して選択し、ブループリントに追加します。

    • これに OnLogin という名前を付けます。
  • 失敗した場合 ピンを選択し、空の場所にドラッグします。 [デリゲートがあるアクション] で、Add Custom Event を検索して選択し、ブループリントに追加します。

    • これに OnFailure という名前を付けます。
  • OnLogin で出力ピンを選択し、空の場所にドラッグします。 [実行可能アクション] ダイアログで、Print String を検索して選択し、ブループリントに追加します。

    • Print String[文字列内] の値を 「おめでとうございます。ブループリントを使用して最初の PlayFab API 呼び出しに成功しました!」 に設定します。
  • OnFailure で出力ピンを選択し、空の場所にドラッグします。 [実行可能アクション] ダイアログで、Print String を検索して選択し、ブループリントに追加します。

  • エラー ピンを OnFailure で選択し、空の場所にドラッグします。 文字列があるアクション ダイアログで、PlayFab エラーの中断 を検索し、ブループリントに追加します。 Play Fab エラー構造を使用するアクション ダイアログで、PlayFab エラーの中断 を検索し、ブループリントに追加します。

  • Break PlayFabErrorエラー メッセージ ピンを、失敗した場合の Print String アクションの 文字列 ピンに接続します。

完了すると、ブループリントは次のようになります:

オープン レベル ブループリント

ブループリントを保存し、ブループリント エディター ウィンドウを閉じます。

ブループリントを使用して PlayFab 呼び出しを実行する

  1. ツール バーで、[再生] ボタンを選択します。

  2. ブループリントが実行されると、[ビューポート] ウィンドウに次の出力が表示されます。

    ブループリント ログ成功

おめでとうございます。ブループリントを使用して最初の PlayFab API 呼び出しに成功しました!

その他のリソース