Une fois que vous avez créé une animation, vous devez utiliser des scripts pour les inclure dans votre expérience.Vous pouvez soit jouer des animations manuellement à partir de scripts ou remplacer les animations par défaut pour les personnages des joueurs.
Jouer des animations à partir de scripts
Dans certains cas, vous devrez jouer une animation directement à partir d'un script, comme lorsqu'un utilisateur appuie sur une certaine touche ou prend un itemspécial.
Humanoïdes
Pour jouer une animation sur un rig contenant un objet Humanoid typique, comme des personnages jouables typiques, suivez ce modèle de base :
- Créez une nouvelle instance Animation avec la bonne AnimationId.
- Chargez l'animation via Animator:LoadAnimation() pour créer un AnimationTrack.
- Jouez la piste avec AnimationTrack:Play() .
Par exemple, la suivante LocalScript, lorsqu'elle est placée dans StarterPlayerScripts, charge une animation "exclure" sur le personnage du joueur et la joue.Le script utilise également la méthode 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 le humanoïde du personnage contient un objet "Animateur"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Créer une nouvelle instance « Animation » et attribuer un ID de ressource d'animation
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Charger l'animation sur l'animateur
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Jouer la piste d'animation
kickAnimationTrack:Play()
-- Si un événement nommé a été défini pour l'animations, connectez-le à "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
Non-humanoïdes
Pour jouer des animations sur des racks qui ne contiennent pas pas de Humanoid, vous devez créer un AnimationController avec un enfant Animator.Par exemple, la suivante Script (qui est supposée être un enfant direct du plateforme) charge une animation "exclure" 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 attribuer un ID de ressource d'animation
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Créer un nouveau "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)
-- Jouer la piste d'animation
kickAnimationTrack:Play()
-- Si un événement nommé a été défini pour l'animations, connectez-le à "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
Remplacer les animations par défaut
Par défaut, les personnages de joueur Roblox incluent des animations communes comme la course, l'escalade, la natation et le saut.Vous pouvez remplacer ces animations par défaut par des animations du catalogue ou avec vos propres animations personnalisées.
Obtenez l'ID de la ressource de la nouvelle animation comme suivant :
- Pour une animation personnalisée construite avec le éditeur d'animation, suivez les instructions d'exportation exportation.
- Copiez un ID approprié de la référence d'animation du catalogue ci-dessous.Par exemple, pour remplacer l'animation d'exécution par défaut par la variante course de ninja, utilisez 656118852.
Dans la fenêtre Explorateur, ajoutez un nouveau Script à ServerScriptService .
- Passez la souris sur ServerScriptService et cliquez sur le bouton ⊕.
- Dans le menu contextuel, insérez un script .
Dans le nouveau script, collez le code suivant :
Script - Remplacer les animations de caractères par défautlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Obtenir un animateur sur humanoidlocal 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.lancer.RunAnim.AnimationId = "rbxassetid://"--animateScript.marche.WalkAnim.AnimationId = "rbxassetid://"--animateScript.sauter.JumpAnim.AnimationId = "rbxassetid://"--animateScript.inactif.Animation1.AnimationId = "rbxassetid://"--animateScript.inactif.Animation2.AnimationId = "rbxassetid://"--animateScript.chute.FallAnim.AnimationId = "rbxassetid://"--animateScript.nage.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.escalader.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 de caractère par défaut, désactivez-la et collez l'ID de remplacement après rbxassetid://.Par exemple, pour changer l'animation d'exécution par défaut en variante course de ninja :
Script - Remplacer les animations de caractères par défautlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Obtenir un animateur sur humanoidlocal 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.marche.WalkAnim.AnimationId = "rbxassetid://"--animateScript.sauter.JumpAnim.AnimationId = "rbxassetid://"--animateScript.inactif.Animation1.AnimationId = "rbxassetid://"--animateScript.inactif.Animation2.AnimationId = "rbxassetid://"--animateScript.chute.FallAnim.AnimationId = "rbxassetid://"--animateScript.nage.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.escalader.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
Définir les poids d'animation
Vous pouvez utiliser plusieurs animations pour la même action.Par exemple, il y a deux variations idle dans l'échantillon de code pour remplacer les animations par défaut.
Lorsqu'il existe plusieurs animations pour un état de caractère, le script Animer choisit aléatoirement celle à jouer, mais vous pouvez influencer le résultat en définissant la valeur de l'animation Weight sous la formule suivante :
- poids de l'animation / poids total de toutes les animations d'état Dans l'exemple suivant, idle.Animation1 jouera ⅓ du temps que le personnage est inactif, tandis que idle.Animation2 jouera ⅔ du temps.
Script - Remplacer les animations de caractères par défaut
animateScript.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 de caractère par défaut
La table suivante contient toutes les animations de caractères par défaut que vous pouvez remplacer par des animations de catalogue ou vos propres animations personnalisées .Notez que Inactif a deux variations que vous pouvez pondérer pour jouer plus ou moins fréquemment.
actiondu personnage | Référence de script d'animation |
Exécuter | animateScript.run.RunAnim.AnimationId |
Marche | animateScript.walk.WalkAnim.AnimationId |
Saut | animateScript.jump.JumpAnim.AnimationId |
Inactif | animateScript.idle.Animation1.AnimationId``animateScript.idle.Animation2.AnimationId |
Tombée | animateScript.fall.FallAnim.AnimationId |
Nager | animateScript.swim.Swim.AnimationId |
Nager (inactif) | animateScript.swimidle.SwimIdle.AnimationId |
Montée | animateScript.climb.ClimbAnim.AnimationId |
Animations de catalogue
Lors de l'utilisation de packages d'animation d'avatar pour remplacer les animations par défaut, utilisez les références suivantes pour les ID d'actif respectifs.Par exemple, si vous voulez appliquer l'animation saut de ninja , utilisez ».Notez que Inactif a plusieurs variations.
Astronaute | Exécuter 891636393 Marcher 891636393 Sauter 891627522 Inactif 891621366, 891633237, 1047759695 Nager 891617966, 891633237, 1047759695 Nager (Inactif) 891663592 Nager (Inactif) 891609353 |
Bullant | Exécuter 910025107 Marche 910034870 Sauter 910016857 Inactif 910004836, 910009958, 1018536639 Nager 910001910 Nager (Inactif) 910030921 Nager (Inactif) 910030921 |
Caricature > | Exécuter 742638842 Marche 742640026 Sauter 742637942 Inactif 742637544, 742638445, 885477856 Nager 742637151 Nager (Inactif) 742639220 Nager (Inactif) 742636889 |
Aîné | Exécuter 845386501 Marcher 845403856 Sauter 845398858 Inactif 845397899, 845400520, 901160519 Nager 845396048 Nager (Inactif) 845401742 Nager (Inactif) 845392038 |
Chevalier | Exécuter 657564596 Marche 657552124 Sauter 658409194 Inactif 657595757, 657568135, 885499184 Nager 657600338, 657568135, 885499184 Nager (Inactif) 657557095 Nager (Inactif) 657560781 |
Lévitation | Exécuter 616010382 Marche 616013216 Sauter 616008936 Inactif 616006778, 616008087, 886862142 Nager 616005863 Nager (Inactif) 616012453 Nager (Inactif) 616003713 |
Magicien | Exécuter 707861613 Marche 707897309 Sauter 707853694 Inactif 707742142, 707855907, 885508740 Nager 707829716 Nager (Inactif) 707894699 Nager (Inactif) 707826056 |
Ninja | Exécuter 656118852 Marche 656121766 Sauter 656117878 Inactif 656117400, 656118341, 886742569 Nager 656115606 Nager (Inactif) 656121397 Nager (Inactif) 656119721 Nager (Inactif) 656121397 |
Pirate | Exécuter 750783738 Marche 750785693 Sauter 750782230 Inactif 750781874, 750782770, 885515365 Nager 750780242, 750782770, 885515365 Nager (Inactif) 750785176 Nager (Inactif) 750785176 Marcher (Inactif) 750789899 |
Robot > | Exécuter 616091570 Marche 616095330 Sauter 616090535 Inactif 616088211, 616089559, 885531463 Nager 616087089 Nager (Inactif) 616094091 Nager (Inactif) 616086039 |
Rthro | Exécuter 2510198475 Marche 2510202577 Sauter 2510197830 Inactif 2510197257, 2510196951, 3711062489 Nager 2510195892 Nager (inactif) 2510201162 Nager (inactif) 2510192778 |
Stylé > | Exécuter 616140816 Marche 616146177 Sauter 616139451 Inactif 616136790, 616138447, 886888594 Nager 616134815 Nager (Inactif) 616144772 Nager (Inactif) 616133594 |
Super-héros | Exécuter 616117076 Marche 616122287 Sauter 616115533 Inactif 616111295, 616113536, 885535855 Nager 616108001, 616113536, 885535855 Nager (Inactif) 616120861 Nager (Inactif) 616104706 |
Jouet > | Exécuter 782842708 Marche 782843345 Sauter 782847020 Inactif 782841498, 782845736, 980952228 Nager 782846423 Nager (Inactif) 782845186 Nager (Inactif) 782843869 |
Vampire > | Exécuter 1083462077 Marche 1083473930 Sauter 1083455352 Inactif 1083445855, 1083450166, 1088037547 Nager 1083443587 Nager (Inactif) 1083467779 Nager (Inactif) 1083467779 |
Loup-garou | Exécuter 1083216690 Marche 1083178339 Sauter 1083218792 Inactif 1083195517, 1083214717, 1099492820 Nager 1083189019 Nager (Inactif) 1083222527 Nager (Inactif) 1083225406 |
Zombie > | Exécuter 616163682 Marcher 616168032 Sauter 616161997 Inactif 616158929, 616160636, 885545458 Nager 616157476 Nager (Inactif) 616165109 Nager (Inactif) 616166655 Nager (Inactif) 616156119 |