Animator
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
La classe principale responsable de la lecture et de la réplication de Animations .Toute réplication de lecture de AnimationTracks est gérée via l'instance Animator.
Voir aussi Éditeur d'animation et Utiliser des animations pour apprendre à créer et à ajouter des animations préconstruites ou personnalisées à votre jeu.
Résumé
Propriétés
Méthodes
Calcul des vitesses relatives entre les parties et leur application à Motor6D.Part1.Ces calculs et attributions de vitesse relative se produisent dans l'ordre fourni.
Renvoie la liste des joueurs actuellement en train de jouer AnimationTracks .
Charge un Animation sur un Animator, retournant un AnimationTrack .
Augmente le AnimationTrack.TimePosition de tout le jeu AnimationTracks qui est chargé sur le Animator, en appliquant les décalages au modèle associé au Animator.Pour l'utilisation dans la barre de commande ou par les plugins uniquement.
Évènements
S'enflamme lorsque l'animateur commence à jouer d'une piste d'animation.
Propriétés
Méthodes
ApplyJointVelocities
Étant donné le jeu actuel de AnimationTracks et leurs temps et vitesses de jeu actuels, calculez les vitesses relatives entre les parties et appliquez-les à Motor6D.Part1 (la partie qui Animator estime la partie "enfant").Ces calculs et attributions de vitesse relative se produisent dans l'ordre fourni.
Cette méthode ne s'applique pas aux vitesses pour une jointure donnée si les deux parties de la articulationfont actuellement partie de la même assemblage, par exemple, si elles sont toujours connectées directement ou indirectement par des moteurs ou des soudures.
Cette méthode ne désactive pas ou n'enlève pas les jointures pour vous.Vous devez désactiver ou autrement supprimer les jointures rigides de l'assemblage avant d'appeler cette méthode.
Les données données Motor6Ds ne sont pas requises pour être des descendants du DataModel.L'élimination des jointures de la DataModel avant d'appeler cette méthode est soutenue.
Paramètres
Retours
GetPlayingAnimationTracks
Renvoie la liste des joueurs actuellement en train de jouer AnimationTracks .
Retours
LoadAnimation
Cette fonction charge le donné Animation sur cette Animator, retournant un jouable AnimationTrack .Lorsqu'elle est appelée dans un Animator au sein de modèles auxquels le client a une propriété réseau, par exemple le personnage du joueur local ou de BasePart:SetNetworkOwner() , cette fonction charge également l'animation pour le serveur.
Notez que le Animator doit être dans le Workspace avant d'effectuer un appel à LoadAnimation() ou bien il ne pourra pas récupérer le service AnimationClipProvider et lancer une erreur.
Vous devez utiliser cette fonction directement au lieu des fonctions de nom similaire Humanoid:LoadAnimation() et AnimationController:LoadAnimation().Ce sont des proxys obsolètes de cette fonction qui créent également un Animator si on n'existe pas ; cela peut provoquer des problèmes de réplication si vous n'êtes pas prudent.
Chargement d'une animation sur le client ou le serveur
Afin que AnimationTracks se reproduise correctement, il est important de savoir quand il devrait être chargé sur le client ou sur le serveur :
Si un est un descendant d'un ou dans le client d'un joueur, les animations commencées sur ce client seront répliquées au serveur et à d'autres clients.
Si le n'est pas un descendant d'un personnage joueur, ses animations doivent être chargées et démarrées sur le serveur pour se reproduire.
L'objet Animator doit être créé initialement sur le serveur et répliqué aux clients pour que la réplication d'animation fonctionne du tout.Si un Animator est créé localement, alors AnimationTracks chargé avec ce Animator ne se reproduira pas.
Paramètres
Retours
StepAnimations
Augmente le AnimationTrack.TimePosition de tout le jeu AnimationTracks qui est chargé sur le Animator, en appliquant les décalages au modèle associé au Animator.Pour l'utilisation dans la barre de commande ou par les plugins uniquement.
Le paramètre deltaTime détermine le nombre de secondes à augmenter sur la progression de l'animations.Typiquement, cette fonction sera appelée dans une boucle pour prévisualiser la longueur d'une animation (voir exemple).
Remarquez que une fois que les animations ont cessé de jouer, les articulations du modèlisationdevront être réinitialisées manuellement à leurs positions d'origine (voir exemple).
Cette fonction est utilisée pour simuler la lecture de Animations lorsque le jeu n'est pas en cours d'exécution.Cela permet d'apercevoir des animations sans les conséquences de l'exécution du jeu, telles que l'exécution de scripts.Si la fonction est appelée pendant que le jeu est en cours d'exécution, ou par Scripts ou LocalScripts, elle renvoie une erreur.
Les développeurs qui conçoivent leurs propres éditeurs d'animation personnalisés sont invités à utiliser cette fonction pour prévisualiser les animations, car c'est la méthode que l'éditeur d'animation officiel Roblox utilise.
Paramètres
La quantité de temps en secondes de lecture d'animation doit être augmentée.
Retours
Échantillons de code
This code sample includes a function that can be used to preview an Animation on a Model in Roblox Studio, without needing to run the game. It utilizes the Animator.StepAnimations function, which is the same method the official Roblox Animation Editor uses.
local RunService = game:GetService("RunService")
local function studioPreviewAnimation(model, animation)
-- find the AnimationController and Animator
local animationController = model:FindFirstChildOfClass("Humanoid")
or model:FindFirstChildOfClass("AnimationController")
local animator = animationController and animationController:FindFirstChildOfClass("Animator")
if not animationController or not animator then
return
end
-- load the Animation to create an AnimationTrack
local track = animationController:LoadAnimation(animation)
track:Play()
-- preview the animation
local startTime = tick()
while (tick() - startTime) < track.Length do
local step = RunService.Heartbeat:wait()
animator:StepAnimations(step)
end
-- stop the animation
track:Stop(0)
animator:StepAnimations(0)
-- reset the joints
for _, descendant in pairs(model:GetDescendants()) do
if descendant:IsA("Motor6D") then
local joint = descendant
joint.CurrentAngle = 0
joint.Transform = CFrame.new()
end
end
end
local character = script.Parent
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
studioPreviewAnimation(character, animation)
Évènements
AnimationPlayed
Feux pour tous les appels AnimationTrack:Play() des animations créées et possédées par l'animateur.