Du kannst Animation Veranstaltungs-Marker über den Zeitrahmen hinweg definieren und GetMarkerReachedSignal() verwenden, um diese Marker zu erkennen, wenn die Animation läuft.
Zeige Ereignisse
Standardmäßig ist der Event-Track nicht sichtbar. Um den Event-Track anzuzeigen:
Navigiere zur rechten Seite der Zeitachse , dann klicke auf das Symbol. Ein Pop-up-Menü wird angezeigt.
Wählen Sie Animationsevents anzeigen . Dies öffnet die Animationsevents anzeigen -Leiste direkt unter den Medien- und Steuerung.
Du kannst jetzt erstellen, erkennen und duplizieren Ereignisse.
Erstelle Ereignisse
Ereignismarkierungen sind visuelle Indikatoren dafür, wo ein Animationsereignis beginnt.Nachdem du einen Ereignismarkierer erstellt hast, kannst du ihn in jede Frame-Position auf der Zeitachse verschieben.
Um einen neuen Ereignismarkierer zu erstellen:
Navigiere zur Zeitachse , dann klicke und ziehe den Reiniger an die Rahmenposition, an der das Ereignis auftreten soll.
Navigiere zum Veranstaltungstrack , dann klicke auf die Schaltfläche Animationsevent bearbeiten . Der Animationsevent bearbeiten -Dialog wird angezeigt.
Im Animationsevent bearbeiten -Dialog klicken Sie auf + Event hinzufügen und geben dann einen Eventnamen ein.
(Optional) In dem Feld Parameter geben Sie einen Parameternstring für das Ereignis ein.
Klicken Sie auf die Schaltfläche Speichern . In der Ereignisleiste innerhalb der Zeitachse wird ein neues Markersymbol in der Rahmenposition angezeigt.
Ereignisse erkennen
Um Animationsevent in einem LocalScript zu erkennen, verbinden Sie eine Funktion mit der Funktion GetMarkerReachedSignal() von AnimationTrack. Zum Beispiel:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Erstelle neue "Animation"-Instanz
local walkAnim = Instance.new("Animation")
-- Setze seine "AnimationId" auf die entsprechende Animation-Asset-ID
walkAnim.AnimationId = "rbxassetid://5432167890"
-- Lade Animation auf den Animator
local walkAnimTrack = animator:LoadAnimation(walkAnim)
-- Verbinde das Ereignis "GetMarkerReachedSignal" mit einem bestimmten benannten Keyframe
walkAnimTrack:GetMarkerReachedSignal("FootStep"):Connect(function(paramString)
print(paramString)
end)
Duplizierte Ereignisse
Wenn du Ereignisse erstellst, werden sie für die gesamte Animationenverfügbar, nicht nur an der Rahmenposition, an der du sie ursprünglich erstellt hast.Zum Instanzkannst du einen "FootStep"-Ereignismarker an der Stelle erstellen, an der der Fuß eines Charakters nach unten geht , und dann dasselbe Ereignis verwenden, wenn der Fuß des Charakters nach unten geht .
Um ein Ereignis zu duplizieren:
Navigiere zur Zeitachse , dann klicke auf einen Ereignis-Marker in der Ereignisleiste .
Drücke CtrlC ( ⌘C auf dem Mac).
Klicke und ziehe den Reiniger an die Rahmenposition, wo du das Ereignis duplizieren möchtest.
Drücke CtrlV ( ⌘V auf dem Mac).
Wenn das ursprüngliche Ereignis einen Parameter verwendet, aber das duplizierte Ereignis einen modifizierten Parameter verwenden soll, führen Sie die folgenden Schritte aus:
- Klicken Sie mit der rechten Maustaste auf den duplizierten Ereignismarkierer. Ein Pop-up-Menü wird angezeigt.
- Wählen Sie das Ereignis Animation bearbeiten . Der Dialog Anzeigen von Bearbeitungsanimationen wird angezeigt.
- Mach deine Änderungen, dann klicke auf die Schaltfläche Speichern .