今日は唐突に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
先ほどの変数leaderStatsにNameを設定します。Nameは「leaderstats」としてください。
間違えるとリーダーボードは作成されません。そしてleaderStatsのParentにplayerを設定します。
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 のParentをleaderStatsに設定します。
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 のプログラミング情報は英語でもほとんど手に入らないので辛いですね。。。
まだ、わからないことが多いですが、娘に教えられるよう頑張って情報集めてみます。
