バッジはプレイヤーが困難な目標に到達したり、一定時間プレイしたりなど、仮想空間内の目標を達成したときに贈ることができる特別な賞です。 バッジは受け取るとすぐにプレイヤーの持ち物リストのバッジカテゴリに表示されます。
バッジの作成
バッジに使用する画像の作成には、以下の要件を満たしてください:
- 512×512 ピクセルのテンプレートを使用します。
- .jpg、.png、.tga、もしくは.bmpのいずれかの形式で画像を保存します。
- アップロードの過程で、最終的なバッジを円形の画像にトリミングして切り出すため、円形の境界線の外側に重要な部分を含めないようにしてください。
バッジは所有している仮想空間ごとに 24 時間(日本時間)に最大5つまで無料で作成できます。 24時間以内にさらにバッジを作成したい場合は、追加のバッジ1つにつき100Robuxが必要になります。
バッジの作成方法:
クリエーターダッシュボードに移動します。
バッジを作成したいバーチャル空間をクリックします。 バーチャル空間の概要ページが表示されます。
左側のナビゲーションで、関連アイテムを選択します。 バッジセクションがデフォルトで開いている状態で、その特定のバーチャル空間の関連アイテムページが表示されます。
バッジ作成ボタンをクリックします。 バッジ作成ページが表示されます。
画像をアップロードボタンをクリックします。 ファイルブラウザが表示されます。
アイコンとして表示したい画像を選択し、開くボタンをクリックします。
以下のフィールドに入力します。
- 名前:バッジのタイトル。
- 概要:バッジを獲得するためにプレイヤーができることの説明。
バッジ作成ボタンをクリックするか、24 時間以内に 5 つのバッジを既に作成している場合は、100Robux で購入ボタンをクリックしてください。 バッジは、関連アイテムページのバッジセクションやバーチャル空間のメインページのバッジセクションに表示されます。
バッジ ID の検索
バッジ ID はバッジを識別するための固有の識別子です。 バッジをスクリプトするときに、この ID が必要です。
バッジ ID の検索方法:
バーチャル空間の関連アイテムページ内にあるバッジセクションに移動してください。
バッジのサムネイルにカーソルを合わせ、
⋯ ボタンをクリックします。 コンテキストメニューが表示されます。 アセット ID をコピーを選択します。 バッジ ID はクリップボードにコピーされます。
バッジのスクリプト
スクリプトを使用してバーチャル空間内でバッジを付与したり探したりします。 バッジスクリプトの一般的な使用例としては、バッジの付与、プレイヤーがあなたのバーチャル空間で以前にバッジを取得したことがあるかの確認、バッジ情報の取得などがあります。
バッジの付与
サーバーサイドの**BadgeService:AwardBadge()機能を呼び出すことで、仮想空間全体でプレイヤーにバッジを付与することができます。 バッジのプロパティをBadgeService:GetBadgeInfoAsync()返し、バッジをプレイヤーに付与することができるかどうかを確認するためにIsEnabled、を含みますScript**。 バッジを付与する前に、この機能を呼び出して確認するようにしてください。
以下のスクリプトは、プレイヤーにバッジを付与するための安全な機能の例です。
local BadgeService = game:GetService("BadgeService")
local function awardBadge(player, badgeId)
-- Fetch Badge information
local success, badgeInfo = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, badgeId)
if success then
-- Confirm that badge can be awarded
if badgeInfo.IsEnabled then
-- Award badge
local awarded, errorMessage = pcall(BadgeService.AwardBadge, BadgeService, player.UserId, badgeId)
if not awarded then
warn("Error while awarding Badge:", errorMessage)
end
end
else
warn("Error while fetching Badge info!")
end
end
獲得したバッジの確認
以下のスクリプトはプレイヤーがバーチャル空間に入ったことを確認し、そのプレイヤーが変数**badgeID**に設定された ID セットと一致するバッジを保有しているかどうかを確認します。
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 00000000 -- Change this to your Badge ID
local function onPlayerAdded(player)
-- Check if the player has the Badge
local success, hasBadge = pcall(BadgeService.UserHasBadgeAsync, BadgeService, player.UserId, badgeID)
-- If there's an error, issue a warning and exit the function
if not success then
warn("Error while checking if player has Badge!")
return
end
if hasBadge then
-- Handle player's Badge ownership as needed
end
end
-- Connect "PlayerAdded" events to the "onPlayerAdded()" function
Players.PlayerAdded:Connect(onPlayerAdded)
バッジ情報の取得
バッジの概要やアイコンアセット ID など、バッジに関する情報を取得するには、**BadgeService:GetBadgeInfoAsync()**機能をbadge IDと使用してください。 例:
local BadgeService = game:GetService("BadgeService")local BADGE_ID = 00000000 -- Change this to your Badge ID-- Fetch Badge informationlocal success, result = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, BADGE_ID)print(success, result)-- Output the informationif success thenprint("Badge:", result.Name)print("Enabled:", result.IsEnabled)print("Description:", result.Description)print("Icon:", "rbxassetid://" .. result.IconImageId)elsewarn("Error while fetching Badge info:", result)end