ついに、親子で作るRoblox Studioゲーム制作シリーズも最終回です!
前回は、BGMやゴール演出を追加して、ゲームらしいワクワク感を演出しました。
そして今回は、いよいよ最後の仕上げ。
- ゲームをクリアした証になる「バッジ」の作成
- クリアした人だけが楽しめる「アフロ」のごほうび演出
- 世界中の人に遊んでもらうための「ゲーム公開」
まで、一緒に進めていきます。
おけ今回わが家では、クリアバッジのイラストを子どもに描いてもらいました。
その手描きイラストをChatGPTでほんの少しだけ整え、Robloxのバッジとして登録しています。
「絵が苦手だから難しそう…」と思う方でも大丈夫。
子どもの絵ならではの味を残しながら作る方法もご紹介します。
この記事を読み終える頃には、あなただけのオリジナルゲームが完成し、世界中のプレイヤーに公開できるようになります。
最後まで一緒に楽しみながら、ゲームクリエイターデビューを目指しましょう!
↓「親子でゲーム作り」シリーズはこちら↓
第1回:Roblox Studioの始め方とゲーム作りの準備


第2回:アスレチックコースとチェックポイントを作ろう


第3回:BGM・ゴール演出・クリア画面を追加しよう


第4回(この記事):バッジ・クリア特典・公開方法
ついに完成!ゲーム公開まであとひと息
ここまで親子でゲームを作ってきた皆さん、お疲れさまでした!
着いてきてくれてありがとうございます!
コースを作り、チェックポイントを設置し、BGMやゴール演出を追加して、ゲームらしい形になってきましたね。
今回はいよいよ最後の仕上げです。
子どもが描いたイラストを世界に一つだけのバッジにしたり、クリアした人だけがアフロになる遊び心を加えたり、最後は世界中の人に遊んでもらえるよう公開していきます。
少し作業は多いですが、一つひとつ進めれば大丈夫。
完成した瞬間の達成感は格別ですよ✧*。٩(ˊᗜˋ*)و✧*。
子どもの絵を世界に一つだけのバッジにしよう
まずは紙に自由にバッジを描いてみよう
ゲームをクリアした人だけがもらえる「バッジ」は、ゲームを遊ぶ楽しみの一つです。
今回は、子どもに紙とペンを渡して「クリアしたくなるバッジを自由に描いてみよう!」とお願いしました。
ちゃんとした紙に書く必要も、上手に描く必要はありません。


折り紙の裏に、マジックペンで書いてもらいました。
「どんな絵なら嬉しいかな?」「どんなバッジなら自慢したくなるかな?」と親子で話しながら描く時間そのものが、ゲーム作りの思い出になります。
ChatGPTで子どもの絵の雰囲気を残したまま整える
描いたイラストは、そのままでも素敵ですが、小さなアイコンとして表示されるため、少しだけ見やすく整えるのがおすすめです。
どうしても家で撮影するので影も入っちゃうし、斜めにもなっちゃう。
今回はChatGPTを使って、線をきれいにしたり色を整えたりしましたが、「別のイラストに描き直す」のではなく、子どもの絵の良さを残すことを一番大切にしました。
この記事で実際に使用したプロンプトも紹介するので、ぜひ参考にしてみてください。
↓プロンプト↓
この画像は子どもが手描きしたイラストです。
Robloxのゲームクリアバッジとして使いたいので、子どもの絵の雰囲気や個性はできるだけ残してください。
新しく描き直したり、大人っぽいイラストに変更したりせず、
・線を少しだけ整える
・色を見やすく調整する
・小さいアイコン(64×64px程度)でも見やすいデザインにする
程度の修正にしてください。
元のイラストの構図・表情・モチーフは変更せず、追加・削除も最小限にしてください。
ゲームのバッジらしい、明るく楽しい雰囲気に仕上げてください。
背景はシンプルで、バッジとして見やすいデザインにしてください。
↑このままコピペでオッケイです。この文書と子供の描いた絵を一緒にchatGPTのチャット欄に貼り付けましょう。
2回やってどちらとも丁度いい感じになったので、再現性取れておりますよー。


Robloxでバッジを登録する方法
画像の準備ができたら、Creator Hubでバッジを登録します。
Roblox creator hubは今まで使ってきたRoblox studioとは違って、ネット上でやります。
検索窓にRoblox Creator Hobと入れて検索。


すると出てくるのでここから作業します。
英語ですがビビらなくてもOK。開けば日本語訳になりますので。


サイトに入ったら、左の列の「作品」をクリックすると、真ん中のスペースに自分が作ったゲームが表示されます。
その右上の「・・・」をクリック。


するとメニューが開くので「バッジを作成」をクリック。


