iOS Game Center のアチーブメントの使用方法

プレイヤーのエンゲージメントを高めるために iOS Game Center のアチーブメントを使う

Choose your operating system:

Windows

macOS

Linux

iOS 10 以上をご使用の場合、iOS Game Center アプリケーションにはアクセスすることができなくなりました。Game Center アプリの機能はすべて iOS OS に移動されました。このため、 Game Center で表示されるように使用していたアイテムをすべて表示するための UI を作成する必要があります。

iOSachievements.png

コンフィギュレーション

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

以下は、Unreal プロジェクト用の設定方法です。

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

  2. 左側の [Platforms: iOS] タブを選びます。

  3. [Enable Game Center Support (ゲームセンター サポートを有効にする)] True に設定します。

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

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

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

これは 潜在的な ノードなので、実行出力ピンが多いことに注目してください。一番上は「通過」ですが、他の実行出力ピンと何ら変わりはありません。その下の 2 つのピン ( On Success On 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 Controller User Tag ) へ書き出すために、プラットフォームのアチーブメント システムへメッセージを送ります。インクリメンタルなアチーブメントの場合は低めのパーセントを渡すのに対して、「単発の」アチーブメントの場合は常に Progress 100.0 を渡します。

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

このノードは 潜在的な ノードなので、実行出力ピンたくさん付いています。一番上は「通過」ピンですが、他の実行出力ピンと同じように機能します。その下の 2 つのピン ( On Success On Failure ) は、オンライン サービスが値を返す (または返しに失敗する) と実行されます。実行が Written Achievement Name に正常を返すと、 Written Progress Written 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 のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる