体験申込で

Amazonギフト

カードもらえる

体験申込・無料相談

News

お知らせ

ロブロックススタジオでバッジを作成・付与する方法【完全ガイド】

コラム

Roblox Studio(ロブロックススタジオ)で自作のアスレチック(Obby)や迷路が完成したとき、生徒たちから「先生、最後までクリアした人に記念のバッジをあげたい!」「どうやって画面に『バッジ獲得!』って出すの?」とよく相談を受けます。

バッジは、プレイヤーがゲーム内の目標を達成したときに授与される「公式の実績メダル」です。獲得したバッジはプレイヤーのRobloxプロフィール欄にずっと残り、友達に自慢できるため、プレイヤーが「最後まで諦めずにクリアしよう!」と夢中になる最高のモチベーションになります。

しかし、いざ作ろうとすると、「ブラウザのCreator Dashboardで画像を登録する作業」と「Roblox Studio内でLuaスクリプトを書く作業」の2つを行き来する必要があり、「IDはどこにあるの?」「Studioでテストしても画面にバッジが出ない!」と迷子になってしまう子が非常に多いのです。

この記事では、教室で教えている手順に沿って、バッジ画像の用意から管理画面での登録、そして「ゴールに触れたらバッジ付与」「初めて入ってきた人に歓迎バッジ付与」といったコピペで動くスクリプトまで、ゼロから分かりやすく解説します。

Roblox Studioのバッジとは?ゲームパスとの違い

バッジとは、プレイヤーがゲーム内で特定の条件(「難関ステージをクリアした」「隠し部屋を見つけた」「モンスターを100体倒した」など)を達成したときに授与される「実績メダル」です。

よく似た機能に「ゲームパス(Game Pass)」がありますが、目的はまったく異なります。

無料の実績であるバッジと有料特典であるゲームパスの役割の違いを示す対比図解
  • バッジ(Badge)=「無料の実績」
    プレイヤーがゲーム内で行動したご褒美として無料でプレゼントするもの。プレイヤーの達成感を高め、ゲームを長く遊んでもらう(リテンション率向上)ために使います。
  • ゲームパス(Game Pass)=「有料のアイテム・特権」
    プレイヤーが仮想通貨Robux(ロバックス)を支払って購入する課金アイテム。「足が速くなる靴」「VIP専用エリアへの入場券」などを販売して収益化するために使います。

「プレイヤーを褒めて喜ばせるのがバッジ」「ゲームを盛り上げて販売するのがゲームパス」と覚えておきましょう。

バッジ作成の前に必要なもの(画像と公開設定)

バッジを作成する前に、次の2つの準備を済ませておきましょう。

RobloxのCreator Dashboardにバッジ用画像をアップロードする手順を示す図解
  1. バッジ用のアイコン画像(512 × 512pxの正方形) PNGまたはJPG形式の画像を用意します。丸型や星型のデザインが人気です(四角い画像でも、Robloxの画面上では自動的に丸く切り抜かれて表示されます)。
  2. ゲームの公開設定(Publish) バッジは、Robloxのサーバー上に保存されたゲームにのみ紐づけることができます。未保存の新規ファイルの場合は、Roblox Studio左上の「ファイル」→「Robloxに公開(Publish to Roblox)」を行っておいてください。

Creator Dashboardでバッジを登録する4ステップ

バッジの登録は、Roblox Studioの中ではなく、ブラウザの管理画面(Creator Dashboard)から行います。

ステップ1:バッジ用の画像をアップロードする

  1. ブラウザで「クリエイターダッシュボード(create.roblox.com/dashboard/creations)」を開きます。
  2. バッジをつけたい自分のゲーム(エクスペリエンス)をクリックします。
  3. 左側メニューの「収益化」または「エンゲージメント」欄にある「バッジ(Badges)」を選びます。
  4. 画面右上の「バッジを作成(Create a Badge)」ボタンをクリックします。
  5. 「画像をアップロード」から、用意した512×512pxのアイコン画像を選択します。

