KeyframeSequenceProvider

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Layanan
Tidak Direplikasi

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.

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)

Rangkuman

Metode

Properti

Metode

RegisterActiveKeyframeSequence

ContentId

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

keyframeSequence: Instance

The KeyframeSequence untuk digunakan.

Nilai Default: ""

Memberikan nilai

ContentId

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.

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

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

keyframeSequence: Instance

The KeyframeSequence untuk digunakan.

Nilai Default: ""

Memberikan nilai

ContentId

ID aset sementara yang dihasilkan untuk pemutaran animasi lokal.

Contoh Kode

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

Hasil

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

userId: number

ID pengguna dari pengguna.

Nilai Default: ""

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.

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

Hasil

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

assetId: ContentId

ID konten dari animasi.

Nilai Default: ""

Memberikan nilai

Contoh Kode

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

Acara