【RPGツクールMZ・MV】簡単にオンラインランキングを実装できてしまう超便利なプラグイン!

どうも! Tuskです!
今回はちょっと久しぶりにRPGツクールMZ・MV向けのプラグインをご紹介したいと思います。

今回ご紹介するプラグインは、その名も
「ランキングプラグイン」

名前の通り、ゲームスコアなどをオンラインランキングに登録して、ゲーム内で参照することも出来る優れものなプラグインです!

ランキングのオンラインでのデータ登録・管理はGoogleスプレッドシートを使用するため、誰でも無料で使えてしまいます!
しかも、これはスコア(数値)じゃなくても登録できるので、工夫次第でかなり面白い事ができる可能性を秘めています!

同プラグインは、半減さんが作成されたプラグインで、以下のURLにて配信されています。
・RPGツクールMZ・MV対応

スポンサーリンク

プラグインの導入

プラグイン自体の導入は他のプラグインと同様です。
プラグイン管理画面からプロジェクトに取り込み、有効化します。

ただし、GoogleスプレッドシートとのデータのやりとりにGoogle App Scriptを使用するため、Googleアカウントとその設定が必要です。

しかし、そのやり方はプラグインファイルに分かりやすく説明されたpdfが添付されているため、この記事では割愛させて頂きます。
画像付きでかなり分かりやすいご説明が書かれているので、ホントそれ見た方が早いです!

プラグインのパラメーター

パラメーター部分では、主に取得したランキングを表示する際のレイアウトやデザイン等を設定しますが、必須となるのがgasURLというパラメータで、ここにGoogleAppsScriptのデプロイURLを指定します。
Googleスプレッドシートとのデータのやり取りに必要となりますので、プラグインファイルに添付されたpdfをまず読みながら、このパラメータを設定しましょう。

playerId:

プレイヤーを識別するIDを格納する変数を指定します。
識別IDは、プレイヤーごとに一意で、ここで指定された変数に格納されます。

playerName:

ランキングに表示するプレイヤーの名前を格納する変数番号を指定します。
プレイヤー名はプラグインコマンドからここで指定された変数に格納できます。

rankingFontSize:

ランキング情報(順位、スコア、名前)のフォントサイズを指定します。

rankingTitleFontSize:

ランキングタイトルのフォントサイズを指定します。

ranktextTitle:

ランキングタイトルに表示する文字列を指定します。

recordTitle:

今回のスコアが存在する場合に表示されるタイトルを指定します。

recordScoreName:

今回のスコアの名称を指定します。

recordRankName:

今回のスコアの順位名称を指定します。

rankEndStr:

順位の末尾に表示する文字列を指定します。

valueEndStr:

スコアの末尾に表示する文字列を指定します。

nameEndStr:

名前の末尾に表示する文字列を指定します。

fontFamily:

文字列のフォントを指定します。

noName:

名前が設定されていない場合に登録されるデフォルト登録名を指定します。

batsuString:

閉じるボタンの表記を指定します。

rankingMenuDispFlg:

ランキング表示終了後にメニュー表示禁止を解除するかどうかを指定します。

色変更:

各要素の色や背景色を指定します。

サイズ変更:

ランキング背景や各要素のサイズを調整します。

位置調整:

各要素の表示位置を調整します。

なお、プレイヤーIDの振分機能が実行されていない場合、スコアをランキングに送信する機能が使用できませんので、プラグインパラメータ[doGetURL][gasURL][playerId][playerName]は必須項目となります。
必ず値を設定してください。

プラグインコマンド

DisplayRanking

指定したランキングの読み込みや表示順、新規スコアの表示方法を設定します。

DisplayRanking [読み込むランキングのボードID(1~50)] [新規スコア表示区分(ON/OFF)] [ランキング表示順(ASK/DESK)] [処理ステータス格納変数番号(省略可能)]

ボードIDはスプレッドシートのシート番号と考えると分かりやすいです。
表示するシートを指定するわけですね。
そして、ランキングを昇順で表示するか降順で表示するかを指定できます。
処理ステータスというのは、プラグインコマンドの処理に成功した場合に[1]、失敗した場合に[9999]が格納されるという機能です。
この値を使って、ランキングの処理完了までウェイトをかけたり、失敗した時にエラーメッセージを表示してゲームに戻すといった処理が可能になります。

