Animator

Veraltete anzeigen

*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

Ereignisse

Eigenschaften

EvaluationThrottled

Schreibgeschützt
Nicht repliziert
Nicht durchsuchbar
Parallel schreiben

PreferLodEnabled

Parallel lesen

RootMotion

Schreibgeschützt
Nicht repliziert
Nicht durchsuchbar
Parallel schreiben

RootMotionWeight

Schreibgeschützt
Nicht repliziert
Nicht durchsuchbar
Parallel schreiben

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

motors: Variant
Standardwert: ""

Rückgaben

()

GetPlayingAnimationTracks

Gibt die Liste der derzeit spielenden AnimationTracks zurück.


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

animation: Animation

Die Animation zu verwenden.

Standardwert: ""

Rückgaben

RegisterEvaluationParallelCallback

()

Parameter

callback: function
Standardwert: ""

Rückgaben

()

StepAnimations

()
Plugin-Sicherheit

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

deltaTime: number

Die Menge der Zeit in Sekunden Animation-Wiedergabe ist zu erhöhen.

Standardwert: ""

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.

Vorschau-Animation im Studio

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.

Parameter

animationTrack: AnimationTrack