💿

【Roblox】一時的なアセットIDの作成

2024/10/25に公開

はじめに

Robloxでは画像や音声をゲーム内で使用するためには、一度ファイルをアップロードしてImageIDやSoundIDといった形にしてからゲームに組み込む必要があります。ですがゲーム内での見栄えなどを確認するときに毎回この作業を行うと無駄に時間がかかってしまいます。また一度Roblox上にアップロードされたアセットは現状消すことができないので、開発者アイテム内に必要のないアセットまで溜まっていってしまうという問題もあります。
そこで今回はセッション内でのみ使用することができる一時的なアセットIDをローカルファイルから作成する方法を紹介します。

Robloxバージョン:0.640.1.6400735

一時アセットIDの作成

StudioServiceにはPromptImportFiles()というローカルファイルをロードすることのできるメソッドが用意されています。これを使用してPCにあるローカルファイルをRoblox上に持ってくることができます。PromptImportFiles()と似たものでPromptImportFile()がありますが、ロードするファイルが単一か複数かの違いしかありません。今回は複数同時にロードできるようにPromptImportFiles()を使用します。
PromptImportFiles()はロードしたファイルを配列で返します。ロードしたファイルはFile型として扱われ、GetTemporaryId()を使用することで一時的なアセットIDを取得することができます。
IDはrbxtemp://の形で返されます。

注意事項

ここで取得したIDは同一セッション内でのみ動作し、ほかの共同開発者には共有されません。
一度プレースを閉じたら取得した一時的なアセットIDは削除されます。

サンプルコード

local StudioService = game:GetService("StudioService")

-- ローカルからファイルをロード
local files = StudioService:PromptImportFiles()
for i,v in ipairs(files) do
    -- ファイルからアセットIDを作成
    local id = v:GetTemporaryId()
    print(v.name.." : "..id)
end

上記が一時的なアセットIDを作成する方法になります。サンプルではアセットIDをログとして出力していますが、ウィジェットGUI上に表示するようにしたり直接ImageやSoundインスタンスに設定するなどプロジェクトごとで使いやすいようにしてみてください。

まとめ

今回は一時的なアセットIDを作成する方法を紹介しました。
Robloxなどの3D空間ではモデリングツールで作ったときの見え方と実際に組み込んだ時の見え方とで違いが出てくることが多く実際に組み込んで調整の繰り返しになったり、サウンドの聞こえ方が思っていたものと違い他のサウンドと差し替えながら試行錯誤したりすることが多いと思います。その作業をよりスムーズに進めるためにもぜひ今回紹介した一時的なアセットIDを使って開発しやすい環境を整えてみてください!
お読みいただきありがとうございました。

ランド・ホー Roblox開発チーム

Discussion