今日は唐突に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 のプログラミング情報は英語でもほとんど手に入らないので辛いですね。。。
まだ、わからないことが多いですが、娘に教えられるよう頑張って情報集めてみます。