作ったバッジ画像と名前、詳細を入れればバッジ作成ができます。
ただ、このあと審査が入るため少々時間がいります。



私はこの間に近所に1時間半ほど子供たちとお買い物に出かけました。
登録が完了するとバッジIDが発行されるので、このあと紹介するスクリプトでゲームと連携させれば完成です。
バッジIDはわかりにくいですが、上部のアドレス欄をみます。


セキュリティ上隠しましたが、黄色に塗りつぶした赤丸のところに数字が羅列しています。これがIDとなります。
これをコピーしておいてください。あとでペーストします。
次はいつものRoblox Studioに戻ってゴール床のスクリプトに赤線を追加します。
3か所ですな。
黄色のところには上でコピーしたID番号をいれてください。





え?入力がめんどい?わかる。いいでしょう。画像ではなく、コピーできるコード貼っておきます。
IDのところだけ自分のIDいれてくださいね
メモ付ですが、このまま入力でOKです。
-- 必要なサービスを取得
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local BadgeService = game:GetService("BadgeService")
-- ゴール床
local goal = script.Parent
-- ゴール床の中にあるファンファーレ
local fanfare = goal:WaitForChild("自分で選んだファンファーレの名前")
-- ReplicatedStorageにあるCLEAR表示用RemoteEvent
local showClear = ReplicatedStorage:WaitForChild("ShowClear")
-- バッジID
local BADGE_ID = ここに自分のIDいれてね。
-- 同じ人が何度も連続でゴール処理されないようにする
local touchedPlayers = {}
goal.Touched:Connect(function(hit)
-- 触れた部品からキャラクターを探す
local character = hit:FindFirstAncestorOfClass("Model")
if not character then
return
end
-- キャラクターのHumanoidを探す
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid then
return
end
-- キャラクターからプレイヤーを特定
local player = Players:GetPlayerFromCharacter(character)
if not player then
return
end
-- すでにゴール処理済みなら終了
if touchedPlayers[player] then
return
end
touchedPlayers[player] = true
print("ゴールしました:", player.Name)
-- ファンファーレを鳴らす
fanfare:Play()
-- CLEARの文字を表示する
showClear:FireClient(player)
-- バッジを付与する
local badgeSuccess, badgeResult = pcall(function()
return BadgeService:AwardBadgeAsync(player.UserId, BADGE_ID)
end)
if badgeSuccess then
print("バッジ処理成功:", badgeResult)
else
warn("バッジ処理失敗:", badgeResult)
end
end)でも、これまた後で書き直すので、最後まで読んでから始めてね。
だって、なんか知らんけど、子供ら、ゴールしたら髪型変えるっていうんだもん。
ゴール床をもうちょっと書き換えなきゃね。
ゲームクリアでアフロに!クリア特典を付けよう
ゴール床にスクリプトを追加する
ゲームをクリアしたら、プレイヤーの髪型がアフロに変わる仕掛けを作ります。
「えっ、なんでアフロ?」と思うかもしれませんが、子どもたちはこういう予想外のごほうびが大好きなんですかね。
実際にわが家でも、「クリアしたー!」「アフロになったー!」と大笑いしながら何度も遊んでいました。
まずは変更したい髪型をクリエイターズマーケットから選びます。


Hairと検索すればたくさん出てきます。我が家に合わせてアフロにしなくていいですよ!?
そしたらば、ServerStorageに髪型を入れておきます。