ステップ2:バッジ名と説明文を設定する

  • 名前(Name):「Obbyクリア記念!」「初心者脱出」など、獲得した瞬間に嬉しくなる名前をつけます。
  • 説明(Description):「難関のタワーを登りきった勇敢なプレイヤーに贈られる勲章」など、獲得条件を分かりやすく書きます。

知っておきたい!無料作成枠(1日5個まで無料)のルール

以前のRobloxでは、バッジを1つ登録するたびに100 Robux(約150円)の手数料がかかっていましたが、現在は誰でも1日5個まで完全に無料で作成できます(1アカウントあたり24時間ごとに5個の無料枠がリセットされます)。

小学生のお子さまでも、お小遣いやRobuxを使わずに安心して自由なバッジを作ることができます。

ステップ3:プログラム用の「バッジID」をコピーする

登録が完了すると、バッジ一覧に作成したバッジが表示されます。

バッジの右側にある「…(メニュー)」をクリックし、「アセットIDをコピー(Copy Asset ID)」をクリックします。 この時クリップボードに保存される「長い数字の並び(例: 1234567890)」が、後でスクリプトに貼り付けるバッジIDです。



Luaスクリプトでバッジを付与する(BadgeService)

バッジIDが手に入ったら、いよいよRoblox Studioで「どんな条件でバッジをあげるか」のスクリプトを書いていきます。

Robloxには、バッジを管理するための専用システム**BadgeService(バッジサービス)**が用意されています。

ゴール到達や敵撃破など様々な条件でバッジが付与される仕組みを示す図解

パターン①:ゴールブロックに触れたら付与(Obbyの定番)

アスレチックゲームのゴール地点に置いたブロック(ゴールパーツ)に触れた瞬間、バッジをプレゼントする最も人気のある仕組みです。

ゴールブロックの中に通常の「Script」を追加し、以下のコードを記述します。

local BadgeService = game:GetService("BadgeService")
local BADGE_ID = 1234567890 -- ★ここに先ほどコピーしたバッジIDを貼り付ける

local goalPart = script.Parent

goalPart.Touched:Connect(function(hit)
	local character = hit.Parent
	local player = game.Players:GetPlayerFromCharacter(character)

	-- 触れたのがプレイヤー本人の場合のみ処理
	if player then
		-- 既にバッジを持っているか確認(エラーを防ぐ安全設計)
		local success, hasBadge = pcall(function()
			return BadgeService:UserHasBadgeAsync(player.UserId, BADGE_ID)
		end)

		-- まだバッジを持っていなければ付与する
		if success and not hasBadge then
			pcall(function()
				BadgeService:AwardBadge(player.UserId, BADGE_ID)
			end)
		end
	end
end)

pcall(保護された呼び出し)を使っているのは、インターネット通信が一時的に途切れてもゲーム全体がエラーで止まらないようにするためのプロの現場の必須テクニックです。

パターン②:初めてゲームに入った人に歓迎バッジを付与

「自分のゲームに来てくれてありがとう!」という気持ちを込めて、初参加のプレイヤーに自動でウェルカムバッジを配るスクリプトです。

ServerScriptServiceの中にScriptを追加し、以下のコードを入れます。

local BadgeService = game:GetService("BadgeService")
local WELCOME_BADGE_ID = 1234567890 -- ★歓迎バッジのID

game.Players.PlayerAdded:Connect(function(player)
	-- 参加後、少しだけ待ってからチェック
	task.wait(2)

	local success, hasBadge = pcall(function()
		return BadgeService:UserHasBadgeAsync(player.UserId, WELCOME_BADGE_ID)
	end)

	if success and not hasBadge then
		pcall(function()
			BadgeService:AwardBadge(player.UserId, WELCOME_BADGE_ID)
		end)
	end
end)

パターン③:特定の敵を倒した瞬間に付与

ボスのHP(Humanoid.Health)が0になった瞬間に、とどめを刺したプレイヤーへ討伐バッジを付与することも可能です。humanoid.Diedイベントと組み合わせることで、RPGやバトルゲームの討伐実績が作れます。

