KeyframeSequenceProvider
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Layanan KeyframeSequenceProvider menyediakan fungsi untuk memuat dan pratinjau KeyframeSequences .Ini termasuk beberapa fungsi yang berguna saat bekerja dengan Animations .
A KeyframeSequence menyimpan serangkaian Poses yang mengkode hierarki dan gerakan animasi.Data animasi yang digunakan Roblox dalam pemutaran animasi, dibandingkan dengan properti Animation.AnimationId, dapat dibangun dari KeyframeSequence. KeyframeSequences biasanya dibuat oleh Roblox Editor Animasi tetapi dapat dibuat melalui plugin lain atau bahkan secara manual.
Contoh Kode
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)
Rangkuman
Metode
Membuat ID aset sementara dari KeyframeSequence yang dapat digunakan untuk pengujian lokal animasi. Menghasilkan URL aktif://.
Membuat ID aset sementara dari KeyframeSequence yang dapat digunakan untuk pengujian lokal animasi. Membuat hash.
Fungsi ini mengembalikan objek InventoryPages yang dapat digunakan untuk mengulangi animasi yang dimiliki oleh pengguna tertentu.
Kembalikan KeyframeSequence berdasarkan asetId yang ditentukan secara asinkron.
Properti
Metode
RegisterActiveKeyframeSequence
Membuat ID aset sementara dari KeyframeSequence yang dapat digunakan untuk pengujian lokal animasi.
Fungsi ini melakukan fungsi yang sama ke KeyframeSequenceProvider:RegisterKeyframeSequence() namun fungsi ini menghasilkan URL aktif:// bukan hash.
ID yang dihasilkan dapat digunakan dalam properti Animation.AnimationId untuk pengujian.
ID aset yang dihasilkan oleh fungsi ini adalah sementara dan tidak dapat digunakan di luar Studio.Pengembang yang ingin menghasilkan ID aset yang dapat digunakan secara online harus mengunggah KeyframeSequence ke Roblox.
Parameter
The KeyframeSequence untuk digunakan.
Memberikan nilai
ID aset sementara yang dihasilkan untuk pemutaran animasi lokal.
Contoh Kode
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
Membuat ID aset sementara dari KeyframeSequence yang dapat digunakan untuk pengujian lokal animasi.
Fungsi ini melakukan fungsi yang sama ke namun fungsi ini menghasilkan hash bukan URL aktif:// .
ID yang dihasilkan dapat digunakan untuk properti Animation.AnimationId untuk menguji animasi.
ID aset yang dihasilkan oleh fungsi ini adalah sementara dan tidak dapat digunakan di luar Studio.Pengembang yang ingin menghasilkan ID aset yang dapat digunakan secara online harus mengunggah KeyframeSequence ke Roblox.
Parameter
The KeyframeSequence untuk digunakan.
Memberikan nilai
ID aset sementara yang dihasilkan untuk pemutaran animasi lokal.
Contoh Kode
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
Fungsi ini mengembalikan objek InventoryPages yang dapat digunakan untuk mengulangi animasi yang dimiliki oleh pengguna tertentu.
Fungsi ini memiliki beberapa penggunaan potensial, seperti memungkinkan pengguna menelusuri dan menge导入 animasi ke plugin animasi khusus.
Parameter
ID pengguna dari pengguna.
Memberikan nilai
Sebuah InventoryPages animasi.
Contoh Kode
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 men返回 KeyframeSequence berdasarkan asetId yang ditentukan.AssetId harus sesuai dengan animasi.Fungsi akan menghasilkan sampai KeyframeSequence dari situs web dimuat.Karena ini adalah panggilan web, seharusnya dibungkus dalam panggilan p.
Parameter
ID konten dari animasi.
Memberikan nilai
The KeyframeSequence ditemukan.
Contoh Kode
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