Cover image for Robloxのリーダーボードを作成する
robloxロブロックス

Robloxのリーダーボードを作成する

April 19, 2019

6 min read

mitsuruogMitsuru Ogawa

今日は唐突にRobloxでのゲームプログラミングの話です。

Roblox!?

子供たちがレゴブロックのような感覚で自作のゲームを作り、公開できるプラットフォームが「Roblox(ロブロックス)」だ。

娘と週末に Roblox で遊ぶことがあり、遊んでいる時にふっと「自分でゲームを作って公開できる」と言ったことがありました。 その時、あまり娘は理解していなかったようだったので、ちょっとどういうことか理解させて驚かせてやろうかと思い、試しに 1 つ作って娘に見せてみたら、目玉が飛び出るくらい興奮して、早速自分も作りたいという話になりました。 (たぶん、お父さんですら作れるなら、自分にもできると思っている。。。)

自分もそこまでくわしくないので、それ以来こっそり教えられるように Roblox でのプログラミングについて調べているという次第です。

ちなみに Roblox では、Lua言語と、Roblox Studioを使って、Roblox が提供する API を使いながらゲームを作成します。

今回はリーダーボードを作成方法についての紹介です。

リーダーボードとは

リーダーボード(LeaderBoard)とは、ゲームの中でプレイヤーの名前や得点などを表示するものです。 画面の一番見やすい場所に置いてあり、ロブロックスでは画面の右上に表示されています。

リーダーボードの作成

ではリーダーボードを作成します。 まず最初に Roblox Studio で新しいプロジェクトを作成してきます。

リーダーボードのセットアップ

まず、右側の Explorer の中のServerScriptServiceの中に新しい Script を作成します。名前はPlayerSetupとしておきます。

その Script の中にonPlayerJoinという関数を作成します。この関数はplayerというパラメータを受け取ります。

local function onPlayerJoin(player)

end

次にonPlayerJoinの中にleaderStatsという名前の変数を作成して、Folderのインスタンスを設定しておきます。このフォルダーの中に全てのプレイヤーの情報が保存されます。

local function onPlayerJoin(player)
  local leaderStats = Instance.new("Folder")
end

先ほどの変数leaderStatsNameを設定します。Nameは「leaderstats」としてください。 間違えるとリーダーボードは作成されません。そしてleaderStatsParentplayerを設定します。

local function onPlayerJoin(player)
  local leaderStats = Instance.new("Folder")
  leaderStats.Name = "leaderstats"
  leaderStats.Parent = player
end

最後にonPlayerJoinをこのゲームと接続します。これで誰かがこのゲームに参加してきた時に、onPlayerJoinが実行されます。

local function onPlayerJoin(player)
  local leaderStats = Instance.new("Folder")
  leaderStats.Name = "leaderstats"
  leaderStats.Parent = player
end

game.Players.PlayerAdded:Connect(onPlayerJoin)

これでリーダーボードのセットアップは完了です。

リーダーボードにプレイヤーの情報を表示する

次に、リーダーボードにプレイヤーが持っているお金(Gold)を表示してみます。

このお金を記憶するためにIntValueという数値を記録するための変数を使います。 onPlayerJoin関数の中で、goldという名前の変数を作成し、IntValueのインスタンスを設定しておきます。

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

  local gold = Instance.new("IntValue")
end

リーダーボードに表示する名前をNameに設定します。今回の例では、「Gold」と表示されるはずです。

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

  local gold = Instance.new("IntValue")
  gold.Name = "Gold"
end

次に最初に持っているお金をValueに設定します。最初は「0Gold」にしておきましょう。

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

  local gold = Instance.new("IntValue")
  gold.Name = "Gold"
  gold.Value = 0
end

最後に gold のParentleaderStatsに設定します。

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

  local gold = Instance.new("IntValue")
  gold.Name = "Gold"
  gold.Value = 0
  gold.Parent = leaderStats
end

これで画面の右上にリーダーボードが表示されるようになりました。

まとめ

ほぼ、ここの内容の翻訳です。

Roblox のプログラミング情報は英語でもほとんど手に入らないので辛いですね。。。

まだ、わからないことが多いですが、娘に教えられるよう頑張って情報集めてみます。