Animator
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
La clase principal responsable de la reproducción y replicación de Animations .Toda la replicación de jugar AnimationTracks se maneja a través de la instancia Animator.
Consulte también Editor de animaciones y Uso de animaciones para aprender cómo crear y agregar animaciones precargadas o personalizadas a su juego.
Resumen
Propiedades
Métodos
Calcula velocidades relativas entre partes y aplicalas a Motor6D.Part1 .Estas calculaciones y asignaciones de velocidad relativas ocurren en el orden proporcionado.
Devuelve la lista de reproducción actual de AnimationTracks.
Carga un Animation en un Animator , devolviendo un AnimationTrack .
Incrementa el AnimationTrack.TimePosition de todo el juego AnimationTracks que se carga en el Animator, aplicando los desplazamientos al modelo asociado con el Animator.Para su uso en la barra de comandos o solo por plugins.
Eventos
Se enciende cuando el animador comienza a reproducir una pista de animación.
Propiedades
Métodos
ApplyJointVelocities
Dada la configuración actual de AnimationTracks jugando, y sus tiempos y velocidades de juego actuales, compute velocidades relativas entre las partes y aplíquelas a Motor6D.Part1 (la parte que Animator considera la parte "niña").Estas calculaciones y asignaciones de velocidad relativas ocurren en el orden proporcionado.
Este método no aplica velocidades para una junta dada si ambas partes de la articulaciónson actualmente parte de la misma ensambladora, por ejemplo, si aún están conectadas directa o indirectamente por motores o soldaduras.
Este método no desactiva o elimina las juntas por ti.Debes desactivar o de lo contrario eliminar las juntas rígidas de la ensamblación antes de llamar a este método.
Los dados Motor6Ds no son requeridos para ser descendientes del DataModel.Se eliminan las juntas de la DataModel antes de llamar a este método se admite.
Parámetros
Devuelve
LoadAnimation
Esta función carga el dado Animation en este Animator, devolviendo un reproductor AnimationTrack .Cuando se llama a una Animator dentro de modelos que el cliente tiene propiedad de red, por ejemplo, el personaje del jugador local o desde BasePart:SetNetworkOwner() , esta función también carga la animación para el servidor.
Tenga en cuenta que el Animator debe estar en el Workspace antes de realizar una llamada a LoadAnimation() o de lo contrario no podrá recuperar el servicio AnimationClipProvider y lanzará un error.
Debe usar esta función directamente en lugar de las funciones con nombres similares Humanoid:LoadAnimation() y AnimationController:LoadAnimation().Estos son proxies obsoletos de esta función que también crean un Animator si no existe; esto puede causar problemas de replicación si no tienes cuidado.
Cargar una animación en el cliente o en el servidor
Para que AnimationTracks se re複ique correctamente, es importante saber cuándo deben cargarse en el cliente o en el servidor:
Si un es un descendiente de un o en el cliente de un jugador, las animaciones comenzarán en el servidor y en otros clientes.
Si el no es un descendiente de un personaje jugador, sus animaciones deben cargarse y comenzar en el servidor para replicarse.
El objeto Animator debe ser creado inicialmente en el servidor y replicado a los clientes para que la replicación de animación funcione en todos/todas.Si se crea un Animator localmente, entonces AnimationTracks cargado con ese Animator no se replicará.
Parámetros
Devuelve
StepAnimations
Incrementa el AnimationTrack.TimePosition de todo el juego AnimationTracks que se carga en el Animator, aplicando los desplazamientos al modelo asociado con el Animator.Para su uso en la barra de comandos o solo por plugins.
El parámetro deltaTime determina el número de segundos para incrementar en el progreso de la animaciones.Típicamente, esta función se llamará en un bucle para previsualizar la duración de una animación (ver ejemplo).
Tenga en cuenta que una vez que las animaciones dejen de reproducirse, las articulaciones del aplicación de modeladotendrán que ser restablecidas manualmente a sus posiciones originales (ver ejemplo).
Esta función se usa para simular la reproducción de Animations cuando el juego no está en ejecución.Esto permite que las animaciones se previsualicen sin las consecuencias de ejecutar el juego, como la ejecución de scripts.Si la función se llama mientras se ejecuta el juego, o por Scripts o LocalScripts, devolverá un error.
A los desarrolladores que diseñan sus propios editores de animación personalizados se les aconseja usar esta función para previsualizar las animaciones, ya que es el método que utiliza el plugin de Editor de animación oficial de Roblox.
Parámetros
La cantidad de tiempo en segundos de reproducción de animación debe incrementarse.
Devuelve
Muestras de código
Este ejemplo de código incluye una función que se puede utilizar para previsualizar una animación en un modelo en Roblox Studio, sin necesidad de ejecutar el juego.Utiliza la función Animator.StepAnimations, que es el mismo método que utiliza el editor de animaciones oficial de Roblox.
local RunService = game:GetService("RunService")
local function studioPreviewAnimation(model, animation)
-- buscar el controlador de animaciones y el animador
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
-- cargar la animación para crear una pista de animación
local track = animationController:LoadAnimation(animation)
track:Play()
-- previsualizar la animación
local startTime = tick()
while (tick() - startTime) < track.Length do
local step = RunService.Heartbeat:wait()
animator:StepAnimations(step)
end
-- detener la animación
track:Stop(0)
animator:StepAnimations(0)
-- restablecer las articulaciones
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)
Eventos
AnimationPlayed
Incendios para todas las llamadas AnimationTrack:Play() de AnimationTracks creadas y propiedad del Animador.