見出し画像

【RobloxStudio】ロブロックスに登録されているアセットの説明文を読み取る

こんにちは!けつべつです!

去年、ロブロックスに登録されたすべての画像の中からランダムに一枚選んで表示する絵画の作り方を書きました。

ここに書いてある方法のままだと、定番の衣装のテクスチャがよく表示され、同じような画像ばかり見ることになってつまらない感じになっていました。

ですが、ある方法で服のテクスチャの表示が回避できることを発見しました。

それは…画像の説明文を読み取り、表示するかしないかを判断する方法です!



判別方法

よく調べると、服のテクスチャの説明文にはある決まった文章が書かれています。服を投稿する時、自動的にこのような文章が書かれてるようです。

定番のシャツの説明欄(詳細)にShirt Imageと書かれている
定番のパンツの説明欄(詳細)にPants Imageと書かれている

定番のTシャツには「TShirt Image」と書かれていました。

これらの文が書かれているかどうかを調べ、表示させるかどうかを判断するスクリプトを書きましょう!!!!!!



スクリプト

while true do
	local ra = Random.new()
	local id = ra:NextInteger(500000,2000400000)
	local info = game:GetService('MarketplaceService'):GetProductInfo(id, Enum.InfoType.Asset)

	if info.Description == "Shirt Image" or info.Description == "Pants Image" or info.Description == "TShirt Image" then --画像の説明文に「Shirt Image」か「Pants Image」か「TShirt Image」が書かれていたら
		continue end --最初にもどってやり直す

	if info and info.AssetTypeId == 1 then 
		script.Parent.Decal.Texture = "rbxassetid://"..id
		script.Parent.Parent.Namelabel.SurfaceGui.TextLabel.Text = "AssetID:" .. id
		wait(10)
		script.Parent.Decal.Texture = "rbxassetid://8932511161"
		script.Parent.Parent.Namelabel.SurfaceGui.TextLabel.Text = "Loading..."


	end
end

「画像が超ランダムに表示される絵画を作る」で書いたスクリプトを改良したものです。
画像の説明文に「Shirt Image」か「Pants Image」か「TShirt Image」が書かれていたらスクリプトの最初にもどってやり直す、という文を書き足しました。

服のテクスチャだった場合画像は読み込まず、スクリプトの最初に戻ってやり直すことで表示を回避できるはずです!



テスト

服のテクスチャ以外の画像がよく表示されるようにました。成功です!



注意

テクスチャの説明文が書き換えられていたりすると表示されるので、完全に回避することはできません。気をつけて!

また、最近投稿されたテクスチャの説明文は、投稿したユーザーに合わせてさまざまな言語で書かれているようです。
それなので最近の画像を表示したい場合、上に書いたスクリプトのままだと回避が難しそうです。
いろいろな言語の説明文を全部書けば大丈夫そうですが…大変そう!



この記事が誰かの役に立ったら嬉しいです!

〜おしまい〜