KeyframeMarker

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.

Bir Anahtar Çerçeve İşaretleyici, bir Keyframe vurulduğunda sonunda ateşlenecek bir olayı temsil etmek üzere tasarlanmış bir örnektir.

Bir Anahtar Çerçeve İşaretleyicisi Kullanma

Anahtar çerçeve işaretleyicileri daima doğrudan ebeveyn atayarak bir Anahtar çerçevesine veya Keyframe'in Keyframe:AddMarker() işlevini kullanarak ebeveyn olmalıdır.Anahtar çerçeve işaretleyicileri doğrudan kaldırılabilir veya Keyframe:RemoveMarker() işlevini kullanarak ve belirli bir anahtar çerçevesine hangi işaretçilerin bağlandığını kontrol etmek için Keyframe:GetMarkers() işlevini kullanarak da kaldırılabilir.

Bir Animasyon olarak bir Anahtar çerçevesi tespit edildiğinde, Anahtar çerçevesine bağlı her bir Anahtar işaretleyici için bir olay ateşlenecektir.Bu olaylar, Anahtar Çerçeve İşaretleyici adıyla tanımlanabilir.Bu olayları AnimationTrack.GetKeyframeMarkerReached işlevini kullanarak alabilir ve dinleyebilirsiniz.Opsiyonel olarak, Ateşlenen Etkinlik değeri ile birlikte geçmek için Anahtar Çerçeve İşaretleyicisinin KeyframeMarker.Value özelliğini ayarlayabilirsiniz.

Miras alır Keyframe.Name özellikten Instance ve aynı davranır.İsimler tanımlama için kullanılır ve benzersiz olmak zorunda değildir.Aynı adı taşıyan çok sayıda KeyframeMarker örneği bir Keyframe 'a bağlandığında, AnimationTrack:GetMarkerReachedSignal() tarafından geri gönderilen gibi olaylar her işaret için ateşlenecektir.

Ayrıca bakın:

  • Keyframe , bir animasyondaki belirli bir noktada uygulanan Poses 'e bağlantılara uygulanan tutar Model bir süre boyunca
  • AnimationTrack , bir animasyonun çalınmasını kontrol eder Humanoid veya AnimationController
  • Animation , Roblox animasyon sistemi kullanılarak karakterler veya diğer modeller üzerinde özel animasyonlar oynatmak için gerekli olan animasyon verilerine referans tutar

Kod Örnekleri

Bu örnek Keyframe:AddMarker() ve Keyframe:GetMarkers() fonksiyonlarını gösterir.İki işaret ekledikten sonra, işaret1 ve işaret2 anahtara eklenen işaretlerin isimlerini alır ve basar bu örnek.

Bir anahtar kareye bağlı anahtar kare işaretleri alın

local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker1 = Instance.new("KeyframeMarker")
marker1.Name = "FootStep"
marker1.Value = 100
local marker2 = Instance.new("KeyframeMarker")
marker2.Name = "Wave"
marker2.Value = 100
keyframe:AddMarker(marker1) --işaretleyici.Parent = anahtar kare
keyframe:AddMarker(marker2) --işaretleyici.Parent = anahtar kare
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end

This LocalScript code waits for the local player's Humanoid object to load, then it creates a new Animation instance with the proper Animation.AnimationId. The animation is then loaded onto the humanoid, creating an AnimationTrack, and the track is played with AnimationTrack:Play(). Following that, the AnimationTrack:GetMarkerReachedSignal() function detects when the "KickEnd" marker is hit.

Listening to Keyframe Markers

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.Character:Wait()
local humanoid = character:WaitForChild("Humanoid")
-- Create new "Animation" instance
local kickAnimation = Instance.new("Animation")
-- Set its "AnimationId" to the corresponding animation asset ID
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Load animation onto the humanoid
local kickAnimationTrack = humanoid:LoadAnimation(kickAnimation)
-- Play animation track
kickAnimationTrack:Play()
-- If a named event was defined for the animation, connect it to "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

Özellikler

Value

Paralel oku

Bir KeyframeMarker için belirtilen bir değer.Sinyal AnimationTrack:GetMarkerReachedSignal() 'den yaratıldığında herhangi bir zaman, bu değer bağlı işleve geçecektir.

Ayrıca bakın:

Kod Örnekleri

Bu örnek Keyframe:AddMarker() ve Keyframe:GetMarkers() fonksiyonlarını gösterir.İki işaret ekledikten sonra, işaret1 ve işaret2 anahtara eklenen işaretlerin isimlerini alır ve basar bu örnek.

Bir anahtar kareye bağlı anahtar kare işaretleri alın

local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker1 = Instance.new("KeyframeMarker")
marker1.Name = "FootStep"
marker1.Value = 100
local marker2 = Instance.new("KeyframeMarker")
marker2.Name = "Wave"
marker2.Value = 100
keyframe:AddMarker(marker1) --işaretleyici.Parent = anahtar kare
keyframe:AddMarker(marker2) --işaretleyici.Parent = anahtar kare
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end

Bu örnek Keyframe:AddMarker() ve Keyframe:RemoveMarker() fonksiyonlarını gösterir.Bunların işlevsel olarak parenting ile eşdeğer olduğunu ve işaretlerin ebeveyn olmadığını unutmayın.

İşaret Ekle/İşareti Kaldır

local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker = Instance.new("KeyframeMarker")
marker.Name = "FootStep"
marker.Value = 100
keyframe:AddMarker(marker) --işaretleyici.Parent = anahtar kare
task.wait(2)
keyframe:RemoveMarker(marker) --marker.Parent = nil

Yöntemler

Etkinlikler