Unity

【Unity】オンラインのハイスコアランキングを実装する方法【WebGL・Android・IOS等に使える】

本記事内には、アフィリエイトリンクを含む場合があります

Unityでゲームを作り始めると、
プレイするモチベーションを掻き立てるために、
ハイスコア機能をつけたくなりますよね?

ネットワークで世界がつながっている現代、
できれば世界中のライバルと、
スコアを競えるスコアランキングを実装したいものです。

そこで、本記事では、
オンラインのハイスコアランキングを実装する方法を、
簡潔に綴っておこうと思います。

 

現状、私が把握している2つの方法を備忘録として、紹介します。

スコアの管理は、各社が提供しているサーバーを利用するので、無料でゲーム開発をしたい方は無料プラン内に収まるように、使い分けるのが良いかもしれません。

1.unity-simple-ranking(ニフクラ)


↑これが秒で実装できます^^

”ニフクラ mobile backend”というクラウドサービスを利用すれば、スコアランキングやガチャ機能などを実装することができます。

通常、ランキングを設計していくのは、少し時間がかかりますが、
naich's lab様が"unity-simple-ranking"というツールを作られ、Githubより配布されています(感謝)。

紹介ページ:https://blog.naichilab.com/entry/webgl-simple-ranking
Github:https://github.com/naichilab/unity-simple-ranking

これを利用すれば、マジで秒です!^^;

以下、実装の手順(紹介ページに従うだけ)

 

1.ニフクラのアカウント登録

まずは、ニフクラのサービスを利用するため、アカウント登録が必須です。
(各種SNSアカウントと紐づけてログイン可能)

ログインによって、サーバー情報を管理することができます。
(ユーザーの数や通信量を確認したり、スコアを削除できる)

クイックスタート(ニフクラ)

 

2.アプリケーションキー&クライアントキーの取得

クイックスタートを参考に、ニフクラ管理画面からアプリを作成し、アプリケーションキーとクライアントキーを取得します。
(あとでUnity Editorにぶち込みます)

 

3.SDK「NCMB.x.x.x」のインストールとEditor設定

Githubより配布されているSDKをダウンロードします。
最新versionのzipファイル(NCMB.x.x.x.zip)を得て、解凍~。

これでニフクラ側からやることは終わりです^^

Unity Editorを起動し、各種プラットフォームにスイッチしておきましょう。

ちなみに、Unityのversionが2020以降の場合、本スコアランキングをセットしたものをAndroidにビルドしようとすると、エラーが発生するようです。
秒で実装したいなら、2019以前が良さそうでした。。

UnityのAssetsフォルダ内に、解凍した"NCMB.x.x.x"をドラッグ&ドロップしたら、フォルダ配下に入っているPackageをクリックして、importを開始します。

importしたら、Asset内にフォルダが自動的に増えます。

Prefabsフォルダにある2つのオブジェクト(図参照)をHierarchyに配置します。

NCMBSettingのInspector上で、先ほど取得していたアプリケーションキーとクライアントキーを入力すれば、OKです。

ここまで準備が整ったら、"unity-simple-ranking"をセットしていきます!

4."unity-simple-ranking"のインストールとEditor設定

本ツールの紹介ページからGithubページに移り、「↓Code」から「Download zip」でダウンロードします。

Unity EditorのAssetsタブから、Import Package_Custom Packageをクリックし、ダウンロードした「unity-simple-ranking.unitypackage」をインポートします。

すると、「naichilab」というフォルダが生成されます。
その配下にあるRankingLoaderというPrefabファイルをHierarchyに配置します。

さらに、
Hierarchyに、UIのEventSystemを作成するのと、
「BuildSetting」でしておきます。
(これ忘れがち)

最後に、スコアランキングを表示するためのコードを書けばOKです。

テストで見るなら、空のオブジェクトにScriptをアタッチして、次の記載をすればよいでしょう。

void Start()
{
naichilab.RankingLoader.Instance.SendScoreAndShowRanking (100);
}

昇順・降順の設定や、スコア・時間の設定などについては、
naichilab様のサイトをご参照ください。

写真に近いリアルガチアバターを作る方法を完全解説してるのは本ブログだけ!↓

2.PlayFab(Microsoft)

Microsoft Azure PlayFab サービスは、ゲーム開発を助けるバックエンドプラットフォームです。

unity-simple-rankingのツールほど、秒で実装はできませんが、
ランキングやチャット、報酬機能など様々なアレンジが可能です。

以下、手順。

1.Unity Editor機能の拡張パッケージをダウンロード

PlayFabのUnity3Dクイックスタートページから、”Playfab Unity エディター拡張機能のアセットパッケージ”をクリックし、ダウンロードします。

UnityEditorのAssetsタブ_Impot Package_Custom Packageより、”PlayFabEditorExtensions.unitypackage”を選択して、Importを済ませます。

すると、「Playfab EdEx」というウィンドウがEditor内に出てきます。

 

2.PlayFab SDKのインストールとタイトル作成

「Playfab EdEx」からPlayFabのアカウントを作成します。
(すでに作成済みの方は小さい"LOG IN"をクリック)

すると、”PlayFab SDK”のインストールをするボタンが出てくるので、それをクリック。

インストールしたら、Settingで、"Studio"と"Title ID"を記入しなければなりません。
そのためには、「GAME MANAGER」というところをクリックして、管理画面に飛びます。

「…」から「タイトル」をクリックしたら、名前やジャンル、ターゲットマーケットプレイスなどを入力し、新たなタイトルを作成します。

そして、Editorに戻り、いったんLog Out→Log Inし直してください。
すると、Title IDを選べるようになっています。

これでPlayFabを使う準備は整いました。

 

PlayFabを使ったランキングの実装は長くなるので、
個人的に最もシンプルに実装する方法は、下の記事にまとめています。

【最も簡単】PlayFabでの自動ログイン(サイレント)とランキングの実装方法

 

以上、参考になれば幸いです^^

 

ABOUT ME
いなも@システマライフハッカー
”仙豆”を開発することを夢見て、健康食品会社で働いていたものの、2016年に出会ったロシアの武術”システマ”こそ、その糸口があると感銘し、勝手にシステマ普及活動を始める。 一方で、クリエイティブなモノ作りが好きで、DX社会で楽しみを見出せる"Unity”を活かして、”スマートかつ快適な暮らし”のヒントを発信している。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA