Animator
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
La classe principale responsabile della riproduzione e della riproduzione di Animations . Tutta la riproduzione di giocare AnimationTracks è gestita attraverso l'esempioAnimator .
Vedi anche Editor di animazioni e Utilizzando le animazioni per imparare a creare e aggiungere le animazioni pre-costruite o personalizzate al tuo Gioco.
Sommario
Proprietà
Metodi
Calcola velocità relative tra parti e applica a Motor6D.Part1 . Questi calcoli di velocità relativi e assegnamenti avvengono nell'ordine fornito.
Restituisce la lista dei AnimationTracks in esecuzione.
Carica un Animation su un Animator , restituendo un AnimationTrack .
Aumenta il AnimationTrack.TimePosition di tutti i giocatori che sono caricati sul AnimationTracks , applicando gli incrementi ai modelli associati al Animator . Per l'uso nella barra dei comandi o dai plugin solo.
Eventi
Si attiva quando l'Animatore inizia a giocare ad AnimationTrack.
Proprietà
Metodi
ApplyJointVelocities
Data la set attuale di AnimationTracks che gioca, e le loro attuali times e play velocità, calcolare velocità relative tra le parti e applicarle a Motor6D.Part1 (la parte che Animator considera la parte "figlia"). Questi calcoli di velocità relative e applicazioni avvengono nell'ordine fornito.
Questo metodo non applica velocità per un dato joint se entrambe le parti del Articolazionesono attualmente parte della stessa assemblaggio, ad esempio, se sono ancora connessi direttamente o indirettamente da Motori o Saldature.
Questo metodo non disabilita o rimuove le articolazioni per te. Devi disabilitare o rimuovere le articolazioni rigide dall'assemblaggio prima di chiamare questo metodo.
I seguenti Motor6Ds non sono richiesti per essere discendenti del DataModel . La rimozione delle articolazioni dal DataModel prima di chiamare questo metodo è supportata.
Parametri
Restituzioni
LoadAnimation
Questa funzione carica il Animation ato su questo Animator , restituendo una animazione giocabile AnimationTrack . Quando viene chiamata su un 2>Class.Animator2> all'interno dei modelli che il client ha la proprietà di rete, ad esempio il personaggio del Giocatorelocale o dal
Dovresti usare questa funzione direttamente invece di Humanoid:LoadAnimation() e AnimationController:LoadAnimation() funzioni. Questi sono proxies obsoleti di questa funzione che crea anche un Animator se non esiste; questo può causare problemi di replicazione se non sei attento.
Caricamento di un'animazione sul client o sul server
Per assicurare che AnimationTracks venga replicato correttamente, è importante sapere quando dovrebbero essere caricati sul client o sul Server:
Se un Animator è un discendente di un Humanoid o AnimationController in un client del Giocatore, le animazioni iniziali sul client del Giocatoresaranno replicate sul server e su altri client.
Se il Animator non è un discendente di un personaggio del giocatore, le sue animazioni devono essere caricate e iniziate sul server per essere replicate.
L'oggetto Animator deve essere creato inizialmente sul server e replicato ai client per la replicazione dell'animazione per funzionare in tutti/tutte. Se un Animator viene creato localmente, allora AnimationTracks caricato con quello 2>Class.Animator2> non si replica.
Parametri
Restituzioni
StepAnimations
Aumenta il AnimationTrack.TimePosition di tutti i giocatori che sono caricati sul AnimationTracks , applicando gli incrementi ai modelli associati al Animator . Per l'uso nella barra dei comandi o dai plugin solo.
Il parametro deltaTime determina il numero di secondi per l'aggiornamento del progresso dell'animazioni. Di solito questa funzione viene chiamata in un loop per visualizzare la lunghezza di un'animazione (vedi esempio).
Nota che una volta che le animazioni hanno smesso di giocare, le articolazioni del modello dovranno essere ripristinate manualmente nelle loro posizioni originali (vedi esempio).
Questa funzione viene utilizzata per simulare il riproduzione di Animations quando il gioco non è in esecuzione. Ciò consente alle animazioni di essere visualizzate in anteprima senza le conseguenze di eseguire il Gioco, come gli script in esecuzione. Se la funzione viene chiamata mentre il gioco è in esecuzione, o da Scripts o da
Gli sviluppatori che progettano i loro own custom editor di animazione sono consigliati di utilizzare questa funzione per visualizzare le animazioni, poiché è il metodo che usa il plugin ufficiale Roblox Animation Editor.
Parametri
La quantità di tempo in secondi di animazione di riproduzione è da incrementare.
Restituzioni
Campioni di codice
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)
Eventi
AnimationPlayed
Si attiva per tutti i AnimationTrack:Play() chiamate su AnimationTracks create e proprietà dell'Animatore.