SendRanking

条件に応じたランキングの判定を行い、スコアをボードに書き込みます。
なお、このコマンドは事前に「RankIdSet」を実行しておく必要があるので注意です!

SendRanking [書き込むランキングのボードID(1~50)] [書き込む値] [書き込み判定基準(UP/DOWN/NON)] [処理ステータス格納変数番号(省略可能)]

ボードIDは要するにランキングを書き込むシートの番号、書き込む値はそのまま読んで字のごとくボードに書き込むスコア等の値です。
書き込み判定基準は、すでに登録してある値に対して大きいか小さいかで判定を行い、条件を満たしていれば上書きされるというモノです。
つまり、「UP」ならベストスコアならボードに書き込む……ってな条件になるわけですな。
「NON」なら条件なしで上書きされます。

RankIdSet

プラグインのパラメータ[playerId]に設定した変数番号に、プレイヤーごとに一意となるプレイヤーIDを設定するコマンドです。
一度IDをセットしても、再びコマンドでIDの上書きをする事も可能です。

RankNameSetActor

アクターIDを参照し、アクターの名前をプラグインパラメータ[playerName]で設定した変数番号にセットします。
アクター名からランキングで使われる名前をセットする場合はこのコマンド。

RankNameSet:

引数に設定された登録名を、プラグインパラメータ[playerName]で設定した変数番号にセットします。
直接プラグインパラメータに名前を設定することも可能で、ランキング登録の時にテキスト入力などで名前を入力したい場合はこのコマンド。

GetRankingData:

指定したランキングの読み込みや、取得データを配列で変数に格納します。

GetRankingData [取得するランキングのボードID(1~50)] [ランキングソート順(ASK/DESK)] [ID一覧格納変数番号] [順位一覧格納変数番号] [名前一覧格納変数番号] [値一覧格納変数番号] [処理ステータス格納変数番号(省略可能)]

GetRankingData [取得するランキングのボードID(1~50)] [ランキングソート順(ASK/DESK)] [ID一覧格納変数番号] [順位一覧格納変数番号] [名前一覧格納変数番号] [値一覧格納変数番号] [処理ステータス格納変数番号(省略可能)]

プラグインコマンドの各引数で指定されたデータ・変数IDに基づいて配列でデータが取得されます。
配列からデータを参照してメッセージなどで表示する事もできるので、このコマンドでランキングを取得して、表示されるランキングボードを自作する事も可能になってきます。

SearchRankIdToValue:

指定したランキングIDの検索、値の取得を行います。

SearchRankIdToValue [検索するランキングのボードID(1~50)] [検索ID] [値格納用変数] [処理ステータス格納変数番号(省略可能)] [配列設定OFF(省略可能)]

自分のランキングを参照したり、特定のIDを参照したりといった事ができます。
こちらは自分でまだ使用していないコマンドなのですが、配列形式でない取得も可能となっている様なので、自分の登録された結果だけ表示したい場合などに使えそうです。

プラグインの応用

こちらのプラグイン、Googleスプレッドシートを使ってツクールから書き込み・参照ができるプラグインなので、スコアなどの数値じゃなくても書き込む事ができるんです!

それを応用すれば、ツクールゲー専用の掲示板的なシステムを組む事もできます!

僕の場合は、神社を舞台としたおみくじガチャゲーで、願い事を共有できるオンライン絵馬を作成しています。


単純にランキングの書き込みをテキスト入力による願いと後にしただけなのですが、ひと言のメッセージをオンラインで共有して見られるというのは中々面白いのではないでしょうか。

使い方次第では、数列をオンラインボードに書き込んで、それをゲーム内で変数に取得し、特定のアイテムを入手できる条件として、ユーザー間でアイテムのやり取りをするといった事も可能かもしれません。

ちょっとしたオンライン要素が作れてしまうというわけですな。

これは使い方次第でかなり化けます!

非常におすすめのプラグインです!

コメント

タイトルとURLをコピーしました