ゲーム内でバッジの獲得通知を確認する方法

バッジのコードが正しく動くと、ゲーム画面の右下に「ピコン!」と小気味よい効果音とともに、丸いバッジのアイコンと「バッジ獲得!」という公式の通知ポップアップが自動的にスライド表示されます。

ゲーム内でバッジを獲得した際に画面右下に表示される通知バナーの図解

この通知UIはRobloxシステムが標準で用意してくれているため、開発者が自分でUIアニメーションを作る必要はありません。

現場で頻出!バッジが付与されない時の解決法

教室で子どもたちがバッジをテストした際、「あれ?ゴールに触ったのに右下に何も出ないよ?」と慌てることがよくあります。原因はほとんど以下の2つです。

バッジIDの確認やAPIアクセス許可などバッジエラーを解決する手順を表す図解

テストで一度もらったバッジは二度ともらえない?

もっとも多い原因がこれです。

バッジは「1人につき1回しか獲得できない」仕様になっています。一度テストプレイでバッジをもらってしまうと、スクリプトのUserHasBadgeAsyncが「すでに持っている」と判定するため、2回目以降は何も起きません。

もう一度テストしたい場合は、以下の手順で自分のアカウントからバッジを削除してください。

  1. Roblox公式サイトで自分のプロフィールを開き、「インベントリ」→「バッジ」を開きます。
  2. テストしたバッジをクリックし、右上の「…」から「インベントリから削除(Delete from Inventory)」を選びます。
  3. これで未所持の状態に戻り、もう一度Studioで獲得テストができるようになります。

StudioのAPIアクセス許可を忘れずに

Roblox Studio内から外部のバッジデータと通信するためには、設定の許可が必要です。

  1. Studio上部の「ホーム」タブから「ゲーム設定(Game Settings)」を開きます。
  2. 左メニューの「セキュリティ(Security)」をクリックします。
  3. 「APIサービスへのアクセスを有効にする(Enable Studio Access to API Services)」をONにして「保存」します。

ここがオフになっていると、テストプレイ中にBadgeServiceが通信できずにエラーになります。

バッジに関するよくある質問(FAQ)

Q1. バッジの画像は後から変更できますか? はい、いつでも変更可能です。Creator Dashboardのバッジ設定画面から新しい画像をアップロードし直せば、バッジIDを変えずにアイコンや説明文を更新できます。

Q2. 1つのゲームに作れるバッジの最大数はいくつですか? 実質的な上限はありません。毎日5個ずつ作れば、何十個でも実績を用意できます(Obbyの10ステージごと、隠しコイン発見ごとなど)。

Q3. プライベートサーバー(VIPサーバー)でもバッジはもらえますか? はい、プライベートサーバーでも通常の公開サーバーと同様にバッジを獲得できます。友達だけで集まって実績解除を楽しむことも可能です。



まとめ

ロブロックススタジオでバッジを作成・付与する方法について、管理画面での登録からトリガー別の実装コード、テストの注意点まで解説しました。

今回の重要ポイント:

  • バッジはプレイヤーに達成感を届ける「無料の実績メダル」
  • 現在は1日5個まで誰でも完全無料で登録可能
  • 管理画面でバッジ画像(512×512px)を登録し、固有の「バッジID」を取得する
  • `BadgeService:AwardBadge`を使って、ゴール接触や初回入室時に付与する
  • テストする際は「APIアクセスの許可」と「インベントリからの削除」を忘れずに

自分のゲームをクリアした友達の画面に「バッジ獲得!」と通知が飛び、友達が「やったー!バッジ取れた!」と喜んでくれたときの体験は、子どもにとって忘れられない最高の成功体験になります。ぜひ素敵なアイコンを描いて、オリジナルのバッジを作ってみてください。

TETRA UPでは、Roblox Studioでの作品作りを通じて、子どもたちが主体的にゲームの演出やプログラミングを学べるレッスンを提供しています。無料体験会でも実践的な制作を楽しく体験いただけますので、ぜひお気軽にご参加ください。



あわせて読みたい

コラム