Puedes definir los marcadores de evento de animación a lo largo del espacio de tiempo y usar Class.AnimationTrack:GetMarkerReachedSignal()|GetMarkerReachedSignal() para detectar esos marcadores mientras se ejecuta la animación.
Mostrando eventos
Por defecto, la pista de eventos no es visible. Para mostrar la pista de eventos:
Navegue a la derecha de la línea del tiempo, luego haga clic en el íconoGear. Se muestra un menú pop-up.
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 eventos, puede moverlo a cualquier posición de marco en el tiempo.
Para crear un nuevo marcador de evento:
Navegue a la línea de tiempo y luego haga clic y arrastre el limpiador de basura a la posición de la ventana donde debería producirseel evento.
Navegue al event track , luego haga clic en el botón Editar Eventos de Animación . La Editar Eventos de Animación diálogo se muestra.
En la Editar Eventos de Animación diálogo, 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 marco de tiempo, un nuevo símbolo de marcador se muestra en la posición de la ventana.
Detectando Eventos
Para detectar eventos de animación en un LocalScript , conecta 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 una nueva instancia de "Animación"
local walkAnim = Instance.new("Animation")
-- Establece su "AnimationId" a la ID de la animación correspondiente
walkAnim.AnimationId = "rbxassetid://5432167890"
-- Carga la animación en el animador
local walkAnimTrack = animator:LoadAnimation(walkAnim)
-- Conecta el evento "GetMarkerReachedSignal" a una fotograma claveespecífica
walkAnimTrack:GetMarkerReachedSignal("FootStep"):Connect(function(paramString)
print(paramString)
end)
Duplicando Eventos
Cuando creas eventos, se vuelven disponibles para su uso a lo largo de toda la animaciones, no solo en la posición de marco en la que originalmente los creaste. Por instancia, puedes crear un marcador de evento "Pieza de piso" en el punto donde el pie izquierdo de un personaje toca el suelo, luego usar el mismo evento cuando el pie derecho de un personaje toca el suelo.
Para duplicar un evento:
Navegue a 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 limpiador a la posición de la ventana donde quieres duplicar el evento.
Presione CtrlV (⌘V en Mac).
Si el evento original usa un parámetro, pero el evento duplicado debería usar un parámetro modificado, realice los siguientes pasos:
- Haga clic con el botón derecho en el marcador de eventos duplicado. Se muestra un menú pop-up.
- Seleccione el evento Editar animación . La ventana de diálogo Editar eventos de animación muestra.
- Haz tus cambios, luego haz clic en el botón Guardar .