Une fois que vous avez créé une animation, vous devez utiliser des scripts pour les inclure dans votre jeu. Vous pouvez soit jouer des animations manuellement à partir de scripts, soit remplacer les animations par défaut pour les personnages des joueurs.
Jouer des animations depuis des scripts
Dans certains cas, vous devrez jouer une animation directement depuis un script, par exemple lorsqu'un utilisateur presse une certaine touche ou ramasse un objet spécial.
Humanoïdes
Pour jouer une animation sur un rig contenant un objet Humanoid, comme les personnages jouables typiques, suivez ce modèle de base :
- Créez une nouvelle instance Animation avec le bon AnimationId.
- Chargez l'animation via Animator:LoadAnimation() pour créer un AnimationTrack.
- Jouez la piste avec AnimationTrack:Play().
Par exemple, le LocalScript suivant, lorsqu'il est placé dans StarterPlayerScripts, charge une animation "coup de pied" sur le personnage du joueur et la joue. Le script utilise également la méthode GetMarkerReachedSignal() pour détecter quand un événement d'animation spécifique se produit.
LocalScript - Jouer une animation personnalisée sur le personnage du joueur
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- Assurez-vous que l'humanoïde du personnage contient un objet "Animator"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Créer une nouvelle instance "Animation" et assigner un ID d'asset d'animation
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Charger l'animation sur l'animateur
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Si un événement nommé a été défini pour l'animation, connectez-le à "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- Jouer la piste d'animation
kickAnimationTrack:Play()
Non-humanoïdes
Pour jouer des animations sur des rigs qui ne contiennent pas de Humanoid, vous devez créer un AnimationController avec un enfant Animator. Par exemple, le Script suivant (supposé être un enfant direct du rig) charge une animation "coup de pied" et la joue.
Script - Jouer une animation personnalisée sur le rig du personnage
local rig = script.Parent
-- Créer une nouvelle instance "Animation" et assigner un ID d'asset d'animation
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Créer un nouvel "AnimationController" et "Animator"
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- Charger l'animation sur l'animateur
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Si un événement nommé a été défini pour l'animation, connectez-le à "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- Jouer la piste d'animation
kickAnimationTrack:Play()
Remplacer les animations par défaut
Par défaut, les personnages joueurs de Roblox incluent des animations courantes comme courir, grimper, nager et sauter. Vous pouvez remplacer ces animations par défaut par des animations du catalogue ou par vos propres animations personnalisées.
Obtenez l'ID d'asset de la nouvelle animation comme suit :
- Pour une animation personnalisée créée avec l'éditeur d'animation, suivez les instructions d'exportation.
- Copiez un ID approprié à partir de la référence d'animation du catalogue ci-dessous. Par exemple, pour remplacer l'animation de course par défaut par le variant Ninja Run, utilisez 656118852.
Dans le nouveau script, collez le code suivant :
Script - Remplacer les animations par défaut du personnagelocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Obtenez l'animateur sur l'humanoïdelocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Arrêter toutes les pistes d'animationfor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")--animateScript.run.RunAnim.AnimationId = "rbxassetid://"--animateScript.walk.WalkAnim.AnimationId = "rbxassetid://"--animateScript.jump.JumpAnim.AnimationId = "rbxassetid://"--animateScript.idle.Animation1.AnimationId = "rbxassetid://"--animateScript.idle.Animation2.AnimationId = "rbxassetid://"--animateScript.fall.FallAnim.AnimationId = "rbxassetid://"--animateScript.swim.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.climb.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)Pour chaque ligne qui fait référence à une animation par défaut du personnage, décommentez-la et collez l'ID de remplacement après rbxassetid://. Par exemple, pour changer l'animation de course par défaut pour le variant Ninja Run :
Script - Remplacer les animations par défaut du personnagelocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Obtenez l'animateur sur l'humanoïdelocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Arrêter toutes les pistes d'animationfor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"--animateScript.walk.WalkAnim.AnimationId = "rbxassetid://"--animateScript.jump.JumpAnim.AnimationId = "rbxassetid://"--animateScript.idle.Animation1.AnimationId = "rbxassetid://"--animateScript.idle.Animation2.AnimationId = "rbxassetid://"--animateScript.fall.FallAnim.AnimationId = "rbxassetid://"--animateScript.swim.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.climb.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
Définir les poids des animations
Vous pouvez utiliser plusieurs animations pour la même action. Par exemple, il existe deux variations idle dans l'exemple de code pour remplacer les animations par défaut.
Lorsque plusieurs animations existent pour un état de personnage, le script Animate choisit aléatoirement laquelle jouer, mais vous pouvez influencer le résultat en définissant la valeur Weight de l'animation selon la formule suivante :
- poids de l'animation / poids total de toutes les animations de l'état
Dans l'exemple suivant, idle.Animation1 sera joué ⅓ du temps que le personnage est inactif, tandis que idle.Animation2 sera joué ⅔ du temps.
Script - Remplacer les animations par défaut du personnageanimateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"animateScript.idle.Animation1.Weight.Value = 5animateScript.idle.Animation2.Weight.Value = 10
Références d'animation
Animations par défaut du personnage
Le tableau suivant contient toutes les animations par défaut du personnage que vous pouvez remplacer par des animations de catalogue ou vos propres animations personnalisées. Notez que Idle a deux variations que vous pouvez peser pour les faire jouer plus ou moins fréquemment.
| Action du personnage | Référence du script Animate |
| Courir | animateScript.run.RunAnim.AnimationId |
| Marcher | animateScript.walk.WalkAnim.AnimationId |
| Sauter | animateScript.jump.JumpAnim.AnimationId |
| Inactif | animateScript.idle.Animation1.AnimationId |
| Tomber | animateScript.fall.FallAnim.AnimationId |
| Nager | animateScript.swim.Swim.AnimationId |
| Nager (Inactif) | animateScript.swimidle.SwimIdle.AnimationId |
| Grimper | animateScript.climb.ClimbAnim.AnimationId |
Animations du catalogue
Lors de l'utilisation de paquets d'animation d'avatar pour remplacer les animations par défaut, utilisez les références suivantes pour les ID d'asset respectifs. Par exemple, si vous souhaitez appliquer l'animation Ninja Jump, utilisez 656117878. Notez que Idle a plusieurs variations.
| Astronaute | Courir 891636393 Marcher 891636393 Sauter 891627522 Inactif 891621366, 891633237, 1047759695 Tomber 891617961 Nager 891639666 Nager (Inactif) 891663592 Grimper 891609353 |
| Jouet | Courir 910025107 Marcher 910034870 Sauter 910016857 Inactif 910004836, 910009958, 1018536639 Tomber 910001910 Nager 910028158 Nager (Inactif) 910030921 Grimper 909997997 |
| Cartoony | Courir 742638842 Marcher 742640026 Sauter 742637942 Inactif 742637544, 742638445, 885477856 Tomber 742637151 Nager 742639220 Nager (Inactif) 742639812 Grimper 742636889 |
| Elder | Courir 845386501 Marcher 845403856 Sauter 845398858 Inactif 845397899, 845400520, 901160519 Tomber 845396048 Nager 845401742 Nager (Inactif) 845403127 Grimper 845392038 |
| Chevalier | Courir 657564596 Marcher 657552124 Sauter 658409194 Inactif 657595757, 657568135, 885499184 Tomber 657600338 Nager 657560551 Nager (Inactif) 657557095 Grimper 658360781 |
| Lévitation | Courir 616010382 Marcher 616013216 Sauter 616008936 Inactif 616006778, 616008087, 886862142 Tomber 616005863 Nager 616011509 Nager (Inactif) 616012453 Grimper 616003713 |
| Mage | Courir 707861613 Marcher 707897309 Sauter 707853694 Inactif 707742142, 707855907, 885508740 Tomber 707829716 Nager 707876443 Nager (Inactif) 707894699 Grimper 707826056 |
| Ninja | Courir 656118852 Marcher 656121766 Sauter 656117878 Inactif 656117400, 656118341, 886742569 Tomber 656115606 Nager 656119721 Nager (Inactif) 656121397 Grimper 656114359 |
| Pirate | Courir 750783738 Marcher 750785693 Sauter 750782230 Inactif 750781874, 750782770, 885515365 Tomber 750780242 Nager 750784579 Nager (Inactif) 750785176 Grimper 750779899 |
| Robot | Courir 616091570 Marcher 616095330 Sauter 616090535 Inactif 616088211, 616089559, 885531463 Tomber 616087089 Nager 616092998 Nager (Inactif) 616094091 Grimper 616086039 |
| Rthro | Courir 2510198475 Marcher 2510202577 Sauter 2510197830 Inactif 2510197257, 2510196951, 3711062489 Tomber 2510195892 Nager 2510199791 Nager (Inactif) 2510201162 Grimper 2510192778 |
| Stylish | Courir 616140816 Marcher 616146177 Sauter 616139451 Inactif 616136790, 616138447, 886888594 Tomber 616134815 Nager 616143378 Nager (Inactif) 616144772 Grimper 616133594 |
| Superhéro | Courir 616117076 Marcher 616122287 Sauter 616115533 Inactif 616111295, 616113536, 885535855 Tomber 616108001 Nager 616119360 Nager (Inactif) 616120861 Grimper 616104706 |
| Jouet | Courir 782842708 Marcher 782843345 Sauter 782847020 Inactif 782841498, 782845736, 980952228 Tomber 782846423 Nager 782844582 Nager (Inactif) 782845186 Grimper 782843869 |
| Vampire | Courir 1083462077 Marcher 1083473930 Sauter 1083455352 Inactif 1083445855, 1083450166, 1088037547 Tomber 1083443587 Nager 1083464683 Nager (Inactif) 1083467779 Grimper 1083439238 |
| Loup-garou | Courir 1083216690 Marcher 1083178339 Sauter 1083218792 Inactif 1083195517, 1083214717, 1099492820 Tomber 1083189019 Nager 1083222527 Nager (Inactif) 1083225406 Grimper 1083182000 |
| Zombie | Courir 616163682 Marcher 616168032 Sauter 616161997 Inactif 616158929, 616160636, 885545458 Tomber 616157476 Nager 616165109 Nager (Inactif) 616166655 Grimper 616156119 |