Du kannst Animationen Ereignis-Markierungen über die Zeitreihenfolge definieren und GetMarkerReachedSignal() verwenden, um diese Markierungen zu erkennen, wenn die Animation läuft.
Zeige Ereignisse
Standardmäßig ist die Veranstaltungs-Schiene nicht sichtbar. Um die Veranstaltungs-Schiene anzuzeigen:
Navigate to the right of the Zeitachse , then click the Ausrüstung Symbol. A pop-up menu displays.
Wählen Sie Zeige Animationsereignisse . Dies öffnet die Animationsereignisse -Registerkarte direkt unter den Medien und den Steuerung.
Du kannst jetzt erstellen, erkennen und duplizieren Ereignisse.
Ereignisse erstellen
Ereignis-Marker sind visuelle Indikatoren, an denen ein Animationsevent beginnt. Nachdem du einen Ereignis-Marker erstellt hast, kannst du ihn zu jeder Zeit auf der Timeline an jeden Bildschirm positionieren.
Um einen neuen Event-Marker zu erstellen:
Navigate to the Zeitachse , then click-and-拖 the Scrubber to the frame position where the event should auftreten.
Navigate to the Veranstaltungs-Track , then click the Animationsereignisse bearbeiten button. The Animationsereignisse bearbeiten dialog displays.
In dem Animationsevents bearbeiten-Dialog , klicken Sie auf + Event hinzufügen und geben Sie einen Event-Namen ein.
(Optional) Im Feld Parameter geben Sie eine Paramètreschnung für das Ereignis ein.
Klicken Sie auf die Schaltfläche Speichern . In der Ereignisleiste innerhalb der Zeitachse wird ein neuer Markierungszeichen angezeigt.
Ereignisse erkennen
Um Animationsereignisse in einem LocalScript zu erkennen, verbinden Sie eine Funktion mit der GetMarkerReachedSignal() Funktion 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")
-- Erstellen Sie eine neue "Animation"-Instanz
local walkAnim = Instance.new("Animation")
-- Setzen Sie seine "AnimationId" auf die entsprechende Animation-Asset-ID
walkAnim.AnimationId = "rbxassetid://5432167890"
-- Laden Sie die Animation auf dem Animator
local walkAnimTrack = animator:LoadAnimation(walkAnim)
-- Verbinden Sie das Ereignis "GetMarkerReachedSignal" mit einem bestimmten namensgegebenen Keyframe
walkAnimTrack:GetMarkerReachedSignal("FootStep"):Connect(function(paramString)
print(paramString)
end)
Duplizieren von Ereignissen
Wenn du Ereignisse erstellst, werden sie während der gesamten Animationenfür die Verwendung verfügbar, nicht nur an der Position, an der du sie ursprünglich erstellt hast. Zum Instanzkannst du einen "FootStep" -Ereignis-Marker an der Stelle erstellen, an der ein Charakters linker Fuß berührt wird, und dann dieselbe Verwendung verwenden, wenn der Charakter rechter Fuß berührt wird.
Um ein Ereignis zu duplizieren:
Navigate to the Zeitachse , then click an Event-Marker in the Event-Bar .
Drücken Sie CtrlC ( ⌘C auf Mac).
Klicke und ziehe den Scrapper zur Position des Rahmens, in der du das Ereignis duplizieren möchtest.
Drücken Sie CtrlV ( ⌘V auf Mac).
Wenn das ursprüngliche Ereignis einen Parameter verwendet, aber das duplizierte Ereignis einen modifizierten Parameter verwendet, führen Sie die folgenden Schritte aus:
- Klicken Sie mit der rechten Maustaste auf die duplizierte Ereignis-Marke. Ein Pop-up-Menü wird angezeigt.
- Wählen Sie Animation bearbeiten Event. Der Animation bearbeiten Events -Dialog wird angezeigt.
- Make your changes, then click the Speichern button.