Vous pouvez définir des marqueurs d'animation événement à travers l'intervalle de temps et utiliser GetMarkerReachedSignal() pour détecter ces marqueurs lorsque l'animation s'exécute.
Afficher les événements
Par défaut, la piste d'événement n'est pas visible. Pour afficher la piste d'événement :
Naviguez à droite de la timeline , puis cliquez sur l'icône Équipement . Un menu contextuel s'affiche.
Sélectionnez Afficher les événements d'animation . Cela ouvre la barre Événements d'animation directement en dessous des contrôles de lecture et de lecture de médias.
Vous pouvez maintenant créer , détecter et dupliquer événements.
Créer des événements
Les marqueurs d'événement sont des indicateurs visuels de l'endroit où une animation commence.Après avoir créé un marqueur d'événement, vous pouvez le déplacer à n'importe quelle position sur la timeline.
Pour créer un nouveau marqueur d'événement :
Accédez à la timeline , puis cliquez et faites glisser le tamponneur à la position du cadre où l'événement devrait survernir.
Accédez à la piste d'événements événement , puis cliquez sur le bouton éditer les événements d'animation . La boîte de dialogue éditer les événements d'animation s'affiche.
Dans la boîte de dialogue Éditer les événements d'animation , cliquez sur + Ajouter événement , puis entrez un nom d'événement.
(Facultatif) Dans le champ paramètre , entrez une chaîne de paramètre pour l'événement.
Cliquez sur le bouton enregistrer . Dans la barre d'événements dans la timeline, un nouveau symbole de marqueur s'affiche à la position du cadre.
Détecter des événements
Pour détecter les événements d'animation dans un LocalScript , connectez une fonction à la fonction GetMarkerReachedSignal() de AnimationTrack . Par exemple :
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")
-- Créer une nouvelle instance "Animation"
local walkAnim = Instance.new("Animation")
-- Définir son "AnimationId" à l'ID de ressource d'animation correspondant
walkAnim.AnimationId = "rbxassetid://5432167890"
-- Charger l'animation sur l'animateur
local walkAnimTrack = animator:LoadAnimation(walkAnim)
-- Relier l'événement "GetMarkerReachedSignal" à un image-clénommé spécifique
walkAnimTrack:GetMarkerReachedSignal("FootStep"):Connect(function(paramString)
print(paramString)
end)
Événements en double
Lorsque vous créez des événements, ils deviennent disponibles pour leur utilisation tout au long de l'animations, pas seulement à la position du cadre où vous les avez initialement créés.Par instance, vous pouvez créer un marqueur d'événement "Pas à pas" au point où le pied d'un personnage gauche touche le sol, puis utiliser le même événement lorsque le pied droit du personnage tombe .
Pour dupliquer un événement :
Accédez à la timeline , puis cliquez sur un marqueur d'événement dans la barre d'événements .
Appuyez sur CtrlC ( ⌘C sur Mac).
Cliquez et faites glisser le tamponneur à la position du cadre où vous voulez dupliquer l'événement.
Appuyez sur CtrlV ( ⌘V sur Mac).
Si l'événement original utilise un paramètre mais que l'événement dupliqué doit utiliser un paramètre modifié, effectuez les étapes suivantes :
- Faites un clic droit sur le marqueur d'événement dupliqué. Un menu contextuel s'affiche.
- Sélectionnez Éditer l'animation Événement. Le dialogue Éditer événements d'animation s'affiche.
- Faites vos modifications, puis cliquez sur le bouton enregistrer .