KeyframeSequenceProvider
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
O serviço KeyframeSequenceProvider fornece funções para carregar e pré-visualizar KeyframeSequences .Inclui uma série de funções úteis ao trabalhar com Animations .
Um KeyframeSequence armazena uma série de Poses que codifica a hierarquia e o movimento de uma animações.Os dados de animação que o Roblox usa na reprodução de uma animações, referenciados pela propriedade Animation.AnimationId, podem ser construídos a partir de um KeyframeSequence.KeyframeSequences Normalmente são criados pelo Roblox Editor de Animação, mas podem ser criados através de outros plugins ou até mesmo manualmente.
Amostras de código
This code sample contains a simple function to generate an Animation with a generated hash ID to preview a KeyframeSequence locally.
local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local function createPreviewAnimation(keyframeSequence)
local hashId = KeyframeSequenceProvider:RegisterKeyframeSequence(keyframeSequence)
local Animation = Instance.new("Animation")
Animation.AnimationId = hashId
return Animation
end
local keyframeSequence = Instance.new("KeyframeSequence")
local animation = createPreviewAnimation(keyframeSequence)
print(animation)
Resumo
Métodos
Gera um ID de recurso temporário a partir de um KeyframeSequence que pode ser usado para testes locais de uma animações. Gera um URL ativo://.
Gera um ID de recurso temporário a partir de um KeyframeSequence que pode ser usado para testes locais de uma animações. Gera um hash.
Essa função retorna um objeto InventoryPages que pode ser usado para iterar sobre animações de propriedade de um usuário específico.
Retorna uma sequência de quadros-chave com base no ID especificado como assíncrono.
Propriedades
Métodos
RegisterActiveKeyframeSequence
Gera um ID de recurso temporário a partir de um KeyframeSequence que pode ser usado para testes locais de uma animações.
Essa função executa a mesma função para KeyframeSequenceProvider:RegisterKeyframeSequence() no entanto, essa função gera um URL ativo:// em vez de um hash.
O ID gerado pode ser usado em uma propriedade Animation.AnimationId para teste.
O ID de recurso gerado por essa função é temporário e não pode ser usado fora do Studio.Desenvolvedores que desejam gerar um ID de recurso que possa ser usado online devem carregar o KeyframeSequence no Roblox.
Parâmetros
O KeyframeSequence a ser usado.
Devolução
Um ID de recurso temporário gerado para reprodução de animação localizada.
Amostras de código
This code sample contains a simple function to generate an Animation with a generated hash ID to preview a KeyframeSequence locally.
local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local function createPreviewAnimation(keyframeSequence)
local hashId = KeyframeSequenceProvider:RegisterKeyframeSequence(keyframeSequence)
local Animation = Instance.new("Animation")
Animation.AnimationId = hashId
return Animation
end
local keyframeSequence = Instance.new("KeyframeSequence")
local animation = createPreviewAnimation(keyframeSequence)
print(animation)
RegisterKeyframeSequence
Gera um ID de recurso temporário a partir de um KeyframeSequence que pode ser usado para testes locais de uma animações.
Essa função executa a mesma função para KeyframeSequenceProvider:RegisterActiveKeyframeSequence() no entanto essa função gera um hash em vez de um URL ativo://.
O ID gerado pode ser usado para a propriedade Animation.AnimationId para testar animações.
O ID de recurso gerado por essa função é temporário e não pode ser usado fora do Studio.Desenvolvedores que desejam gerar um ID de recurso que possa ser usado online devem carregar o KeyframeSequence no Roblox.
Parâmetros
O KeyframeSequence a ser usado.
Devolução
Um ID de recurso temporário gerado para reprodução de animação localizada.
Amostras de código
local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local asset = KeyframeSequenceProvider:RegisterKeyframeSequence(workspace.KeyframeSequence)
local animation = Instance.new("Animation")
animation.Name = "TestAnimation"
animation.AnimationId = asset
animation.Parent = workspace
GetAnimations
Essa função retorna um objeto InventoryPages que pode ser usado para iterar sobre animações de propriedade de um usuário específico.
Essa função tem uma série de usos potenciais, como permitir que os usuários naveguem e importem animações para um plugin de animação personalizado.
Parâmetros
O ID do usuário do usuário.
Devolução
Uma InventoryPages de animações.
Amostras de código
This code sample includes a demonstration of how the content IDs of animations belonging to a player can be downloaded using KeyframeSequenceProvider:GetAnimations(). To run this code be sure to change the USER_ID variable to the ID of the user whose animations you want to download.
local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local USER_ID = 0 -- Insert your UserId here
local function extractPages(pagesObject)
local array = {}
while true do
local thisPage = pagesObject:GetCurrentPage()
for _, v in pairs(thisPage) do
table.insert(array, v)
end
if pagesObject.IsFinished then
break
end
pagesObject:AdvanceToNextPageAsync()
end
return array
end
local inventoryPages = KeyframeSequenceProvider:GetAnimations(USER_ID)
local animationIds = extractPages(inventoryPages)
for _, id in pairs(animationIds) do
print(id)
end
print("total: ", #animationIds)
GetKeyframeSequenceAsync
GetKeyframeSequenceAsync retorna um KeyframeSequence com base no ID de recurso especificado.O assetId deve corresponder a uma animações.A função renderizará até que o KeyframeSequence seja carregado do site.Como esta é uma chamada web, ela deve ser embalada em uma chamada pcall.
Parâmetros
O ID do conteúdo da animações.
Devolução
Amostras de código
Demonstrates getting an animation's KeyframeSequence using KeyframeSequenceProvider:GetKeyframeSequenceAsync() and printing the time of each keyframe.
local KeyframeSequenceProvider = game:GetService("KeyframeSequenceProvider")
local ANIMATION_ID = "rbxassetid://507771019"
-- Get the keyframe sequence for the asset
local keyframeSequence
local success, err = pcall(function()
keyframeSequence = KeyframeSequenceProvider:GetKeyframeSequenceAsync(ANIMATION_ID)
end)
if success then
-- Iterate over each keyframe and print its time value
local keyframeTable = keyframeSequence:GetKeyframes()
for key, value in keyframeTable do
print(`The time of keyframe number {key} is: {value.Time}`)
end
else
print(`Error getting KeyframeSequence: {err}`)
end