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 Kopplikation von Animations verantwortlich ist. Alle Kopplikationen des Spielens AnimationTracks werden durch die Instanz Animator behandelt.
Siehe auch Animations-Editor und Mit Animationen verwenden, um zu lernen, wie man vordefinierte oder benutzerdefinierte Animationen in deinem Spiel erstellt und hinzufügt.
Zusammenfassung
Eigenschaften
Methoden
Berechnet relative Geschwindigkeiten zwischen den Teilen und wendet sie auf Motor6D.Part1 an. Diese relativen Geschwindigkeitsberechnungen und -zuweisungen erfolgen in der angegebenen Reihenfolge.
Gibt die Liste der derzeit abgespielten AnimationTracks zurück.
Lädt eine Animation auf einem Animator und gibt eine AnimationTrack zurück.
Erhöht die AnimationTrack.TimePosition von allen spielenden AnimationTracks, die auf den Animator geladen werden, und wendet die Abzüge auf das Modell an, das mit dem 2>Class.Animator2> verbunden ist. Für den Gebrauch in der Befehlsleiste oder durch Plugins nur.
Ereignisse
Feuert, wenn der Animator eine AnimationTrack spielt.
Eigenschaften
Methoden
ApplyJointVelocities
Angesichts der aktuellen Set von AnimationTracks spielenden und deren aktuellen Zeiten und Spielgeschwindigkeiten berechnen Sie relative Geschwindigkeiten zwischen den Teilen und wenden sie auf Motor6D.Part1 an (den Teil, der die "Kind"-Teil betrachtet). Diese relativen Geschwindigkeitsberechnungen und -Zuweisungen erfolgen in der angegebenen Reihenfolge.
Diese Methode gilt nicht für Geschwindigkeiten für ein bestimmtes Element, wenn beide Teile des Verbindungderzeit Teil desselben Montages sind, z. B. wenn sie direkt oder indirekt über Motoren oder Schnitte verbunden sind.
Diese Methode deaktiviert oder entfernt die Verbindungen für Sie nicht. Sie müssen die Festverbindungen vor dem Aufrufen dieser Methode deaktivieren oder entfernen.
Die angegebenen Motor6Ds sind nicht als Nachkommen des DataModel erforderlich. Die Entfernung der Verbindungen von dem DataModel vor dem Aufrufen dieser Methode wird unterstützt.
Parameter
Rückgaben
LoadAnimation
Diese Funktion lädt die angegebene Animation auf diesen Animator und gibt eine spielbare AnimationTrack zurück. Wenn sie auf einem 2>Class.Animator2> innerhalb von Modellen, für die der Client Netzwerkbesitz hat, aufgerufen wird, lädt diese Funktion auch die Animation für den Server auf
Du solltest diese Funktion direkt anstelle der ähnlich namensierten Humanoid:LoadAnimation() und AnimationController:LoadAnimation() Funktionen verwenden. Diese sind deprecated-Proxys dieser Funktion, die auch einen Animator erstellen, wenn es keinen existiert; dies kann Replikationsprobleme verursachen, wenn du nicht vorsichtig bist.
Animation auf Client oder Server laden
Damit AnimationTracks richtig repliziert werden kann, ist es wichtig zu wissen, wann sie auf dem Client oder auf dem Server geladen werden sollen:
Wenn ein Animator Nachkommen eines Humanoid oder AnimationController in einem Spieler:in's 2>Class.Player.Character2> , werden Animationen auf dem Client des Spieler:inauf den Server und andere Clients repliziert.
Wenn der Animator kein Abklingzeit ist, müssen seine Animationen auf dem Server geladen und begonnen werden, um eine Kopie zu erstellen.
Das Animator -Objekt muss zuerst auf dem Server erstellt und für die Animation wiederholt werden, damit die Animation wiederholt auf AlleClients funktioniert. Wenn ein Animator lokal erstellt wird, wird dann die Animation mit dem AnimationTracks geladen, mit der Animation 2>Class.Animator2> wird nicht wiederholt.
Parameter
Rückgaben
StepAnimations
Erhöht die AnimationTrack.TimePosition von allen spielenden AnimationTracks, die auf den Animator geladen werden, und wendet die Abzüge auf das Modell an, das mit dem 2>Class.Animator2> verbunden ist. Für den Gebrauch in der Befehlsleiste oder durch Plugins nur.
Der DeltaTime-Parameter bestimmt die Anzahl der Sekunden, die auf dem Fortschritt der Animationenincrementiert werden. In der Regel wird diese Funktion in einem Loop aufgerufen, um die Länge einer Animation vorzusehen (siehe Beispiel).
Beachten Sie, dass einmal Animationen aufgehört haben zu spielen, müssen die Verbindungen des Modells manuell zu ihren ursprünglichen Positionen zurückgesetzt werden (siehe Beispiel).
Diese Funktion wird verwendet, um die Wiedergabe von Animations zu simulieren, wenn das Spiel nicht ausgeführt wird. Dies ermöglicht es Animationen, ohne die Konsequenzen des Ausführen des Spiels, wie Skripte auszuführen, zu präsentieren, zu präsentieren. Wenn die Funktion während der Ausführung des Spiels aufgerufen wird, oder von Class
Entwickler, die ihre eigenen benutzerdefinierten Animations-Editor verwenden, werden empfohlen, diese Funktion zu verwenden, um Animationen vor dem Export in Animationen zu präsentieren, da es die Methode ist, die der offizielle Roblox Animation Editor-Plugin verwendet.
Parameter
Die Anzahl der Sekunden, in denen die Animation in Sekunden abgespielt wird, ist um zu erhöhen.
Rückgaben
Code-Beispiele
local RunService = game:GetService("RunService")
local function studioPreviewAnimation(model, animation)
-- find the AnimationController and 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
-- load the Animation to create an AnimationTrack
local track = animationController:LoadAnimation(animation)
track:Play()
-- preview the animation
local startTime = tick()
while (tick() - startTime) < track.Length do
local step = RunService.Heartbeat:wait()
animator:StepAnimations(step)
end
-- stop the animation
track:Stop(0)
animator:StepAnimations(0)
-- reset the joints
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 AnimationTracks, die vom Animator erstellt und im Besitz sind.