Language:
Page Info
Tags:
Engine Version:

Google Play のアチーブメントの使用方法

androidAchievements.png

コンフィギュレーション

お持ちのアプリケーションに Google Play Game Services を設定する方法は、Achievements | Play Games Services | Google Developers をご覧ください。

以下は、アンリアル プロジェクト用のステップです。

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

  2. 左側の [Platforms:Android] タブを選択します。

  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 では、アンリアル プロジェクト内でのみ使用する 名前 と Google Play Services で使用する Achievement ID を入力する必要があります。

    androidSetup.png

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

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

Android と iOS の両方のデバイスでアプリケーションをリリースする予定の場合、アチーブメントの設定に関する詳細は iOS Game Center のアチーブメントの使用方法 をご覧ください。

アチーブメントをキャッシュする

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