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 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

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

void

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

motors: Variant

Rückgaben

void

GetPlayingAnimationTracks

Gibt die Liste der derzeit abgespielten AnimationTracks zurück.


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

animation: Animation

Die Animation zum Verwenden.


Rückgaben

RegisterEvaluationParallelCallback

void

Parameter

callback: function

Rückgaben

void

StepAnimations

void
Plugin-Sicherheit

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

deltaTime: number

Die Anzahl der Sekunden, in denen die Animation in Sekunden abgespielt wird, ist um zu erhöhen.


Rückgaben

void

Code-Beispiele

Preview Animation in Studio

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.

Parameter

animationTrack: AnimationTrack