Création de l’animation glissade
Choisis AVATAR puis constructeur de RIG

Choisis ton RIG :

R6 : Moins de parties mobiles, mouvements moins fluides, apparence plus simple.
R15 : Plus de parties mobiles, mouvements plus fluides et réalistes, apparence plus détaillée.
Déplace ton RIG pour créer l’animation

Ouvre l’éditeur d’animation :

L’éditeur d’animation ouvre une Timelapse :
Une timelapse dans un éditeur d’animation est une technique qui permet de capturer et de montrer le processus de création d’une animation. Cela signifie que vous enregistrez votre travail à intervalles réguliers et ensuite vous compilez ces enregistrements en une vidéo qui montre l’ensemble du processus de l’animation.
Demande à créer l’animation sur l’ensemble du corps en appuyant sur le + :

Décoche Rotation et Déplacer

Modifie les positions du corps étape par étape pour animer une glissade :

Définis la priorité de l’animation :

Action2 : Utilisé pour les animations qui doivent avoir la priorité sur les animations d’inactivité et de mouvement, mais pas nécessairement sur les animations de haute priorité.

Sauvegarde l’animation et garde bien sa référence car tu vas en avoir besoin :

Copie la référence de l’animation :

Garde bien l’identifiant puis ferme la fenêtre:

Script de l’animation
Crée un localscript sous StarterPlayer dans StarterCharacterScripts :

Puis une animation :

Modifie les noms du script et de l’animation :


Tu peux maintenant coller la référence de l’animation dans AnimationId de ton animation :

Code script pour lancer l’animation :
Code ton script pour que l’animation se lance sur une touche du clavier, dans l’exemple la touche CTRL :
local UIS = game:GetService(« UserInputService »)
UIS.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.KeyCode == Enum.KeyCode.LeftControl then
print(« animation glissade »)
end
end)
Vérifie que tu as le message dans la sortie lorsque tu appuies sur CTRL
Code pour lancer l’animation dans une fonction et que tu ne puisses pas lancer plusieurs fois :
local in_progress = false
local function ActivationGlissade()
if not in_progress then
in_progress = true
print(« animation glissade »)
task.wait(1)
in_progress = false
end
end
UIS.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.KeyCode == Enum.KeyCode.LeftControl then
ActivationGlissade()
end
end)
Code pour lancer l’animation :
local UIS = game:GetService(« UserInputService »)
local Character = script.Parent
local Humanoid = Character:WaitForChild(« Humanoid »)
local GlissadeAnimation = Humanoid:LoadAnimation(script:WaitForChild(« GlissadeAnimation »))
local in_progress = false
local function ActivationGlissade()
if not in_progress then
in_progress = true
GlissadeAnimation:Play()
task.wait(1)
in_progress = false
end
end
Ton animation se lance mais ne s’arrête plus :
local function ActivationGlissade()
if not in_progress then
in_progress = true
GlissadeAnimation:Play()
local hipHeight = Humanoid.HipHeight
local walkSpeed = Humanoid.WalkSpeed
Humanoid.HipHeight = 0
Humanoid.WalkSpeed = 30
local BodyVelocity = Instance.new(« BodyVelocity »)
BodyVelocity.MaxForce = Vector3.new(1, 0, 1) * 10000
BodyVelocity.Velocity = Character.HumanoidRootPart.CFrame.LookVector * 30
BodyVelocity.Parent = Character.HumanoidRootPart
task.wait(1)
GlissadeAnimation:Stop()
Humanoid.HipHeight = hipHeight
Humanoid.WalkSpeed = walkSpeed
BodyVelocity:Destroy()
in_progress = false
end
end
Modifie ton code pour paramétrer le temps de l’animation et sa vitesse :
local function ActivationGlissade(sliding_time, speed)
Humanoid.WalkSpeed = speed
BodyVelocity.Velocity = Character.HumanoidRootPart.CFrame.LookVector * speed
task.wait(sliding_time)
ActivationGlissade(0.5,10)
fin
