Google Play の実績の使用方法

プレイヤーのエンゲージメントを高めるために Google Play の実績を使用する

Banner Image

コンフィギュレーション

お持ちのアプリケーションに Google Play Game Services をセットアップする方法については『Achievements | Play Games Services | Google Developers』を参照してください。

以下は、Unreal プロジェクト用のステップです。

  1. Unreal Editor[Edit (編集)] メニューで、[Project Settings (プロジェクト設定)] を選択してプロジェクトの設定オプションを表示します。

    Open Project Settings

  2. 左側の [Platforms:Android] タブを選択します。 [Google Play Services] セクションで、プロジェクトを Google Play サービス プラットフォームに設定します。

    クリックして拡大表示します

  3. [Google Play Services] セクションで、[Enable Google Play Support (Google Play Support を有効にする)] オプションにチェックをいれます。

  4. [Games App ID] 入力欄にゲームの App ID を入力します。

  5. [Google Play License Key] 入力フィールドに Google Play 用のライセンスキーを入力します。

  6. Achievement Map にエレメントを追加します。

  7. Achievement Map では、Unreal プロジェクト内でのみ使用する 名前 と Google Play Services で使用する Achievement ID を入力する必要があります。

    クリックして拡大表示します

    これらの値はすべてお持ちのアプリケーションとゲーム サービス用の Google Play Developer Console で利用できます。

Achievement Map の Name 値は Google Play Services Achievement ID のためのマッピングで、iOS は Achievement Reference によって直接参照されます。Android と iOS の両方のプラットフォームを使っている場合は、iOS Game Center 設定から Achievement Reference に Name を入力すれば、プラットフォームに関係なく 1 つのノードだけを呼び出せばよくなります。

実績をキャッシュする

Cache Achievements は、実績のリストと現在のプレイヤーが前述の実績に対して有している値をプラットフォームのゲーム サービスから要求します。ノードが正常に値を返せば Get Cached Achievement Value を使用することができます。

これは 潜在的な ノードなので、実行出力ピンが多いことに注目してください。一番上は「通過」ですが、他の実行出力ピンと何ら変わりはありません。その下の 2 つのピン (On SuccessOn Failure) は、オンライン サービスが値を返す (または返すことに失敗する) と実行されます。実行して成功が返されると

ブループリント内:

Unreal Match 3 のサンプル ゲームの Global Game Instance を例に取りましょう。デバイスのゲーム プラットフォーム (Game Center、Google Play) にログイン後、このポイントで Cache Achievements ノードを実行して (一番上の出力実行ピンから何も実行されないようにして) 実際に実行を停止し、すべての実績を返すサービス時間を与えます:

cacheAchievements.png

実績の値の読み取り

Get Cached Achievement Progress は、指定された Player Controller に対して所定の Achievement ID の Progress を返し、Cache Achievements ノードが既に実行されて正常に返された場合のみ機能します。

iOS Game Center の場合、この値は実際は integar 型で格納されるので、小数点以下を切り捨てた float 型です。float 値は Google Play Services のために受け取られます。

ブループリント内:

例として、Unreal Match 3 のサンプル ゲームの Global Game Instance ブループリントを見てみましょう。実績がキャッシュされたら、実績名および配列からもターゲット スコアをプルしてループを実行し、オフラインで見つかった値とすぐに比較します。そして、サービス値とローカル値で高い方を受け取ります。

readAchievement.png

実績へ値を書き出す

Write Achievement Progress は、パーセント (0.0% - 100.0%) ベースの Progress を所定のユーザーに提供されている実績 (Player ControllerUser Tag) へ書き出すために、プラットフォームの実績 システムへメッセージを送ります。インクリメンタルな実績の場合は低めのパーセントを渡すのに対して、「単発の」実績の場合は常に Progress100.0 を渡します。

iOS Game Center の場合、インクリメンタルな実績は 1-100 なので、この値は実際に整数で送られます。Google Play サービス用にフロート値を送ります。

このノードは 潜在的な ノードなので、実行出力ピンたくさん付いています。一番上は「通過」ピンですが、他の実行出力ピンと同じように機能します。その下の 2 つのピン (On SuccessOn Failure) は、オンライン サービスが値を返す (または返しに失敗する) と実行されます。実行が Written Achievement Name に正常を返すと、Written ProgressWritten User Tag は null 以外のノードと同等の値を返します。

ブループリント内:

例として、Unreal Match 3 のサンプル ゲームの Global Game Instance ブループリントを見てみましょう。現在の実績値をその値を増やすために必要なメトリクスと比較するループがあります。進展すると Write Achievement イベントが呼び出されます。

writeAchievement.png

潜在的なノードは関数では使用できないので、このように行います。

プラットフォーム固有の実績を表示する

Show Platform Specific Achievement Screen は、現在のプラットフォーム用に提供されている Player Controller の実績を表示します。

ブループリント内:

Unreal Match 3 のサンプル ゲームの GameOverButtons ブループリント ウィジェットを例に取りましょう。[ShowAchievements] ボタンを押すと、ゲームは現在のプラットフォームの実績画面を表示しようとします。

showAchievements.png

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル