KeyframeSequence

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Bu nesne bir animasyon için tüm Keyframes depolarını saklar, animasyonun tekrarlandığını belirler ve diğer animasyonlarla önceliğini belirler.

KeyframeSequencer nedir?

Roblox, bir animasyonun oynatılmasında kullandığı animasyon verilerini oluşturur, Animation.AnimationId özelliğinden bir KeyframeSequencer'ın içine işaret edilir. Her animasy

Not, çoğu durumda, KeyframeSequencer'ı manipüle etmeniz gerekmez, çünkü animasyon editörü çoğu animasyon işlevini kapsar. Ancak, bazı durumlarda, bir Script 'den animasyon oluşturmak veya kendi eklenti'inizi oluşturmak isteyebilirsiniz. Ancak, bu tür bir KeyframeSequencer'ı

Özellikleri

KeyframeSequence.Priority ve KeyframeSequence.Loop animasyonunun önceliğini ve tekrar animasyonunu kaydet. İncelemenin oynatma sırasında AnimationTrack özelliklerinin üstesinden gelmesi için lütfen etkili animasyon ayarlarınızı yeniden ayarlayın.

animasyonuzunluğunu belirlemek için en son Keyframe , serideki son Keyframe ile eşdeğerdir.

Kilit Çerçevesi Yapısı

KeyframeSequencer, Keyframes ı tutan bir konteyner olarak davranır. Keyframe, oynatma sırasında arasında geçişle temsil edilen bir 'anahtar' görüntüsüdür.

Kлюç çerçevelerinde Poses vardır.

Oluşlar ortak bir yapıya dayanan bir yapıyı takip eder. Her Pose ın ebeveyni, bağlandığı bölümün Pose ına eşdeğerdir. Aslında, bu, pozların dalını kök bölümünden ayrılır. Aşağıda bir görsel örneği görün.

Animasyon yaparken KeyframeSequencer'ı kullanıyor

Roblox'ta bir deneyimde oynanmadan önce KeyframeSequencer'ı ilk olarak Roblox'a yüklemelisiniz. Studio'da, KeyframeSequencer'ı sağ tıklayın ve "Save to Roblox"'i tıklayın. Alternatif olarak, Plugin:SaveSelectedToRoblox() işlevini kullanabilirsiniz. Bu, animasyon yükleme penceresini açar ve KeyframeSequencer'ı

Roblox sitesine yüklemeden önce bir Animasyon'u önizlemek isteyebilirsiniz. KeyframeSequenceProvider:RegisterKeyframeSequence() kullanarak geçici bir kimlik oluşturabilirsiniz. Bu, yerelleşik animasyon testleri için bir hach şeklinde oluşturulur.

KeyframeSequencer'ı Alın

Bazı durumlarda mevcut bir Animasyon'a eşdeğer olan KeyframeSequencer'ı indirmek isteyebilirsiniz. animasyonindirmek için AnimationClipProvider:GetAnimationClipAsync() kullanabilirsiniz.

Kod Örnekleri

Get KeyframeSequence Length

local function getSequenceLength(keyframeSequence)
local length = 0
for _, keyframe in pairs(keyframeSequence:GetKeyframes()) do
if keyframe.Time > length then
length = keyframe.Time
end
end
return length
end
local keyframeSequence = Instance.new("KeyframeSequence")
getSequenceLength(keyframeSequence)
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)
KeyframeSequence Instantiation

-- create the keyframesequence
local keyframeSequence = Instance.new("KeyframeSequence")
keyframeSequence.Loop = false
keyframeSequence.Priority = Enum.AnimationPriority.Action
-- create a keyframe
local keyframe = Instance.new("Keyframe")
keyframe.Time = 0
-- create sample poses
local rootPose = Instance.new("Pose")
rootPose.Name = "HumanoidRootPart"
rootPose.Weight = 0
local lowerTorsoPose = Instance.new("Pose")
lowerTorsoPose.Name = "LowerTorso"
lowerTorsoPose.Weight = 1
-- set the sequence hierarchy
rootPose:AddSubPose(lowerTorsoPose) -- lowerTorsoPose.Parent = rootPose
keyframe:AddPose(rootPose) -- rootPose.Parent = keyframe
keyframeSequence:AddKeyframe(keyframe) -- keyframe.Parent = keyframeSequence
-- parent the sequence
keyframeSequence.Parent = workspace

