KeyframeMarker
*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 necesitan ser únicos.Cuando varias instancias KeyframeMarker con el mismo nombre se adjuntan a un Keyframe, eventos como el devuelto por AnimationTrack:GetMarkerReachedSignal() se dispararán para cada marcador.
Vea también:
- 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
Este ejemplo demuestra las funciones Keyframe:AddMarker() y Keyframe:GetMarkers().Después de agregar dos marcadores, marker1 y marker2 al marco clave, este ejemplo obtiene y imprime los nombres de los marcadores agregados.
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) --marcador.Parent = keyframe
keyframe:AddMarker(marker2) --marcador.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.
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)
Resumen
Propiedades
Un valor que se especifica para un KeyframeMarker .
Propiedades
Value
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
Este ejemplo demuestra las funciones Keyframe:AddMarker() y Keyframe:GetMarkers().Después de agregar dos marcadores, marker1 y marker2 al marco clave, este ejemplo obtiene y imprime los nombres de los marcadores agregados.
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) --marcador.Parent = keyframe
keyframe:AddMarker(marker2) --marcador.Parent = keyframe
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end
Este ejemplo demuestra las funciones Keyframe:AddMarker() y Keyframe:RemoveMarker().Tenga en cuenta que estas son funcionalmente equivalentes a parenting y no desmadre los marcadores.
local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker = Instance.new("KeyframeMarker")
marker.Name = "FootStep"
marker.Value = 100
keyframe:AddMarker(marker) --marcador.Parent = keyframe
task.wait(2)
keyframe:RemoveMarker(marker) --marker.Parent = nil