バッジを作る

もっけBaseへようこそ!ここではバッジの作りかたを教えるよ。
Youtubeで公開している「マーカーの作りかた」にもバッジの作りかたを紹介しているから見てくれよな。

バッジって何?

プレイヤーに与えられる特別な賞(以下、アワード)で、バッチとして付与することができるよ。
バッジを付与するタイミングとしては、

  • ゲームに参加したことへのアワード
  • 目標を達成したことへのアワード(ゲームクリアなど)

なんかが考えられるね。

バッジの作り方

制作タブのBadgesからバッジを作れるよ。

  • Badge Name:バッチのタイトル
  • Description:説明
  • バッジのサイズ:512 x 512 ピクセル
もっけ
もっけ

バッジをアップロードすると、自動的に丸型にトリミングされるから、文字を入れる場合は位置に気をつけてね。

ブロクンハート
ブロクンハート

バッジは好きなお絵描きソフトで描いてね

Preview ボタンを押して、「Purchase for 0」を押せばバッジをアップロードできるよ

もっけ
もっけ

24時間以内で無料で登録できるバッジは、5つまで。

それ以上は、100ロバックスかかるよ

(※2022年5月5日時点)

バッジIDの見かた

アップロードしたバッジを開くとURL欄にバッジIDが書かれているよ
もっけのバッジIDは、2124940408 だ。

バッジをスクリプトで実装する

バッジをスクリプトで実装していくよ。
ここでは、プレイヤーがログインしてきたらバッジを付与することを例に説明していくよ。
スクリプトの実装には、大きく3つの項目があるんだ。

  • バッジIDを定義する
  • バッジを付与する
  • バッジを持っているか確認する

▼バッジIDを定義する

local badgeID = 2124940408  -- バッジID

▼バッジを付与する

local function awardBadge(player, badgeId)
	-- バッジ情報を取得する
	local success, badgeInfo = pcall(function()
		return BadgeService:GetBadgeInfoAsync(badgeId)
	end)
	if success then
		-- バッジを付与できることを確認する
		if badgeInfo.IsEnabled then
			-- アワードバッジ
			local awarded, errorMessage = pcall(function()
				BadgeService:AwardBadge(player.UserId, badgeId)
			end)
			if not awarded then
				warn("バッジの付与中にエラー発生:", errorMessage)
			end
		end
	else
		warn("Error while fetching badge info!")
	end
end

▼バッジを持っているか確認する

local function onPlayerAdded(player)
	-- プレーヤーがバッジを持っているかどうかを確認します
	local success, hasBadge = pcall(function()
		return BadgeService:UserHasBadgeAsync(player.UserId, badgeID)
	end)

	-- エラーが発生した場合は、警告を発して機能を終了する
	if not success then
		warn("バッジの確認中にエラー発生")
		return
	end

	if hasBadge then
		-- 必要に応じてプレーヤーのバッジの所有権を処理する
		print("既にバッジを持ってたわ")
	else
		awardBadge(player, badgeID)
	end
end

▼プレイヤーがゲームに参加したら関数機能を呼び出す

-- "PlayerAdded" イベントが発生したら "onPlayerAdded()" の関数機能を呼び出す
game.Players.PlayerAdded:Connect(onPlayerAdded)

バッジをテストするとき、バッジを取得するためにはゲームを公開状態にしないと確認できないよ。

ブロクンハート
ブロクンハート

サンキュー、もけさん

コメント

タイトルとURLをコピーしました