> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Unreal Engine クイックスタート

> PlayFab Unreal Marketplace Plugin をインストールし、C++ または Blueprints を使って Unreal Engine プロジェクトから最初の PlayFab API 呼び出しを行います。

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

Unreal Engine 用の PlayFab プラグインを使い始めましょう。このクイックスタートに従って、PlayFab Unreal Engine プラグインをインストールし、C++ クライアント ライブラリと Blueprint インターフェイスを使用するサンプル アプリを作成します。

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

* プレイヤー認証。
* 仮想アイテムと通貨の管理。
* フレンド リストなどのソーシャル機能の作成。

  [API リファレンス ドキュメント](/services/playfab/api-references) | [ライブラリのソース コード](https://github.com/PlayFab/UnrealMarketplacePlugin) | [Unreal Marketplace](https://www.unrealengine.com/marketplace/playfab-sdk)

## 前提条件

* [PlayFab デベロッパー アカウント](https://developer.playfab.com)。
* Unreal Engine 用に構成された [Visual Studio](https://visualstudio.microsoft.com/downloads/) のインストール。Visual Studio の構成については、[Setting Up Visual Studio for Unreal Engine](https://docs.unrealengine.com/en-US/Programming/Development/VisualStudioSetup/index.html) を参照してください。
* [Unreal Engine](https://www.unrealengine.com/download) のインストール。Unreal Engine のインストールについては、[Unreal Engine インストール ガイド](https://docs.unrealengine.com/4.27/en-US/Basics/Projects/Browser/) を参照してください。
* PlayFab Unreal プラグインのインストール。Unreal プラグインは [Unreal Engine マーケットプレイス](https://www.unrealengine.com/marketplace/playfab-sdk) からインストールできます。

## Unreal プロジェクトの作成

Unreal Engine で新しい Unreal プロジェクトを作成します。詳細な手順については、[Create a New Project guide](https://docs.unrealengine.com/4.27/en-US/Basics/Projects/Browser/) を参照してください。

1. **Project Category** で **Games** を選択します。
2. **Select Template** で **Blank** を選択します。
3. **Project Settings** で **C++** または **Blueprint** のいずれかを選択します。
4. **No Starter Content** を選択します。
5. プロジェクトに **MyProject** などの名前を付けます。

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

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

1. **Settings** メニューの **Game Specific Settings** の下から **Plugins** を選択します。
2. **PlayFab** プラグインを有効化し、必要に応じて Unreal Engine を再起動します。

**Plugins** に「PlayFab」が表示されない場合は、Unreal Marketplace からプラグインがインストールされていることを確認してください。Unreal エディターを再起動し、再度 **Plugins** を開いて「PlayFab」を検索します。

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

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

1. **View** メニューから **Solution Explorer** を開き、C++ プロジェクト ファイルを表示します。

2. Solution Explorer で **Solution\Games\YourProjectName\Source** に移動し、**YourProjectName.Build.cs** を開きます。

3. 以下の行を追加します。

   ```cpp theme={null}
   PrivateDependencyModuleNames.AddRange(new string[] { "PlayFab", "PlayFabCpp", "PlayFabCommon" });
   ```

4. 変更を保存します。

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

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

1. エクスプローラー ウィンドウを開き、プロジェクト ファイルの保存先フォルダーに移動します。
2. プロジェクトのルート フォルダーで、YourProjectName.uproject ファイルを右クリックします。
3. コンテキスト メニューから **Generate Visual Studio project files** を選択します。

## C++ で PlayFab を呼び出す

以下の手順では、カスタム ID を使って PlayFab にログインするタイル (Tile) を作成する方法を解説します。Blueprints プロジェクトからログインする方法については、この記事の後半にある「Unreal Blueprints から PlayFab を呼び出す」を参照してください。

### 新しい Actor を作成する

新しい Actor を作成するには:

1. **File** メニューから **New C++ Class** を選択します。
2. **Parent Class** で **Actor** を選択します。
3. Actor に **LoginActor** という名前を付けます。Actor を作成すると、Unreal Engine が自動的に C++ 開発環境を開き、LoginActor.cpp と LoginActor.h を読み込みます。

<Info>
  このクイックスタートでは、Actor には必ず **LoginActor** という名前を付けてください。異なる名前を付けた場合は、このクイックスタートで提供されるサンプル コードをその名前に合わせて更新する必要があります。
</Info>

4. Content Browser から新しい Actor **LoginActor** を Viewport パネルにドラッグ アンド ドロップします。「World Outliner」ペインに表示されるようになります。
   **LoginActor** が表示されない場合は、**Show or hide the source panel** アイコンを選択し、C++ classes の下からプロジェクト名を選択してください。

   <img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unreal/show-login-actor.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=86853f5d47d5ca2a44dc0e9612204080" alt="ソース パネル アイコンが表示された Content Browser。" width="629" height="233" data-path="images/playfab/sdks/unreal/show-login-actor.png" />

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unreal/login-actor-world.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=c46ab4ff0751332401e88629a8f058b3" alt="World 内の Login Actor" width="1062" height="524" data-path="images/playfab/sdks/unreal/login-actor-world.png" />

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

このクイックスタートでは、[LoginWithCustomID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid) を使ってログインを実行します。`LoginWithCustomId` は導入が簡単ですが、ゲームのリリース時にはより安全なプレイヤー認証方式に移行することをお勧めします。堅牢なログイン機能の実装については、[Login basics and best practices](/services/playfab/identity/player-identity/login/login-basics-best-practices) を参照してください。

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

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

```cpp theme={null}
#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;
};
```

2. LoginActor.cpp の内容を以下のコードに置き換えます。

```cpp theme={null}
#include "LoginActor.h"
#include "Core/PlayFabClientAPI.h"

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

void ALoginActor::BeginPlay()
{
    Super::BeginPlay();
    
    GetMutableDefault<UPlayFabRuntimeSettings>()->TitleId = TEXT("144");
    
    clientAPI = IPlayFabModuleInterface::Get().GetClientAPI();

    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);
}
```

<Tip>
  Visual Studio の Intellisense がインクルード ファイルや PlayFab 名前空間を見つけられないと表示することがあります。これらの警告は無視して問題ありません。プロジェクトを実行すると正しくビルドおよび実行されます。
</Tip>

### C++ で完了と実行

これで、Unreal Engine から C++ で PlayFab を呼び出すテストを実行する準備が整いました。テスト呼び出しの結果は Unreal Engine の **Output Log** に表示されます。

Unreal Engine で:

1. Output Log を表示するには、**Windows** メニューから **Developer Tools** を選択し、**Output Log** を有効にします。
2. ツールバーで **Compile** を選択し、Unreal Engine のコンパイルが完了するまで待ちます。コードのコンパイル中は、Unreal に「Compiling C++ Code.」と表示されます。
3. **Play** を選択します。コードが実行されると、Unreal は **Output Log** ウィンドウに以下を表示します。

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

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unreal/call-works.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=d87c28c4bd68f5b72bcb59366eacb795" alt="Output Log の呼び出し成功" width="1477" height="311" data-path="images/playfab/sdks/unreal/call-works.png" />

## Unreal Blueprints から PlayFab を呼び出す

このセクションでは、PlayFab API を使って [LoginWithCustomID](https://learn.microsoft.com/en-us/rest/api/playfab/client/authentication/login-with-custom-id?view=playfab-rest\&preserve-view=true) を呼び出す Blueprint 構造の作成方法を解説します。`LoginWithCustomId` は導入が簡単ですが、ゲームのリリース時にはより安全なプレイヤー認証方式に移行することをお勧めします。堅牢なログイン機能の実装については、[Login basics and best practices](/services/playfab/identity/player-identity/login/login-basics-best-practices) を参照してください。

<Tip>
  Blueprint プロジェクトから始める場合は、PlayFab の Blueprint Actions を機能させるために C++ プロジェクトに変換する必要があります。
</Tip>

### Blueprint 構造を作成する

Unreal Engine のツールバーから **Open Level Blueprint** を選択します。

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unreal/uemk-open-lv-bp.jpg?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=d80f85c201032ab8d0394e7a1a89e28e" alt="Blueprint レベルを開く例の画像" width="439" height="439" data-path="images/playfab/sdks/unreal/uemk-open-lv-bp.jpg" />

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

以下の手順で Blueprint を作成します。

* `Event BeginPlay` の出力ピンを選択し、**Event Graph** の空いた場所にドラッグします。**Executable Actions** ダイアログで `Set Play Fab Settings` を検索し、選択して Blueprint に追加します。`Set Play Fab Settings` で、**Game Title id** が空の場合は、ゲームの **Title ID** を設定します。

* `Set Play Fab Settings` の出力ピンを選択し、空いた場所にドラッグします。**Executable Actions** ダイアログで `Login with Custom ID` を検索し、選択して Blueprint に追加します。

* `Login with Custom ID` の **Request** ピンを選択し、空いた場所にドラッグします。**Actions providing a(n) Client Login With Custom ID Request Structure** から `Make ClientLoginWithCustomIDRequest` を選択します。

* `Make ClientLoginWithCustomIDRequest` で:

  * **Create Account** を選択します。
  * **Custom Id** を GettingStartedGuide に設定します。

* `Login with Custom ID` の **On Success** ピンを選択し、空いた場所にドラッグします。**Actions providing a(n) Delegate** で `Add Custom Event` を検索し、選択して Blueprint に追加します。
  * `OnLogin` という名前を付けます。

* **On Failure** ピンを選択し、空いた場所にドラッグします。**Actions providing a(n) Delegate** で `Add Custom Event` を検索し、選択して Blueprint に追加します。
  * `OnFailure` という名前を付けます。

* `OnLogin` の出力ピンを選択し、空いた場所にドラッグします。**Executable Actions** ダイアログで `Print String` を検索し、選択して Blueprint に追加します。
  * `Print String` で、**In String** の値を "Congratulations, you made your first successful PlayFab API call using Blueprint!" に設定します。

* `OnFailure` の出力ピンを選択し、空いた場所にドラッグします。**Executable Actions** ダイアログで `Print String` を検索し、選択して Blueprint に追加します。

* `OnFailure` の **Error** ピンを選択し、空いた場所にドラッグします。**Actions providing a(n) string** ダイアログで **Break PlayFabError** を検索し、選択して Blueprint に追加します。**Actions taking a(n) PlayFab error structure** ダイアログで **Break PlayFabError** を検索し、選択して Blueprint に追加します。

* `Break PlayFabError` の **Error Message** ピンを、失敗時の `Print String` アクションの **In String** ピンに接続します。

完成すると、Blueprint は以下のようなデザインになります。

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unreal/blueprint-structure.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=28dcddff9746a46c9f2719b2439d4b84" alt="開いた Blueprint UI" width="1958" height="1502" data-path="images/playfab/sdks/unreal/blueprint-structure.png" />

Blueprint を **保存** して、Blueprint エディター ウィンドウを閉じます。

### Blueprint で PlayFab 呼び出しを実行する

1. ツールバーで **Play** ボタンを選択します。

2. Blueprint が実行されると、以下の出力が Viewport ウィンドウに表示されます。

   <img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/unreal/uemk-log-success.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=190c17886fa54873449808f5bbab7fc3" alt="Blueprint ログ成功" width="489" height="221" data-path="images/playfab/sdks/unreal/uemk-log-success.png" />

おめでとうございます。Blueprint を使って最初の PlayFab API 呼び出しに成功しました!

## その他のリソース

* Unreal Engine の [Blueprints Visual Scripting](https://docs.unrealengine.com/en-US/Engine/Blueprints/index.html) ドキュメント。
* [Unreal Engine ドキュメント](https://docs.unrealengine.com/)。


## Related topics

- [PlayFab がサポートするゲーム エンジン](/ja-jp/services/playfab/sdks/game-engines/index.md)
- [Lobby SDK クイックスタート](/ja-jp/services/playfab/multiplayer/lobby/lobby-getting-started.md)
- [Unity クイックスタート](/ja-jp/services/playfab/sdks/unity3d/quickstart.md)
- [クイックスタート](/ja-jp/services/playfab/economy-monetization/economy-v2/quickstart.md)
- [Cocos2D-x クイックスタート](/ja-jp/services/playfab/sdks/cocos2d-x/quickstart.md)
