AssetService

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible
Service

AssetService est un service non répliqué qui gère les requêtes liées aux ressources vers l'API Web Roblox.

Résumé

Méthodes

Propriétés

Méthodes

CreateEditableImage

Crée un nouveau EditableImage . Par défaut, la résolution est définie à 512×512, mais vous pouvez spécifier une taille différente en utilisant la table d'options de la méthode.

Si le budget de mémoire modifiable spécifique au dispositif est épuisé, la création échoue et cette méthode renvoie nil .

Paramètres

editableImageOptions: Dictionary

Table d'options contenant des contrôles pour la méthode :

  • Size – Un Vector2 qui spécifie la largeur et la hauteur souhaitées de l'image.
Valeur par défaut : ""

Retours

CreateEditableMesh

Crée un nouveau, vide EditableMesh.Les vertex, triangles et leurs attributs peuvent être ajoutés dynamiquement à elle.Si le budget de mémoire modifiable spécifique au dispositif est épuisé, la création échouera et cette méthode renverra nil .

Paramètres

editableMeshOptions: Dictionary

Table contenant des options pour le créé EditableMesh .Actuellement, aucune option n'est disponible puisque FixedSize sera toujours false pour les mailles éditables vides.

Valeur par défaut : ""

Retours

CreateSurfaceAppearance

Paramètres

content: Dictionary
Valeur par défaut : ""

Retours

CreateAssetAsync

Rendement

Télécharge une nouvelle ressource sur Roblox à partir de l'objet donné.

Actuellement, cette méthode ne peut être utilisée que dans les plugins locaux chargés et télécharger des ressources sans demander d'abord.

Paramètres

object: Object

L'objet à créer en tant que contenu.

Valeur par défaut : ""
assetType: Enum.AssetType

Les types actuellement pris en charge sont :

Valeur par défaut : ""
requestParameters: Dictionary

Table d'options contenant des métadonnées de ressources :

  • Name – Nom de la ressource en tant que chaîne. Défaut à [object.Name] .
  • Description – Description de la ressource en tant que chaîne. Défaut à "Created with AssetService:CreateAssetAsync" .
  • CreatorId – ID du créateur de ressources comme un nombre.Par défaut pour l'utilisateur de Roblox Studio connecté pour le contexte des plugins.Nécessaire pour le contexte d'exécution Open Cloud Luau.
  • CreatorTypeEnum.AssetCreatorType indiquant le type de créateur de ressources.Par défaut à Enum.AssetCreatorType.User dans le contexte du plugin.Nécessaire pour le contexte d'exécution Open Cloud Luau.
  • IsPackage – Valeur booléenne, applicable uniquement au taperEnum.AssetType.Model . Par défaut à true .
Valeur par défaut : "nil"

Retours

Le paire d'ID de ressource et de Enum.CreateAssetResult si réussi.

Échantillons de code

The following code creates a Mesh asset from an EditableMesh.

AssetService:CreateAssetAsync

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

Rendement

Télécharge une nouvelle version pour une ressource existante à partir de l'objet donné.

Actuellement, cette méthode ne peut être utilisée que dans les plugins locaux chargés et télécharger des ressources sans demander d'abord.

Paramètres

object: Object

L'objet à créer en tant que contenu.

Valeur par défaut : ""
assetType: Enum.AssetType

Les types actuellement pris en charge sont :

Valeur par défaut : ""
assetId: number

L'ID de la ressource pour la nouvelle version.

Valeur par défaut : ""
requestParameters: Dictionary

Table d'options contenant des métadonnées de ressources :

  • Name – Un string . Nom de la contenu. Par défaut : objet.Name.
  • Description – A string . Description de la contenu. Par défaut : "Créé avec AssetService:CreateAssetAsync".
  • CreatorId – A number .ID du créateur de la ressource.Par défaut : l'utilisateur de Roblox Studio connecté pour le contexte des plugins.Nécessaire pour le contexte d'exécution Open Cloud Luau.
  • CreatorType – A Enum.AssetCreatorType . Type de créateur de ressources. Par défaut : Enum.AssetCreatorType.User dans le contexte Plugin. Nécessaire pour le contexte d'exécution Open Cloud Luau.
  • IsPackage – A bool . Seulement applicable au taperEnum.AssetType.Model. Par défaut : vrai.
Valeur par défaut : "nil"

Retours

Le paire de numéro de version des ressources et de la version du succès Enum.CreateAssetResult.

Échantillons de code

The following code creates a new Model asset version.

AssetService:CreateAssetVersionAsync

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

Rendement

