AssetService
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
アセットサービス は、Roblox ウェブ API に関するアセットに関連するクエリを処理する非リプリケーションサービスです。
概要
方法
新しい EditableImage を作成します。
新しい、空の EditableMesh を作成します。
指定されたオブジェクトから Roblox に新しいアセットをアップロードします。
- CreateAssetVersionAsync(object : Object,assetType : Enum.AssetType,assetId : number,requestParameters : Dictionary):Tuple
指定されたオブジェクトから既存のアセットの新しいバージョンをアップロードします。
指定された画像で満たされた新しい EditableImage オブジェクトを作成します。
既存のメッシュコンテンツ IDから作成された新しい EditableMesh オブジェクトを返します。
指定されたメッシュ ID とオプションの信頼度値のテーブルを持つ新しい MeshPart を作成します。
指定された templatePlaceID を介して場所をクローンします。
- CreatePlaceInPlayerInventoryAsync(player : Instance,placeName : string,templatePlaceID : number,description : string):number
指定された templatePlaceID を介して場所をクローンし、指定されたプレイヤーのインベントリに入れます。
指定されたパッケージに含まれるアセット IDのアレイを返します。
特定のオーディオソースに関する関連メタデータを提供します。
指定されたバンドルの内容の詳細を返します。
現在のエクスペリエンス内の名前と StandardPages 場所を含む PlaceId オブジェクトを返します。
ユーザーに発行ダイアログを表示して、エクスペリエンス内のアセット作成を許可します。
現在の場プレースの状態を保存します。
さまざまな検索クリテリアに一致するオーディオアセットを見つけます。
プロパティ
方法
CreateEditableImage
新しい EditableImage を作成します。デフォルトでは、解像度は 512×512 に設定されますが、メソッドのオプションテーブルを使用して異なるサイズを指定できます。
装置固有の編集可能なメモリ予算が消耗した場合、作成に失敗し、このメソッドは nil を返します。
パラメータ
メソッドのコントロールを含むオプションテーブル:
- Size – 画像の希望幅と高さを指定する Vector2
戻り値
CreateEditableMesh
新しい、空の EditableMesh を作成します。ヴァーティス、トライアングル、そしてその属性は、動的に追加できます。装置固有の編集可能なメモリ予算が消耗した場合、作成に失敗し、このメソッドは nil を返します。
パラメータ
作成された EditableMesh のオプションを含むテーブル。現在、 が常に空の編集可能なメッシュであるため、オプションは利用できません。
戻り値
CreateAssetAsync
指定されたオブジェクトから Roblox に新しいアセットをアップロードします。
現在、このメソッドはローカルでロードされたプラグインとアセットを最初にアップロードすることなく使用できるだけです。
パラメータ
アセットとして作成するオブジェクト。
現在サポートされているタイプは:
アセットメタデータを含むオプションテーブル:
- Name – ストリングとしてのアセットの名前。デフォルトは [object.Name] です。
- Description – アセットの説明をストリングとして。デフォルトは "Created with AssetService:CreateAssetAsync" 。
- CreatorId – アセットクリエーターのIDを数字として。プラグインコンテキストのためにログイン済みの Roblox Studio ユーザーにデフォルトします。オープンクラウド Luau 実行コンテキストに必要。
- CreatorType – Enum.AssetCreatorType アセットクリエーターの種類を示す。プラグインコンテキストでデフォルトに Enum.AssetCreatorType.User になります。オープンクラウド Luau 実行コンテキストに必要。
戻り値
成功した場合の Enum.CreateAssetResult とアセットIDペア。
コードサンプル
The following code creates a Mesh asset from an EditableMesh.
local AssetService = game:GetService("AssetService")
local editableMesh = AssetService:CreateEditableMesh()
-- add vertices, faces, and uvs to the mesh
local requestParameters = {
CreatorId = 123,
CreatorType = Enum.AssetCreatorType.User,
Name = "My asset",
Description = "a good asset",
}
local ok, result, idOrUploadErr = pcall(function()
return AssetService:CreateAssetAsync(editableMesh, Enum.AssetType.Mesh, requestParameters)
end)
if not ok then
warn(`error calling CreateAssetAsync: {result}`)
elseif result == Enum.CreateAssetResult.Success then
print(`success, new asset id: {idOrUploadErr}`)
else
warn(`upload error in CreateAssetAsync: {result}, {idOrUploadErr}`)
end
CreateAssetVersionAsync
指定されたオブジェクトから既存のアセットの新しいバージョンをアップロードします。
現在、このメソッドはローカルでロードされたプラグインとアセットを最初にアップロードすることなく使用できるだけです。
パラメータ
アセットとして作成するオブジェクト。
現在サポートされているタイプは:
新しいバージョンのアセットのID。
アセットメタデータを含むオプションテーブル:
- Name – A string 。アセットの名前。デフォルト: object.Name。
- Description – A string 。アセットの説明。デフォルト: "AssetService:CreateAssetAsync で作成"。
- CreatorId – A number .アセットクリエーターの ID。デフォルト: プラグインコンテキストのログイン済み Roblox Studio ユーザー。オープンクラウド Luau 実行コンテキストに必要。
- CreatorType – A Enum.AssetCreatorType 。アセットクリエーターの種類。デフォルト: Enum.AssetCreatorType.User プラグインコンテキストで。オープンクラウド Luau 実行コンテキストで必須。
- – A 。のみ適用されます。デフォル入力: true。
戻り値
成功した場合は、Enum.CreateAssetResult とアセットバージョン番号ペア。
コードサンプル
The following code creates a new Model asset version.
local AssetService = game:GetService("AssetService")
local assetIdToUpdate = 321
local model = Instance.new("Model")
local requestParameters = {
CreatorId = 123,
CreatorType = Enum.AssetCreatorType.User,
}
local ok, result, versionOrUploadErr = pcall(function()
return AssetService:CreateAssetVersionAsync(model, Enum.AssetType.Model, assetIdToUpdate, requestParameters)
end)
if not ok then
warn(`error calling CreateAssetVersionAsync: {result}`)
elseif result == Enum.CreateAssetResult.Success then
print(`success, new asset version: {versionOrUploadErr}`)
else
warn(`upload error in CreateAssetVersionAsync: {result}, {versionOrUploadErr}`)
end
CreateEditableImageAsync
指定されたテクスチャで満たされた新しい EditableImage オブジェクトを作成します。rbxthumb:// などのアセットでないテクスチャIDはサポートされます。画像アセットを使用する場合、エクスペリエンスのクリエーターと関連付けられ、または所有されている必要があります、またはエクスペリエンス内で作成された必要があります。装置固有の編集可能なメモリ予算が消耗した場合、作成に失敗し、このメソッドは nil を返します。
この API を使用するときの特別な注意事項については、EditableImage ドキュメントを参照してください。
パラメータ
外部に保存されたアセットコンテンツまたは場プレース内のオブジェクトへの参照、サポートされる Enum.ContentSourceType 値の単一の値を包み込みます。
作成された EditableImage のオプションが含まれるテーブル。現在、Size でサイズ変更がサポートされていないため、オプションは利用できません。
戻り値
提供された画像を含む新しい EditableImage 。
CreateEditableMeshAsync
既存の EditableMesh またはメッシュ EditableMesh IDから作成された新しい Content オブジェクトを返す。デフォルトでは、このメソッドから作成された EditableMesh は、メッシュデータのみが修正、追加、削除できるように固定されます。固定サイズの EditableMesh は、メモリを少し消費し、可能であれば、推奨されます。
装置固有の編集可能なメモリ予算が消耗した場合、作成は失敗し、このメソッドは nil を返します。
この API を使用するときの特別な注意事項については、 公開エクスペリエンスで編集可能なメッシュを有効にする および 権限 セクションの EditableMesh を参照してください。
パラメータ
外部に保存されたアセットコンテンツまたは場プレース内のオブジェクトへの参照、サポートされる Enum.ContentSourceType 値の単一の値を包み込みます。
メソッドのコントロールを含むオプションテーブル:
- FixedSize – A bool .デフォルト値は true で、返された EditableMesh は、ベリーを追加または削除することはできませんが、値を変更するだけです。メッシュトポロジーを変更する能力が必要な場合は、false に設定し、メモリをより多く使用することで対応します。
戻り値
新しい EditableMesh インスタンス。
CreateMeshPartAsync
このメソッドは、指定された MeshPart 、CollisionFidelity 、および RenderFidelity で FluidFidelity を作成します。Because MeshPart.MeshId は読み込み専用であるため、このメソッドは、既存の MeshPart をクローンする必要なく、スクリプトを介して任意のメッシュIDでメッシュを作成する方法です。作成に失敗するとエラーが発生します。
パラメータ
外部に保存されたアセットコンテンツまたは場プレース内のオブジェクトへの参照、サポートされる Enum.ContentSourceType 値の単一の値を包み込みます。
メソッドの 1つまたは複数のコントロールを含むオプションテーブル:
- CollisionFidelity – 結果のパーツでの CollisionFidelity の値。オプションが存在しないか、options テーブルが nil である場合は、デフォルトは Enum.CollisionFidelity.Default になります。
- RenderFidelity – 結果のパーツでの RenderFidelity の値。オプションが存在しないか、options テーブルが nil である場合は、デフォルトは Enum.RenderFidelity.Automatic になります。
- FluidFidelity – 結果のパーツでの FluidFidelity の値。オプションが存在しないか、options テーブルが nil である場合は、デフォルトは Enum.FluidFidelity.Automatic になります。
戻り値
CreatePlaceAsync
指定された templatePlaceID を介して場所をクローンし、PlaceId で使用できる新しい場プレースの TeleportService を返します。クローン場所は、指定された名前と説明で場プレースのクリエーターのインベントリ内に詳細示されます。
テンプレートの場所は、場所設定を通じてテンプレートコピーが有効になっている必要があります。所有していない場所をクローンするためにこの方法を使用することはできません。
この API の頻繁な使用はお勧めしません、特に、作成された場所にスクリプトが含まれている場合、大量の場所でコードを更新することが困難になります。ユーザー生成ワールドの場合、代わりにユーザー作成を連続化して DataStores に保存します。
パラメータ
新しい場プレースの名前。
新しい場プレースの説明。
戻り値
CreatePlaceInPlayerInventoryAsync
パラメータ
戻り値
GetAssetIdsForPackage
指定されたパッケージに含まれるアセット IDのアレイを返します。
パラメータ
戻り値
指定されたパッケージに含まれるアセット ID。
GetAudioMetadataAsync
特定のオーディオソース (アーティスト、タイトル、期間、入力類など) に関する関連するメタデータを提供します。
パラメータ
メタデータを取得するアセットまたはコンテンツのIDのアレイ。最大バッチサイズは 30 です。
戻り値
リクエストと同じ順序で配列の辞書テーブル、それぞれの辞書にはアセット/コンテンツの次のメタデータが含まれています:
AssetId (文字列)
Title (文字列)
Artist (文字列)
Duration (number) 秒
AudioType ( Enum.AudioSubType )
たとえば、アセットID が存在しないなど、リクエストされたアセットのメタデータ取得中にエラーが発生した場合、ディクショナリテーブルは返された配列に含まれますが、参照用の AssetId フィールドのみが含まれています。さらに、特定のアセット (たぶんプライベートオーディオ) について AudioType が決定できない場合 (たぶんプライベートオーディオであるため)、結果の辞書に AudioType のエントリが含まれないことがあります。
コードサンプル
local AssetService = game:GetService("AssetService")
local SoundService = game:GetService("SoundService")
local trackIDs = {
SoundService.Sound1.SoundId,
SoundService.Sound2.SoundId,
SoundService.Sound3.SoundId,
SoundService.Sound4.SoundId,
}
local success, result = pcall(function()
return AssetService:GetAudioMetadataAsync(trackIDs)
end)
if success then
for i = 1, #trackIDs do
local contentId = "rbxassetid://" .. result[i].AssetId
if trackIDs[i] == contentId then
print(result[i].Title, "by", result[i].Artist)
else
warn("No metadata fetched for requested asset #" .. tostring(i))
end
end
end
GetBundleDetailsAsync
この機能は、指定されたバンドルの内容の詳細を返します。
バンドル ID が存在しない場合、 HTTP 400 (Bad Request) を投げます。如果 bundleId が整数に変換できない場合、 Unable to cast string to int64 を投げます。
パラメータ
指定されたバンドルの ID。
戻り値
次のキー-値ペアを含む辞書は、指定されたバンドルに関する詳細を含みます:
Id — バンドル ID (パスされた bundleId 引数と同じ)
Name — バンドル名
Description — バンドルの説詳細
BundleType — 例えば、Enum.BundleType または "BodyParts" のように、"DynamicHead" を表す文字
Items — バンドル内のアイテムのアレイ、それぞれに次のキーを通じて表現される詳細があります:
Id — アイテムID
Name — アイテム名
Type — アイテムタイプのような "Asset" 。
コードサンプル
local AssetService = game:GetService("AssetService")
local BUNDLE_ID = 14
local success, result = pcall(function()
return AssetService:GetBundleDetailsAsync(BUNDLE_ID)
end)
if success then
print(result)
--[[
{
["BundleType"] = "BodyParts",
["Description"] = "The year is 5003, Battlebot 5000 must face his mightiest foe, or face becoming obsolete.",
["Id"] = 14,
["Items"] = {
[1] = {...},
[2] = {
["Id"] = 1678225030,
["Name"] = "SinisterBot 5001 Left Arm",
["Type"] = "Asset"
},
[3] = {...},
[4] = {...},
[5] = {...},
[6] = {...},
[7] = {...}
},
["Name"] = "SinisterBot 5001"
}
--]]
end
GetGamePlacesAsync
現在のエクスペリエンス内の名前と StandardPages 場所を含む PlaceId オブジェクトを返します。
戻り値
コードサンプル
The following code prints the name and PlaceId of each place in the experience.
local AssetService = game:GetService("AssetService")
local placePages = AssetService:GetGamePlacesAsync()
while true do
for _, place in placePages:GetCurrentPage() do
print("Name:", place.Name)
print("PlaceId:", place.PlaceId)
end
if placePages.IsFinished then
break
end
placePages:AdvanceToNextPageAsync()
end
PromptCreateAssetAsync
ユーザーに発行ダイアログを表示して、エクスペリエンス内のアセット作成を許可します。呼び出されると、ユーザーに対話を表示し、名前、説詳細、およびアセットのプレビューを入力できます。送信すると、アセットをユーザーのインベントリに保持ち物リストします。サーバー側でのみ呼び出すことができます。
パラメータ
アセット作作品を提出するユーザー。
作成するアセット。現在、スクリプトや非公開アセットのネストは含めることができません。
アセットタイプ。現在は Enum.AssetType.Model のみです。
戻り値
成功した場合の Enum.PromptCreateAssetResult とアセットIDペア。
PromptImportAnimationClipFromVideoAsync
パラメータ
戻り値
SavePlaceAsync
現在の場プレースの状態を保存します。AssetService:CreatePlaceAsync() で作成された場所または場所設定を介してAPIが有効になっている場所でのみ機能します。
戻り値
SearchAudio
返す AudioPages オブジェクトには、指定された検サーチの結果が含まれています。空白の値のあるフィールドは返さないでしょう。
このメソッドには低い HTTP リクエスト制限があり、エラーを発生させる可能性があるため、常にエラー処理のために pcall() で包まれる必要があります。可能なエラーメッセージには次のものがあります:
<th>理由</th></tr></thead><tbody><tr><td>HTTP 429 (リクエストが多すぎる)</td><td><code>Class.AssetService:SearchAudio()</code> が多くの回呼ばれています。</td></tr><tr><td>データの予期せぬタイプ、期待される配列が null になった</td><td>キーワード引数がフィルタリングされました。</td></tr></tbody>
エラーメッセージ |
---|
パラメータ
戻り値
コードサンプル
This code gets the music assets returned by the keyword "happy" and prints out their titles.
local AssetService = game:GetService("AssetService")
local audioSearchParams = Instance.new("AudioSearchParams")
audioSearchParams.SearchKeyword = "happy"
local success, result = pcall(function()
return AssetService:SearchAudio(audioSearchParams)
end)
if success then
local currentPage = result:GetCurrentPage()
for _, audio in currentPage do
print(audio.Title)
end
else
warn("AssetService error: " .. result)
end
--[[ Returned data format
{
"AudioType": string,
"Artist": string,
"Title": string,
"Tags": {
"string"
},
"Id": number,
"IsEndorsed": boolean,
"Description": string,
"Duration": number,
"CreateTime": string,
"UpdateTime": string,
"Creator": {
"Id": number,
"Name": string,
"Type": number,
"IsVerifiedCreator": boolean
}
}
--]]