📋

【Roblox】組み込みリーダーボードを作成する

2024/04/19に公開

はじめに

こんにちは、まつさこ です。

Robloxでゲームを開発する際、プレイヤー同士のスコアを比較するためのリーダーボードを作成することがあります。今回は、Robloxの組み込みリーダーボード(In-Experience Leaderboards)を活用して、簡単にリーダーボードを作成する方法について解説します。

公式ドキュメントはこちら

組み込みリーダーボードとは

Robloxをプレイする時に、右上に表示されるスコアボードがあります。これが組み込みリーダーボード(In-Experience Leaderboards)です。このリーダーボードを活用することで、各プレイヤーのスコアやパラメータをリアルタイムで確認することができます。

リーダーボードの初期化

今回、 💎Gem という名前の Int 型の値を表示・更新する方法を紹介します。

まず、サーバースクリプトを作成します。

プレイヤーがゲームに参加したときに、leaderstats という名前のフォルダを作成し、Playerオブジェクトの子オブジェクトとして配置します。
その leaedrstats フォルダ内に、 💎 Gem という名前の IntValue を作成します。

IntValue の値を 0 に初期化しておきます。

local Players = game:GetService("Players")

local function leaderboardSetup(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local gem = Instance.new("IntValue")
	gem.Name = "💎 Gem"
	gem.Value = 0
	gem.Parent = leaderstats
end

Players.PlayerAdded:Connect(leaderboardSetup)

これで、ゲームを開始するとリーダーボードが表示されるようになります。

スコアの更新

スコアを更新するには、 💎 Gem の値を変更します。

新しく updateGem() 関数を作成し、プレイヤーと値を引数として渡します。
Playerオブジェクトから leaderstats フォルダを取得し、その中から 💎 Gem を取得して値を更新します。

以下がサンプルのコードです。プレイヤーが参加してから3秒後に、 💎 Gem の値を 100 に更新します。

local Players = game:GetService("Players")

local function leaderboardSetup(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local gem = Instance.new("IntValue")
	gem.Name = "💎 Gem"
	gem.Value = 0
	gem.Parent = leaderstats
end

local function updateGem(player, val)
	local leaderstats = player and player:FindFirstChild("leaderstats")
	repeat
		wait()
	until leaderstats
	local gem = leaderstats and leaderstats:FindFirstChild("💎 Gem")
	if gem then
		gem.Value = val
	end
end

Players.PlayerAdded:Connect(function(player)
	leaderboardSetup(player)
	wait(3)
	updateGem(player, 100)
end)

上手く行きました!

まとめ

今回は、Robloxの組み込みリーダーボードを活用して、リーダーボードを作成する方法について解説しました。
ぜひ、自分のエクスペリエンスにリーダーボードを導入してみてください!

読んでくださりありがとうございました🤗

moze テックブログ

Discussion