KeyframeMarker
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Un marqueur de cadre clé est une instance destinée à représenter un événement qui sera finalement déclenché lorsqu'un Keyframe est frappé.
Utiliser un marqueur de cadre clé
Les marqueurs de cadre clé doivent toujours être parentés à un cadre clé en définissant le parent directement ou en utilisant la fonction Keyframe:AddMarker() du cadre clé.Les marqueurs de cadre clé peuvent également être supprimés directement ou en utilisant la fonction Keyframe:RemoveMarker(), et interrogés pour vérifier quels marqueurs sont attachés à un cadre clé spécifique en utilisant Keyframe:GetMarkers().
Chaque fois qu'un cadre clé est détecté comme une animation est en cours d'exécution, il y aura un événement déclenché pour chaque marqueur de cadre clé qui est parent du cadre clé.Ces événements sont identifiables par le nom du marqueur Keyframe.Vous pouvez récupérer et écouter ces événements en utilisant la fonction AnimationTrack.GetKeyframeMarkerReached.Facultativement, vous pouvez définir la propriété KeyframeMarker.Value de la marque-clé dans le but de transmettre une valeur avec l'événement déclenché.
Il hérite la propriété Keyframe.Name de Instance et se comporte identiquement.Les noms sont utilisés pour l'identification et n'ont pas besoin d'être uniques.Lorsque plusieurs instances KeyframeMarker avec le même nom sont attachées à un Keyframe, des événements tels que ceux retournés par AnimationTrack:GetMarkerReachedSignal() se déclencheront pour chaque marqueur.
Voir aussi :
- Animation , contient une référence aux données d'animation requises pour jouer des animations personnalisées sur des personnages ou d'autres modèles en utilisant le système d'animation Roblox
Échantillons de code
Cet exemple montre les fonctions Keyframe:AddMarker() et Keyframe:GetMarkers().Après avoir ajouté deux marqueurs, marqueur1 et marqueur2 au keyframe, cet exemple obtient et imprime les noms des marqueurs ajoutés.
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) --marqueur.Parent = keyframe
keyframe:AddMarker(marker2) --marqueur.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)
Résumé
Propriétés
Une valeur qui est spécifiée pour un KeyframeMarker .
Propriétés
Value
Une valeur qui est spécifiée pour un KeyframeMarker .Chaque fois que le signal créé à partir de AnimationTrack:GetMarkerReachedSignal() est tiré, cette valeur sera transmise dans la fonction connectée.
Voir aussi :
Échantillons de code
Cet exemple montre les fonctions Keyframe:AddMarker() et Keyframe:GetMarkers().Après avoir ajouté deux marqueurs, marqueur1 et marqueur2 au keyframe, cet exemple obtient et imprime les noms des marqueurs ajoutés.
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) --marqueur.Parent = keyframe
keyframe:AddMarker(marker2) --marqueur.Parent = keyframe
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end
Cet exemple montre les fonctions Keyframe:AddMarker() et Keyframe:RemoveMarker().Notez que c'est fonctionnellement équivalent à parenting et à l'absence de parentage des marqueurs.
local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker = Instance.new("KeyframeMarker")
marker.Name = "FootStep"
marker.Value = 100
keyframe:AddMarker(marker) --marqueur.Parent = keyframe
task.wait(2)
keyframe:RemoveMarker(marker) --marker.Parent = nil