KeyframeMarker

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Ein Schlüsselrahmenmarkierer ist eine Instanz, die ein Ereignis darstellt, das schließlich abgefeuert wird, wenn ein Keyframe getroffen wird.

Verwendung eines Schlüsselframenmarkers

Keyframe-Marker sollten immer einem Keyframe zugewiesen werden, indem der Eltern direkt festgelegt wird oder die Keyframe:AddMarker()-Funktion von Keyframe verwendet wird.Keyframe-Marker können auch direkt entfernt oder mit der Funktion Keyframe:RemoveMarker() entfernt und abgefragt werden, um zu überprüfen, welche Marker mit einem bestimmten Keyframe verbunden sind, indem Keyframe:GetMarkers() verwendet wird.

Immer wenn ein Schlüsselfrahmen als Animation ausgeführt wird, wird für jeden Schlüsselfrahmenmarkierer, der dem Schlüsselfrahmen zugewiesen ist, ein Ereignis ausgelöst.Diese Ereignisse sind durch den Namen des KeyframeMarkers identifizierbar.Du kannst diese Ereignisse abrufen und hören, indem du die AnimationTrack.GetKeyframeMarkerReached-Funktion verwendest.Optional kannst du die KeyframeMarker.Value Eigenschaft des KeyframeMarkers festlegen, um einen Wert mit dem zugeordneten Ereignis weiterzugeben.

Es erbt die Eigenschaft Keyframe.Name von Instance und verhält sich identisch.Namen werden zur Identifizierung verwendet und müssen nicht einzigartig sein.Wenn mehrere Instanzen mit demselben Namen einem Beitrag beigefügt werden, werden Ereignisse wie die von zurückgegeben für jeden Marker ausgelöst.

Siehe auch:

  • Keyframe , hält die Poses angewendet, die an gelenken in einem Model an einem bestimmten zeitpunkt in einer animationenangewendet wird
  • AnimationTrack , steuert die wiedergabe einer animation auf einem Humanoid oder AnimationController
  • Animation , enthält einen Verweis auf Animationendaten, die für das Spielen benutzerdefinierter Animationen auf Charakteren oder anderen Modellen mit dem Roblox-Animationssystem erforderlich sind

Code-Beispiele

Dieses Beispiel zeigt die Keyframe:AddMarker()- und Keyframe:GetMarkers()-Funktionen.Nach dem Hinzufügen von zwei Markern, marker1 und marker2 zum Schlüsselfrahmen, erhält und druckt dieses Beispiel die Namen der hinzugefügten Marker.

Hole Keyframe-Marker an einen Keyframe an

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) --Marker.Parent = Schlüsselfrahme
keyframe:AddMarker(marker2) --Marker.Parent = Schlüsselfrahme
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)

Eigenschaften

Value

Parallel lesen

Ein Wert, der für ein KeyframeMarker angegeben wird.Wann immer das Signal, das aus AnimationTrack:GetMarkerReachedSignal() erstellt wurde, abgefeuert wird, wird dieser Wert in die verbundene Funktion übergeben.

Siehe auch:

Code-Beispiele

Dieses Beispiel zeigt die Keyframe:AddMarker()- und Keyframe:GetMarkers()-Funktionen.Nach dem Hinzufügen von zwei Markern, marker1 und marker2 zum Schlüsselfrahmen, erhält und druckt dieses Beispiel die Namen der hinzugefügten Marker.

Hole Keyframe-Marker an einen Keyframe an

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) --Marker.Parent = Schlüsselfrahme
keyframe:AddMarker(marker2) --Marker.Parent = Schlüsselfrahme
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end

Dieses Beispiel zeigt die Keyframe:AddMarker()- und Keyframe:RemoveMarker()-Funktionen.Beachten Sie, dass diese funktional gleichwertig mit parenting und der Entfernung der Marker sind.

Marker hinzufügen/Marker entfernen

local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker = Instance.new("KeyframeMarker")
marker.Name = "FootStep"
marker.Value = 100
keyframe:AddMarker(marker) --Marker.Parent = Schlüsselfrahme
task.wait(2)
keyframe:RemoveMarker(marker) --marker.Parent = nil

Methoden

Ereignisse