Animator
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Die Hauptklasse, die für die Wiedergabe und Replikation von Animations verantwortlich ist.Alle Replikation des Spiels AnimationTracks wird durch die Animator Instanz verwaltet.
Siehe auch Animations-Editor und Verwendung von Animationen, um zu lernen, wie du vorabgebaute oder benutzerdefinierte Animationen zu deinem Spiel erstellen und hinzufügen kannst.
Zusammenfassung
Eigenschaften
Methoden
Berechnet relative Geschwindigkeiten zwischen Teilen und wendet sie auf Motor6D.Part1 an.Diese relativgeschwindigkeitsberechnungen und Zuweisungen passieren in der angegebenen Reihenfolge.
Gibt die Liste der derzeit spielenden AnimationTracks zurück.
Lädt eine Animation auf eine Animator, die eine AnimationTrack zurückgibt.
Erhöht das von allen abgespielten >, die auf die geladen wurden, und wendet die Versätze auf das Modell an, das mit dem verbunden ist.Nur für die Verwendung in der Befehlsleiste oder durch Plugins.
Ereignisse
Feuert, wenn der Animationator beginnt, eine Animation zu spielen.
Eigenschaften
Methoden
ApplyJointVelocities
Angesichts der aktuellen Reihe von Spielen und ihrer aktuellen Zeiten und Spielgeschwindigkeiten berechnen Sie relative Geschwindigkeiten zwischen den Teilen und wenden sie auf Motor6D.Part1 an (den Teil, der den "Kind"-Teil betrachtet).Diese relativgeschwindigkeitsberechnungen und Zuweisungen passieren in der angegebenen Reihenfolge.
Diese Methode gilt nicht für Geschwindigkeiten für einen bestimmten Gelenk, wenn beide Teile des Verbindungderzeit Teil derselben Montagemaschine sind, zum Beispiel, wenn sie noch direkt oder indirekt durch Motoren oder Schweißungen verbunden sind.
Diese Methode deaktiviert oder entfernt die Gelenke nicht für Sie.Du musst die steifen Gelenke aus der Montagemaschine entfernen oder deaktivieren, bevor du diese Methode aufrufst.
Die angegebenen Motor6Ds sind nicht erforderlich, Nachkommen des DataModel zu sein.Die Entfernung der Gelenke von der DataModel vor dem Aufruf dieser Methode wird unterstützt.
Parameter
Rückgaben
LoadAnimation
Diese Funktion lädt die angegebene Animation auf diese Animator , gibt eine abspielbare AnimationTrack zurück.Wenn auf eine Animator innerhalb von Modellen aufgerufen wird, von denen der Client Netzwerkbesitz hat, zum Beispiel der Charakter des lokalen Spieler:inoder von BasePart:SetNetworkOwner(), lädt diese Funktion auch die Animation für den Server.
Beachten Sie, dass die Animator im Workspace sein muss, bevor ein Anruf an LoadAnimation() erfolgt, sonst kann es den AnimationClipProvider -Dienst nicht abrufen und einen Fehler werfen.
Du solltest diese Funktion direkt verwenden, anstatt die ähnlich benannten Humanoid:LoadAnimation()- und AnimationController:LoadAnimation()-Funktionen.Dies sind veraltete Proxys dieser Funktion, die auch ein Animator erzeugen, wenn es nicht existiert; dies kann zu Replikationsproblemen führen, wenn Sie nicht vorsichtig sind.
Laden einer Animation auf Client oder Server
Damit AnimationTracks korrekt repliziert werden kann, ist es wichtig zu wissen, wann sie auf dem Client oder auf dem Server geladen werden sollten:
Wenn ein Animator ein Nachkomme von einem Humanoid oder AnimationController in einem Spieler:inPlayer.Character ist, werden Animationen, die auf dem Client des Spieler:inbegonnen wurden, auf den Server und andere Clients repliziert.
Wenn das nicht ein Nachkomme eines Spielerkennzeichnens ist, müssen seine Animationen auf dem Server geladen und gestartet werden, um repliziert zu werden.
Das Animator Objekt muss zuerst auf dem Server erstellt und an Clients repliziert werden, damit die Animation-Replikation Allefunktioniert.Wenn ein Animator lokal erstellt wird, wird AnimationTracks mit diesem Animator nicht repliziert.
Parameter
Rückgaben
StepAnimations
Erhöht das von allen abgespielten >, die auf die geladen wurden, und wendet die Versätze auf das Modell an, das mit dem verbunden ist.Nur für die Verwendung in der Befehlsleiste oder durch Plugins.
Der Parameter deltaTime legt die Anzahl der Sekunden fest, um den Fortschritt der Animationenzu erhöhen.In der Regel wird diese Funktion in einer Schleife aufgerufen, um die Länge einer Animation zu prüfen (siehe Beispiel).
Beachten Sie, dass sobald die Animationen aufgehört haben zu spielen, die Gelenke des Modells manuell in ihre ursprünglichen Positionen zurückgesetzt werden müssen (siehe Beispiel).
Diese Funktion wird verwendet, um die Wiedergabe von Animations zu simulieren, wenn das Spiel nicht läuft.Dies ermöglicht, Animationen ohne die Konsequenzen der Ausführung des Spiels zu prüfen, wie z. B. die Ausführung von Skripten.Wenn die Funktion aufgerufen wird, während das Spiel läuft, oder von Scripts oder LocalScripts, wird ein Fehler zurückgegeben.
Entwickler, die ihre eigenen benutzerdefinierten Animationsbearbeiter entwerfen, wird empfohlen, diese Funktion zu verwenden, um Animationen zu prüfen, da es die Methode ist, die der offizielle Roblox-Animationsbearbeiter-Plugin verwendet.
Parameter
Die Menge der Zeit in Sekunden Animation-Wiedergabe ist zu erhöhen.
Rückgaben
Code-Beispiele
Dieses Codebeispiel enthält eine Funktion, die verwendet werden kann, um eine Animation auf einem Modell in Roblox Studio zu prüfen, ohne das Spiel ausführen zu müssen.Es nutzt die Funktion Animator.StepAnimations, die die gleiche Methode verwendet, die der offizielle Roblox-Animations-Editor verwendet.
local RunService = game:GetService("RunService")
local function studioPreviewAnimation(model, animation)
-- finden Sie den AnimationController und Animator
local animationController = model:FindFirstChildOfClass("Humanoid")
or model:FindFirstChildOfClass("AnimationController")
local animator = animationController and animationController:FindFirstChildOfClass("Animator")
if not animationController or not animator then
return
end
-- lade die Animation, um einen Animations-Track zu erstellen
local track = animationController:LoadAnimation(animation)
track:Play()
-- vorschau der animation
local startTime = tick()
while (tick() - startTime) < track.Length do
local step = RunService.Heartbeat:wait()
animator:StepAnimations(step)
end
-- stoppe die animation
track:Stop(0)
animator:StepAnimations(0)
-- setze die gelenke zurück
for _, descendant in pairs(model:GetDescendants()) do
if descendant:IsA("Motor6D") then
local joint = descendant
joint.CurrentAngle = 0
joint.Transform = CFrame.new()
end
end
end
local character = script.Parent
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
studioPreviewAnimation(character, animation)
Ereignisse
AnimationPlayed
Feuert für alle AnimationTrack:Play() Anrufe auf Animationstracks, die vom Animator erstellt und im Besitz sind.