プレイヤー統計情報の使用

このチュートリアルでは、タイトルのプレイヤー統計情報を作成し、使用する方法について説明します。 プレイヤー統計情報は、キー値のペア (KVPs) キーに格納されています。ここで、キーは文字列、値は 32 ビットの整数です (64 ビットをサポートしていない言語との互換性あり)。

プレイヤーの統計情報もランキングで使用されますが、このガイドではプレイヤーの統計のみを網羅します。 プレイヤー統計情報とランキングを連携する方法について読む場合は、チュートリアル「 リセットできる統計情報とランキングの使用」をお読みください。

注意

説明書や API の呼び出しによっては、UserStatistics という用語が見つかる場合があります。 ここでは、ユーザープレイヤー という言葉は同じとし、交換可能です。 [ゲーム マネージャー] ページで、タイトルの [プレイヤー] タブがアクセスを提供する[ユーザー/プレイヤー] にその統計情報があります。 プレイヤー統計情報が参照するのは、具体的にはプレイヤーにバインドされている情報であり、プレイヤーについての分析情報ではありません。

クライアント API

クライアントがプレイヤー統計情報にアクセスして読み込みますが、不正を防止するために、クライアントは既定では統計を更新できません。

これを有効にするには、

  • PlayFab にログイン
  • タイトルを選択します。
  • 左側のメニューで [設定] を選択します。
  • [API 機能] タブを選択します。
  • [クライアントがプレイヤー統計情報を投稿するのを許可する] を検索し、アクティベートします。

注意

これを行うと、タイトルのセキュリティ レイヤーを無効にし、すべての統計情報に任意のスコアを記録するプレイヤーを許可します。 ゲームが任意 の競合的なプレイをする場合、クライアントから統計情報を投稿するようにお奨めすることはありません

統計情報は、公共の情報です

プライベートまたはサーバーのみの統計情報はありません。 プレイヤーは、GetPlayerStatistics を介して自身の統計情報を常にすべて読み取ることができ、ランキング API の呼び出しを通じて他のすべてのプレイヤーの統計を読み取ることができます。 ゲーム内で統計情報の表示もランキングの使用もしないとしても、これは真実です。

唯一の例外になるのは、API アクセス ポリシー経由のクライアント機能を無効にする場合です。 このチュートリアルでは説明しませんが、高度なトピックなので、タイトルのポリシー設定を使用する方法の詳細については、そのリンクをご参照ください。

統計情報の設定

次の Unity/C# コードは、プレイヤーの強度統計値を作成 (またはすでに存在する場合は更新) します。

PlayFabClientAPI.UpdatePlayerStatistics( new UpdatePlayerStatisticsRequest {
    // request.Statistics is a list, so multiple StatisticUpdate objects can be defined if required.
    Statistics = new List<StatisticUpdate> {
        new StatisticUpdate { StatisticName = "strength", Value = 18 },
    }
},
result => { Debug.Log("User statistics updated"); },
error => { Debug.LogError(error.GenerateErrorReport()); });

統計情報の取得

次の Unity/C# コードは、プレイヤーの現在の全統計値を取得します。

void GetStatistics()
{
    PlayFabClientAPI.GetPlayerStatistics(
        new GetPlayerStatisticsRequest(),
        OnGetStatistics,
        error => Debug.LogError(error.GenerateErrorReport())
    );
}

void OnGetStatistics(GetPlayerStatisticsResult result)
{
    Debug.Log("Received the following Statistics:");
    foreach (var eachStat in result.Statistics)
        Debug.Log("Statistic (" + eachStat.StatisticName + "): " + eachStat.Value);
}

集計方法

PlayFab では、統計情報の集計について便利なオプションをサポートしています。 次の 4 つのオプションがあります。

  • 最新
  • Min
  • Max
  • Sum

CreatePlayerStatisticDefinition API 呼び出し経由で、統計定義を作成できますが、必須ではありません。 タイトルのプレイヤー統計を更新する任意の呼び出しが自動的にの最後の集計方法を使用して、既定の統計定義を作成します。

統計の集計方法を変更するには、ゲームマネージャーまたはUpdatePlayerStatisticDefinition API の呼び出しを使用できます。

ゲーム マネージャーで統計定義を編集するには、

  • PlayFab にログインします。

  • タイトルを選択します。

  • 左側のメニューから [ランキング] を選択します (統計ランキングに密接に関連する)。

  • 変更する既存の統計を選択します。

  • [新しいランキング] を選択します。

    • 既存の統計情報については、別のページに [ランキングの編集] があります。
  • この時点で、次に示すページを表示する必要があります。

    PlayFab ランキング - ランキングの編集 - 統計の集約

統計の集約を使用する方法の例をいくつか示します。

  • [最大][最小] を使用して、ヘッド ショットや精度などの 最高/最低 スコアを保存します。

    • 簡単に言えば、次のルールを適用することになります。既存のスコアよりも高い (または低い) の場合、スコアを更新します
    • セッションの終了時に統計情報を投稿し、最小/最大の集約をすることで、更新の可否を決定します。
    • これらはリセットできるランキングと、PlayStreamのルールで役に立ち、実績を与えます。
  • 合計を使用して、エクスペリエンス ポイントを保存する可能性があります。

    • この戦闘から得られるエクスペリエンスを投稿して、プレイヤーの既存の統計値に追加します。
  • 最新を使用すると、統計を自分で管理できます。

    • 統計を投稿するたびに、最新の値が使用されます。

ランキング

PlayFab に保存されている全統計のランキングが生成されます。 特定の統計のランキングにアクセスするのはオプションです。

リセット頻度と集計方法は、ゲーム内でのとても動的なランキングの中で重要な役割を果たします。 トーナメント機能は、自動リセット機能のランキングに着目しています。チュートリアルリセットできる統計とランキングの使用の中で説明されています。

ゲームに関するあらゆる方法で、統計情報を使用することをお勧めします。 リセットできる統計情報を使用して、毎日トーナメントを実行し、エクスペリエンス ポイントやサイドバイサイドなどの長期統計情報を取得します。