Utiliser des animations

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

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 :

  1. Assurez-vous que le joueur local Humanoid contient un objet Animator.
  2. Créez une nouvelle instance Animation avec la bonne AnimationId.
  3. Chargez l'animation via Animator:LoadAnimation() pour créer un AnimationTrack.
  4. 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.

  1. Obtenez l'ID de la ressource de la nouvelle animation comme suivant :

  2. Dans la fenêtre Explorateur, ajoutez un nouveau Script à ServerScriptService .

    1. Passez la souris sur ServerScriptService et cliquez sur le bouton ⊕.
    2. Dans le menu contextuel, insérez un script .
  3. Dans le nouveau script, collez le code suivant :

    Script - Remplacer les animations de caractères par défaut

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Obtenir un animateur sur humanoid
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Arrêter toutes les pistes d'animation
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local 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://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  4. 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éfaut

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Obtenir un animateur sur humanoid
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Arrêter toutes les pistes d'animation
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local 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://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.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 = 5
animateScript.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 personnageRé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