Özet

Özellikler

Şuradan alınan Özellikler: AnimationClip

Yöntemler

Özellikler

AuthoredHipHeight

Gizli
Eklenti Güvenliği
Paralel oku

Bu Humanoid modelinin oluşturulduğu standart R15 KeyframeSequence ile kullanıldığındaki ortalama yüksekliği içerir.Varsayılan değer 1.35'tir, çünkü bu standart R15 ile kullanılan Character|character için kullanılan ortalama yüksekliğidir.

Yöntemler

AddKeyframe

void

Bu işlev, Keyframe ın ebeveyni olarak KeyframeSequence ile birleştirilmesiyle KeyframeSequence ı ekler. Bu işlevsel olarak anahtar çerçevenin 2> Class.Keyframe2> ına ayarlanmasına eşdeğerdir.

Not, bu işlev bir Keyframe olmayan bir instans ile çağrıldığında hata vermez ve anahtar çerçevesi parametresi olarak başarıyla ebeveyni olur.

Parametreler

keyframe: Instance

Eklenmesi gereken Keyframe .


Dönüşler

void

Kod Örnekleri

KeyframeSequence Instantiation

-- create the keyframesequence
local keyframeSequence = Instance.new("KeyframeSequence")
keyframeSequence.Loop = false
keyframeSequence.Priority = Enum.AnimationPriority.Action
-- create a keyframe
local keyframe = Instance.new("Keyframe")
keyframe.Time = 0
-- create sample poses
local rootPose = Instance.new("Pose")
rootPose.Name = "HumanoidRootPart"
rootPose.Weight = 0
local lowerTorsoPose = Instance.new("Pose")
lowerTorsoPose.Name = "LowerTorso"
lowerTorsoPose.Weight = 1
-- set the sequence hierarchy
rootPose:AddSubPose(lowerTorsoPose) -- lowerTorsoPose.Parent = rootPose
keyframe:AddPose(rootPose) -- rootPose.Parent = keyframe
keyframeSequence:AddKeyframe(keyframe) -- keyframe.Parent = keyframeSequence
-- parent the sequence
keyframeSequence.Parent = workspace

GetKeyframes

Instances

GetKeyframes ile, bir Keyframes ile eklenen tüm şeyleri içeren bir matrisi içerir.


Dönüşler

Instances

Bir Keyframe matrisi.

Kod Örnekleri

Get KeyframeSequence Length

local function getSequenceLength(keyframeSequence)
local length = 0
for _, keyframe in pairs(keyframeSequence:GetKeyframes()) do
if keyframe.Time > length then
length = keyframe.Time
end
end
return length
end
local keyframeSequence = Instance.new("KeyframeSequence")
getSequenceLength(keyframeSequence)

RemoveKeyframe

void

Bu işlev, Keyframe'i KeyframeSequence 'ine ayarlayarak kaldırır. Aynı işlevi, Class.Keyframe'in ebeveynini nil olarak ayarlamak ile aynıdır.

Bu, anahtar çerçevenin ebeveynini nil olarak ayarlar, ancak onu yok eder. Bu, bir başka referansa sahip olarak anahtar çerçevenin yeniden ebeveyn edilebilir olmasını sağlar.

Not, bu işlev bir Instance dışında bir Keyframe ile çağrıldığında hata yapmaz.

Parametreler

keyframe: Instance

Kaldırılacak Keyframe


Dönüşler

void

Kod Örnekleri

KeyframeSequence RemoveKeyframe

local keyframeSequence = Instance.new("KeyframeSequence")
keyframeSequence.Parent = workspace
local keyframe = Instance.new("Keyframe")
keyframeSequence:AddKeyframe(keyframe)
task.wait(2)
keyframeSequence:AddKeyframe(keyframe)

Etkinlikler