この時はClearHair名称変更にしましたが、やっぱりアフロのままにしました。
準備はこれでOK。
ゴール床のスクリプトをもう一度開いて全部消して、これをコピペしてください。
ゴール床にスクリプトを追加するだけで動くように紹介します。
で、先ほどのスクリプトの最終形態はこちらです。
-- 必要なサービスを取得
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerStorage = game:GetService("ServerStorage")
local BadgeService = game:GetService("BadgeService")
-- ゴール床
local goal = script.Parent
-- ゴール床の中にあるファンファーレ
local fanfare = goal:WaitForChild("自分で選んだファンファーレの名前")
-- ReplicatedStorageにあるCLEAR表示用RemoteEvent
local showClear = ReplicatedStorage:WaitForChild("ShowClear")
-- ServerStorageに入れたクリア特典のアフロ
local clearHair = ServerStorage:WaitForChild("自分で選んだ髪型の名前")
-- バッジID
local BADGE_ID = バッジのID数字
-- 同じ人が何度も連続でゴール処理されないようにする
local touchedPlayers = {}
goal.Touched:Connect(function(hit)
-- 触れた部品からキャラクターを探す
local character = hit:FindFirstAncestorOfClass("Model")
if not character then
return
end
-- キャラクターのHumanoidを探す
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid then
return
end
-- キャラクターからプレイヤーを特定
local player = Players:GetPlayerFromCharacter(character)
if not player then
return
end
-- すでにゴール処理済みなら終了
if touchedPlayers[player] then
return
end
touchedPlayers[player] = true
print("ゴールしました:", player.Name)
-- ファンファーレを鳴らす
fanfare:Play()
-- CLEARの文字を表示する
showClear:FireClient(player)
-- バッジを付与する
local badgeSuccess, badgeResult = pcall(function()
return BadgeService:AwardBadgeAsync(player.UserId, BADGE_ID)
end)
if badgeSuccess then
print("バッジ処理成功:", badgeResult)
else
warn("バッジ処理失敗:", badgeResult)
end
-- 現在つけている髪型を外す
for _, item in ipairs(character:GetChildren()) do
if item:IsA("Accessory") then
if item.AccessoryType == Enum.AccessoryType.Hair then
item:Destroy()
end
end
end
-- クリア特典のアフロを複製
local newHair = clearHair:Clone()
-- プレイヤーにアフロを装着
humanoid:AddAccessory(newHair)
print("アフロ装着成功:", player.Name)
end)アフロが付いたかテストプレイしよう
スクリプトを入れたら、必ずテストプレイをしてみましょう。
バッジが取得できるか、アフロがちゃんと付くかを確認すれば、ゲームはほぼ完成です(`・∀・´)ノ
バッジの修得は通常のテストプレイでは手に入れれないので、先に公開して、自分が実際にRobloxで遊ぶ必要があります。
でも心配は御無用!
限定公開(自分と友達だけ)の公開がありますので、限定公開にしておきましょう。
まずはRoblox studioでファイル→Robloxで公開を押します。
そしたらば、先ほどのネットで開いたRoblox creator Habに戻っていきます。


左側の「作品」を押し、公開したい作品をクリックします。


設定を押すと


説明画面になります。
入力画面を済ませて、真ん中の限定を選びます。
これでOK!
ちなみに、サムネイルはなんでもOKですが、簡単につくれる方法をお伝えしておきます。
- Roblox Studioでいい感じの背景をスクショします。(スクショはキーボードでウィンドウズマーク+shift+Sで撮れます)
- テストプレイでジャンプしたキャラクターをスクショします。
- chatGPTに「Robloxのゲームのサムネイルを作ります。題名は○○です。添付する背景とキャラクターを使用して、~~のようなイメージのゲームなのでポップな雰囲気で仕上げてください」といって画像2つを添付します。
すると、台所でお茶のんで帰ってくる間にできあがっております。
使ったのは次の画像。




通常のRobloxで自分の作品を探すのは大変ですよね。
そんな時は無理せず、そのままネットのRoblox Creator Hubで、


先ほどの「作品」から自分の作品の右上の「…」からメニューを開き、Robloxで表示を押せば、そのままプレイができます。
完成したゲームを公開しよう
公開前にチェックしたいこと
限定公開から一般公開する前に、ゲームタイトルや説明文、アイコン、サムネイルなどを見直しておきましょう。
最初に目に入る部分なので、少し工夫するだけで「遊んでみたい!」と思ってもらいやすくなります。



あと忘れがちなのが、RobloxStudioで各ブロックが「固定」をしっかり押してあること。スクリプトがすべて正常に機能しているか、そのあたりも要確認です。
Robloxで公開する手順
設定が終わったら、公開設定を「限定」から「公開」に変更して世界へ公開します。
自分たちだけのゲームだった作品が、世界中の人に遊んでもらえるゲームになる瞬間です。
家族や友達に遊んでもらおう
公開したら、まずは家族や友達に遊んでもらいましょう。
「面白かった!」「ここ難しかったよ!」という感想は、次のゲーム作りのヒントになります。
ゲームは公開して終わりではなく、遊んでもらって育っていくものです。
まとめ|親子でゲームを完成させた経験は、一生の宝物


ゲームを作ることは、プログラミングを学ぶだけではありません。
「どんなコースなら楽しいかな?」
「どんなバッジなら喜んでもらえるかな?」
「どんなごほうびなら笑ってくれるかな?」
そんなことを親子で考えながら、一つの作品を完成させる時間こそが、このシリーズで一番大切にしたかったことです。
完成したゲームの出来栄え以上に、「自分で最後まで作れた!」という達成感は、きっとお子さんの自信につながりますよ✧*。٩(ˊᗜˋ*)و✧*。
ぜひ今回のゲーム作りをきっかけに、「次はこんなゲームを作ってみよう!」と、親子で新しいチャレンジを楽しんでくださいね。
ここまで読んでくださってありがとうございました!

