KeyframeSequenceProvider

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Brak możliwości tworzenia
Usługa
Bez replikacji

Usługa KeyframeSequenceProvider zapewnia funkcje do ładowania i podglądu KeyframeSequences.Zawiera szereg funkcji, które są przydatne podczas pracy z Animations.

A KeyframeSequence przechowuje serię Poses, która koduje hierarchię i ruch animacja.Dane animacji, które Roblox używa do odtwarzania animacja, odwołujące się do właściwości Animation.AnimationId, mogą być zbudowane z KeyframeSequence. zwykle tworzone są przez edytor animacji Roblox , ale można je stworzyć za pomocą innych pluginów lub nawet ręcznie.

Przykłady kodu

This code sample contains a simple function to generate an Animation with a generated hash ID to preview a KeyframeSequence locally.

Create temporary animation

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)

Podsumowanie

Metody

Właściwości

Metody

RegisterActiveKeyframeSequence

ContentId

Generuje tymczasową identyfikator zasobu z KeyframeSequence, który może być użyty do lokalnego testowania animacja.

Funkcja ta wykonuje tę samą funkcję do KeyframeSequenceProvider:RegisterKeyframeSequence() jednak ta funkcja generuje URL aktywny:// zamiast hasha.

Generowane ID można użyć w właściwości Animation.AnimationId do testowania.

ID zasobu generowane przez tę funkcję jest tymczasowe i nie może być używane poza Studio.Programiści, którzy chcą wygenerować identyfikator zasobu, który może być używany online, powinni przesłać KeyframeSequence do Roblox.

Parametry

keyframeSequence: Instance

The KeyframeSequence do użycia.

Wartość domyślna: ""

Zwroty

ContentId

Tymczasowy identyfikator zasobu generowany dla lokalnej odtwarzania animacji.

Przykłady kodu

This code sample contains a simple function to generate an Animation with a generated hash ID to preview a KeyframeSequence locally.

Create temporary animation

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

ContentId

Generuje tymczasową identyfikator zasobu z KeyframeSequence, który może być użyty do lokalnego testowania animacja.

Funkcja ta wykonuje tę samą funkcję do KeyframeSequenceProvider:RegisterActiveKeyframeSequence() jednak ta funkcja generuje hasz zamiast aktywnego URL ://.

Generowane ID można użyć do właściwości Animation.AnimationId w celu przetestowania animacji.

ID zasobu generowane przez tę funkcję jest tymczasowe i nie może być używane poza Studio.Programiści, którzy chcą wygenerować identyfikator zasobu, który może być używany online, powinni przesłać KeyframeSequence do Roblox.

Parametry

keyframeSequence: Instance

The KeyframeSequence do użycia.

Wartość domyślna: ""

Zwroty

ContentId

Tymczasowy identyfikator zasobu generowany dla lokalnej odtwarzania animacji.

Przykłady kodu

KeyframeSequenceProvider:RegisterKeyframeSequence

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

Wynik

Funkcja ta zwraca obiekt InventoryPages, który można używać do przeglądania animacji należących do określonego użytkownika.

Funkcja ta ma wiele potencjalnych zastosowań, takich jak umożliwienie użytkownikom przeglądania i importowania animacji do niestandardowego dodatek plug-inanimacji.

Parametry

userId: number

ID użytkownika użytkownika.

Wartość domyślna: ""

Zwroty

Animacja InventoryPages z animacji.

Przykłady kodu

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.

KeyframeSequenceProvider GetAnimations

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

Wynik

GetKeyframeSequenceAsync zwraca KeyframeSequence w oparciu o określony assetId.Identyfikator zasobu musi odpowiadać animacja.Funkcja będzie wykonywana do czasu, gdy KeyframeSequence zostanie załadowana z witryny.Ponieważ jest to wezwanie webowe, powinno być zapakowane w wezwanie pcall.

Parametry

assetId: ContentId

ID zawartości animacja.

Wartość domyślna: ""

Zwroty

Przykłady kodu

Demonstrates getting an animation's KeyframeSequence using KeyframeSequenceProvider:GetKeyframeSequenceAsync() and printing the time of each keyframe.

Getting an animation's KeyframeSequence

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

Zdarzenia