KeyframeMarker

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Un marcador de cuadro clave es una instancia destinada a representar un evento que finalmente se disparará cuando se golpee un Keyframe.

Usando un marcador de cuadro clave

Los marcadores de cuadro clave siempre deben estar asociados a un cuadro clave a través de la configuración del padre directamente o usando la función Keyframe:AddMarker() de cuadro clave.Los marcadores de cuadro de clave también se pueden eliminar directamente o usando la función Keyframe:RemoveMarker() , y se pueden consultar para ver qué marcadores se adjuntan a un marco de clave específico usando Keyframe:GetMarkers() .

Cada vez que se detecta un marco clave como una animación en ejecución, se disparará un evento para cada marcador de clave que esté asociado al marco clave.Estos eventos son identificables por el nombre del marcador Keyframe.Puedes recuperar y escuchar estos eventos usando la función AnimationTrack.GetKeyframeMarkerReached.Opcionalmente, puedes establecer la propiedad KeyframeMarker.Value de la marca de marco clave para pasar un valor con el evento disparado.

Herencia la propiedad Keyframe.Name de Instance y se comporta de manera idéntica.Los nombres se utilizan para la identificación y no es necesario que sean únicos.Cuando varios marcadores de marco clave con el mismo nombre se adjuntan a un marco clave, se dispararán eventos como el devuelto por AnimationTrack:GetMarkerReachedSignal() para cada marcador.

Vea también:

  • Keyframe , contiene el Poses aplicado a las articulaciones en un Model en un punto de tiempo dado en una animaciones
  • AnimationTrack , controla la reproducción de una animación en un Humanoid o AnimationController
  • Animation , contiene una referencia a los datos de animación requeridos para reproducir animaciones personalizadas en personajes o modelos utilizando el sistema de animación de Roblox

Muestras de código

This example demonstrates the Keyframe:AddMarker() and Keyframe:GetMarkers() functions. After adding two markers, marker1 and marker2 to the keyframe, this example gets and prints the names of the added markers.

Get Keyframe Markers Attached to a Keyframe

local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker1 = Instance.new("KeyframeMarker")
marker1.Name = "FootStep"
marker1.Value = 100
local marker2 = Instance.new("KeyframeMarker")
marker2.Name = "Wave"
marker2.Value = 100
keyframe:AddMarker(marker1) --marker.Parent = keyframe
keyframe:AddMarker(marker2) --marker.Parent = keyframe
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end

This LocalScript code waits for the local player's Humanoid object to load, then it creates a new Animation instance with the proper Animation.AnimationId. The animation is then loaded onto the humanoid, creating an AnimationTrack, and the track is played with AnimationTrack:Play(). Following that, the AnimationTrack:GetMarkerReachedSignal() function detects when the "KickEnd" marker is hit.

Listening to Keyframe Markers

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.Character:Wait()
local humanoid = character:WaitForChild("Humanoid")
-- Create new "Animation" instance
local kickAnimation = Instance.new("Animation")
-- Set its "AnimationId" to the corresponding animation asset ID
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Load animation onto the humanoid
local kickAnimationTrack = humanoid:LoadAnimation(kickAnimation)
-- Play animation track
kickAnimationTrack:Play()
-- If a named event was defined for the animation, connect it to "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

Propiedades

Value

Leer paralelo

Un valor que se especifica para un KeyframeMarker .Cada vez que se dispara la señal creada desde AnimationTrack:GetMarkerReachedSignal(), este valor se pasará a la función conectada.

Vea también:

Muestras de código

This example demonstrates the Keyframe:AddMarker() and Keyframe:GetMarkers() functions. After adding two markers, marker1 and marker2 to the keyframe, this example gets and prints the names of the added markers.

Get Keyframe Markers Attached to a Keyframe

local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker1 = Instance.new("KeyframeMarker")
marker1.Name = "FootStep"
marker1.Value = 100
local marker2 = Instance.new("KeyframeMarker")
marker2.Name = "Wave"
marker2.Value = 100
keyframe:AddMarker(marker1) --marker.Parent = keyframe
keyframe:AddMarker(marker2) --marker.Parent = keyframe
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end

This example demonstrates the Keyframe:AddMarker() and Keyframe:RemoveMarker() functions. Note these are functionally equivalent to parenting and un-parenting the markers.

Add Marker/Remove Marker

local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker = Instance.new("KeyframeMarker")
marker.Name = "FootStep"
marker.Value = 100
keyframe:AddMarker(marker) --marker.Parent = keyframe
task.wait(2)
keyframe:RemoveMarker(marker) --marker.Parent = nil

Métodos

Eventos