Crée un nouvel objet EditableImage vierge de texture donnée.Les ID de texture non affectées comme rbxthumb:// sont pris en charge.Si vous utilisez une contenud'image, elle doit être associée et/ou appartenir à un créateur de l'expérience, ou elle doit avoir été créée à l'intérieur de l'expérience.Si le budget de mémoire modifiable spécifique au dispositif est épuisé, la création échouera et cette méthode renverra nil .

Voir la documentation EditableImage pour des considérations spéciales lors de l'utilisation de cette API.

Paramètres

content: Content

Référence au contenu des ressources stockées externement ou en tant qu'objet dans l'emplacement, enveloppant une seule valeur d'une des valeurs Enum.ContentSourceType soutenues.

Valeur par défaut : ""
editableImageOptions: Dictionary

Table contenant des options pour le créé EditableImage . Actuellement, aucune option n'est disponible puisque la redimensionnalisation via Size n'est pas prise en charge.

Valeur par défaut : ""

Retours

Un nouveau EditableImage contenant l'image fournie.

CreateEditableMeshAsync

Rendement

Renvoie un nouvel objet EditableMesh créé à partir d'un ID existant EditableMesh ou d'un maillage Content existant.Par défaut, un EditableMesh créé à partir de cette méthode sera de taille fixe afin que les données de maillage ne puissent être modifiées, ajoutées ni supprimées.Une taille fixe EditableMesh consomme moins de mémoire et devrait être préférée lorsque cela est possible.

Si le budget de mémoire modifiable spécifique au dispositif est épuisé, la création échouera et cette méthode renverra nil .

Voir les sections Activation de EditableMesh pour les expériences publiées et Permissions de pour des considérations spéciales lors de l'utilisation de cette API.

Paramètres

content: Content

Référence au contenu des ressources stockées externement ou en tant qu'objet dans l'emplacement, enveloppant une seule valeur d'une des valeurs Enum.ContentSourceType soutenues.

Valeur par défaut : ""
editableMeshOptions: Dictionary

Table d'options contenant des contrôles pour la méthode :

  • FixedSize – A bool .La valeur par défaut est true , et le retourné EditableMesh ne vous permettra pas d'ajouter ou de supprimer des sommets, seulement de modifier leurs valeurs.Définir à false si la capacité de changer la topologie du maillage est requise, au détriment de l'utilisation de plus de mémoire.
Valeur par défaut : ""

Retours

La nouvelle instance EditableMesh.

CreateMeshPartAsync

Rendement

Cette méthode crée un MeshPart avec un CollisionFidelity spécifié, RenderFidelity et FluidFidelity .Comme MeshPart.MeshId est lu seul, cette méthode est pour créer un maillage avec n'importe quel ID de maillage via des scripts, sans avoir à cloner un maillage existant MeshPart.Il lance des erreurs si la création échoue.

Paramètres

meshContent: Content

Référence au contenu des ressources stockées externement ou en tant qu'objet dans l'emplacement, enveloppant une seule valeur d'une des valeurs Enum.ContentSourceType soutenues.

Valeur par défaut : ""
options: Dictionary

Table d'options contenant une ou plusieurs contrôles pour la méthode :

Valeur par défaut : "nil"

Retours

CreatePlaceAsync

Rendement

Clone un lieu via le templatePlaceID donné et renvoie le PlaceId du nouvel endroit, que vous pouvez utiliser avec TeleportService.L'emplacement de clone s'affiche dans l'inventaire du créateur du lieu avec le nom et la description donnés.

Notez que l'emplacement du modèle doit avoir activé la copie de modèle via les paramètres d'emplacement. Vous ne pouvez pas utiliser cette méthode pour cloner des lieux que vous ne posséderpas.

L'utilisation fréquente de cette API n'est pas recommandée, notamment si les endroits créés contiennent des scripts, car mettre à jour le code dans un grand volume d'endroits devient rapidement impossible.Pour les mondes générés par l'utilisateur, envisagez de sérialiser les créations de l'utilisateur et de les enregistrer dans DataStores à la place.

Paramètres

placeName: string

Nom du nouvel emplacement.

Valeur par défaut : ""
templatePlaceID: number

PlaceId de l'endroit à cloner.

Valeur par défaut : ""
description: string

Description du nouvel emplacement.

Valeur par défaut : ""

Retours

PlaceId de la nouvelle emplacement.

CreatePlaceInPlayerInventoryAsync

Rendement

Paramètres

player: Instance
Valeur par défaut : ""
placeName: string
Valeur par défaut : ""
templatePlaceID: number
Valeur par défaut : ""
description: string
Valeur par défaut : ""

Retours

GetAssetIdsForPackage

Rendement

Renvoie une série d'ID de ressources contenues dans un paquet spécifié.

Paramètres

packageAssetId: number
Valeur par défaut : ""

Retours

ID de ressources contenues dans un paquet spécifié.

GetAudioMetadataAsync

Rendement

