Puedes definir marcadores de evento de animación a lo largo del período de tiempo y usar GetMarkerReachedSignal() para detectar esos marcadores mientras se ejecuta la animación.
Mostrar eventos
Por defecto, la pista de eventos no es visible. Para mostrar la pista de eventos:
Navegue a la derecha del calendario , luego haga clic en el ícono Equipo . Se muestra un menú emergente.
Seleccione Mostrar eventos de animación . Esto abre la barra eventos de animación directamente debajo de los controles de medios y reproducción.
Ahora puedes crear, detectar y duplicar eventos.
Crear eventos
Los marcadores de eventos son indicadores visuales de dónde comienza un evento de animación.Después de crear un marcador de evento, puedes moverlo a cualquier posición de marco en la línea de tiempo.
Para crear un nuevo marcador de evento:
Navegue hasta la línea de tiempo , luego haga clic y arrastre el removedor a la posición de la ventana donde debería producirseel evento.
Navegue hasta la pista de eventos , luego haga clic en el botón Editar eventos de animación . Se muestra el diálogo Editar eventos de animación .
En el diálogo Editar eventos de animación , haz clic en + Añadir evento , luego ingresa un nombre de evento.
(Opcional) En el campo Parámetro , ingrese una cadena de parámetros para el evento.
Haga clic en el botón Guardar . En la barra de eventos dentro del cronograma, un nuevo símbolo de marcador se muestra en la posición del marco.
Detectar eventos
Para detectar eventos de animación en un LocalScript , conecte una función a la función GetMarkerReachedSignal() de AnimationTrack . Por ejemplo:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Crear nueva instancia de "Animación"
local walkAnim = Instance.new("Animation")
-- Establece su "AnimationId" al ID de activo de animación correspondiente
walkAnim.AnimationId = "rbxassetid://5432167890"
-- Cargar animación en el animador
local walkAnimTrack = animator:LoadAnimation(walkAnim)
-- Conectar el evento "GetMarkerReachedSignal" a un marco de clave con nombre específico
walkAnimTrack:GetMarkerReachedSignal("FootStep"):Connect(function(paramString)
print(paramString)
end)
Eventos duplicados
A medida que creas eventos, se vuelven disponibles para su uso a lo largo de toda la animaciones, no solo en la posición del marco donde los creaste originalmente.Por instancia, puedes crear un marcador de evento "Paso a Paso" en el punto donde el pie izquierdo de un personaje toca el suelo, luego usa el mismo evento cuando el pie derecho de un personaje toca el suelo.
Para duplicar un evento:
Navegue hasta la línea de tiempo , luego haga clic en un marcador de evento en la barra de eventos .
Presione CtrlC ( ⌘C en Mac).
Haz clic y arrastra el removedor a la posición del marco donde quieres duplicar el evento.
Presione CtrlV ( ⌘V en Mac).
Si el evento original usa un parámetro pero el evento duplicado debe usar un parámetro modificado, realice los siguientes pasos:
- Haga clic derecho en el marcador de evento duplicado. Se muestra un menú emergente.
- Seleccione el evento Editar animación . Se muestra el diálogo Editar eventos de animación .
- Haz tus cambios, luego haz clic en el botón Guardar .