Você pode definir marcos de evento de animação em todo o espaço do tempo e usar GetMarkerReachedSignal() para detectar esses marcos à medida que a animação é executada.
Mostrando Eventos
Por padrão, a pista de eventos não é visível. Para mostrar a pista de eventos:
Navegue para a direita da linha do tempo, então clique no ícone Gear. Um menu pop-up será exibido.
Selecione Mostrar Eventos de Animação . Isso abre a barra Eventos de Animação diretamente abaixo dos controles de mídia e reprodução.
Agora você pode criar eventos, detectar e duplicar eventos.
Criando Eventos
Os marcadores de eventos são indicadores visuais de onde um evento de animação começa. Depois de criar um marcador de evento, você pode movê-lo para qualquer posição na linha do tempo.
Para criar um novo marcador de evento:
Navegue até o cronograma e, em seguida, clique e arraste o scrubber para a posição da janela onde o evento deve ocorrer.
Navegue até o evento track , então clique no botão Editar Eventos de Animação . A caixa de diálogo Editar Eventos de Animação será exibida.
Na caixa de diálogo Editar Eventos de Animação , clique em + Adicionar Evento e depois insira um nome de evento.
(Opcional) No campo Parâmetro , insira uma string de parâmetro para o evento.
Clique no botão Salvar . Na barra de eventos dentro da linha do tempo, um novo símbolo de marcador é exibido na posição da janela.
Detectando Eventos
Para detectar eventos de animação em um LocalScript, conecte uma função à função GetMarkerReachedSignal(). Por exemplo:
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")
-- Criar uma nova instância "Animação"
local walkAnim = Instance.new("Animation")
-- Defina seu "AnimationId" para o ID de ativo de animação correspondente
walkAnim.AnimationId = "rbxassetid://5432167890"
-- Carregar animação no animador
local walkAnimTrack = animator:LoadAnimation(walkAnim)
-- Conecte o evento "GetMarkerReachedSignal" a uma keyframe específica
walkAnimTrack:GetMarkerReachedSignal("FootStep"):Connect(function(paramString)
print(paramString)
end)
Duplicando Eventos
À medida que você cria eventos, eles se tornam disponíveis para uso em toda a animações, não apenas na posição da janela onde você originalmente os criou. Por instância, você pode criar um marcador de evento "FootStep" no ponto em que um personagem esquerdo pisar no chão, então usar o mesmo evento quando o personagem certo pisar no chão.
Para duplicar um evento:
Navegue até o calendário e, em seguida, clique em um marcador de evento na barra de eventos.
Pressione CtrlC ( ⌘C no Mac).
Clique e arraste o scribeber para a posição da janela onde você deseja duplicar o evento.
Pressione CtrlV ( ⌘V no Mac).
Se o evento original usar um parâmetro, mas o evento duplicado deve usar um parâmetro modificado, siga os passos a seguir:
- Clique com o botão direito no marcador de evento duplicado. Um menu pop-up será exibido.
- Selecione o Editar Animação Evento. A janela de diálogo Editar Eventos de Animação será exibida.
- Feito isso, clique em Salvar e Fechar.