Fournit des métadonnées pertinentes sur une source audio spécifique (artiste, titre, durée, taper, etc.).

Paramètres

idList: Array

Liste d'ID de ressources ou de contenu pour lesquelles récupérer des métadonnées. La taille maximale du lot est de 30.

Valeur par défaut : ""

Retours

Tableau d'association de dictionnaires dans le même ordre que la demande, où chaque dictionnaire contient les métadonnées suivantes pour son actif/contenu :

  • AssetId (chaîne)

  • Title (chaîne)

  • Artist (chaîne)

  • Duration (number) en secondes

  • AudioType ( Enum.AudioSubType )

Notez que si une erreur se produit lors de la récupération des métadonnées pour l'une des ressources demandées, par exemple l'ID de la ressource n'existe pas, sa table de dictionnaire est toujours incluse dans l'arrêt de l'array retourné, mais elle ne contient que le champ AssetId pour des fins de référence.De plus, si le AudioType ne peut pas être déterminé pour une ressource donnée (peut-être parce que c'est un audio privé), l'entrée du dictionnaire résultant ne contiendra pas d'élément AudioType.

Échantillons de code


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

Rendement

Cette fonction renvoie des détails du contenu du lotspécifié.

Si l'ID du paquet n'existe pas, il lance HTTP 400 (Bad Request) . Si bundleId n'est pas convertible en entier, il lance Unable to cast string to int64 .

Paramètres

bundleId: number

L'ID du lotspécifié.

Valeur par défaut : ""

Retours

Dictionnaire avec les paires clé-valeur suivantes contenant des détails sur le lotspécifié :

  • Id — ID du paquet (même que l'argument passer bundleId )

  • Name — Nom du paquet

  • Description — descriptiondu paquet

  • BundleType — Chaîne représentant le Enum.BundleType , par exemple "BodyParts" ou "DynamicHead"

  • Items — Array d'éléments dans le lot, chacun avec des détails représentés par les clés suivantes :

    • Id — ID de l'article

    • Name — Noms de l'article

    • Type — Type d'objet tel que "Asset".

Échantillons de code

Getting Bundle Details

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

Rendement

Renvoie un objet StandardPages qui contient le nom et PlaceId les lieux à l'intérieur de l'expérience actuelle.


Retours

Échantillons de code

The following code prints the name and PlaceId of each place in the experience.

AssetService:GetGamePlacesAsync

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

Rendement

Permet la création d'actifs en expérience pour les utilisateurs en leur demandant de lancer un dialogue de publication.Lorsqu'il est appelé, il présente un dialogue à l'utilisateur, lui permettant d'entrer un nom, une description et de prévisualiser la contenu.Lors de la soumission, il enregistre la ressource dans l'inventaire de l'utilisateur.Ne peut être invoqué que du côté du serveur.

Paramètres

player: Player

L'utilisateur qui soumet la créationsd'une ressource.

Valeur par défaut : ""
instance: Instance

La ressource à créer. Ne peut pas, actuellement, contenir de scripts ou de nester des ressources non publiques.

Valeur par défaut : ""
assetType: Enum.AssetType

Le taperressource. Actuellement, il ne peut être que Enum.AssetType.Model .

Valeur par défaut : ""

Retours

Le paire d'ID de ressource et de Enum.PromptCreateAssetResult si réussi.

PromptImportAnimationClipFromVideoAsync

Rendement

Paramètres

player: Player
Valeur par défaut : ""
progressCallback: function
Valeur par défaut : ""

Retours

SavePlaceAsync

()
Rendement

Enregistre l'état de l'emplacementactuel. Fonctionne uniquement pour les endroits créés avec AssetService:CreatePlaceAsync() ou qui ont l'API activée via les paramètres d'endroit.


Retours

()

SearchAudio

Rendement

Renvoie un objet AudioPages contenant le résultat de la chercherdonnée. Ne retournera pas de champs avec des valeurs vides.

Notez que cette méthode a une faible limite de demande HTTP et peut générer une erreur, il doit donc toujours être emballé dans pcall() pour la gestion des erreurs.Les messages d'erreur possibles incluent :


<th>Raison</th>
</tr>
</thead>
<tbody>
<tr>
<td>HTTP 429 (Trop de demandes)</td>
<td><code>Class.AssetService:SearchAudio()</code> a été appelé trop de fois.</td>
</tr>
<tr>
<td>Type inattendu pour les données, tableau attendu null obtenu</td>
<td>L'argument clé a été filtré.</td>
</tr>
</tbody>
Message d'erreur

Paramètres

searchParameters: AudioSearchParams
Valeur par défaut : ""

Retours

Échantillons de code

This code gets the music assets returned by the keyword "happy" and prints out their titles.

Getting Music Search 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
}
}
--]]

Évènements