Una volta che hai creato un'animazione, devi usare gli script per includerli nella tua esperienza.Puoi either riprodurre le animazioni manualmente da script o sostituire le animazioni predefinite per i personaggi del giocatore.
Riproduci animazioni da script
In alcuni casi, dovrai giocare un'animazione direttamente da dentro uno script, come quando un utente premere un determinato tasto o prende un Articolospeciale.
Umanoidi
Per giocare un'animazione su un rig contenente un oggetto Humanoid tipico, come i personaggi giocabili tipici, segui questo modello di base:
- Crea una nuova istanza Animation con il giusto AnimationId.
- Carica l'animazione attraverso Animator:LoadAnimation() per creare un AnimationTrack .
- Riproduci la traccia con AnimationTrack:Play() .
Ad esempio, il seguente LocalScript, quando viene posizionato in StarterPlayerScripts, carica un'animazione "Cacciato, Espulso" sul personaggio del Giocatoree la riproduce.Lo script utilizza anche il metodo per rilevare quando si verifica un evento di animazione specifico .
Script locale - Riproduci animazione personalizzata sul personaggio del giocatore
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- Assicurati che l'umanoide del personaggio contenga un oggetto "Animatore"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Crea una nuova istanza di "Animazione" e assegna un ID di risorsa di animazione
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Carica l'animazione sull'animatore
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Riproduci la traccia di animazione
kickAnimationTrack:Play()
-- Se un evento definito per l'animazioniè stato definito, connettilo a "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
Non umanoidi
Per giocare alle animazioni su rig che non contengono non contenere un Humanoid , devi creare un AnimationController con un figlio Animator .Ad esempio, il seguente Script (assumendo di essere un figlio diretto del Piattaforma di test) carica un'animazione "Cacciato, Espulso" e la riproduce.
Script - Gioca l'animazione personalizzata sul rig del personaggio
local rig = script.Parent
-- Crea una nuova istanza di "Animazione" e assegna un ID di risorsa di animazione
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Crea un nuovo "AnimationController" e "Animator"
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- Carica l'animazione sull'animatore
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Riproduci la traccia di animazione
kickAnimationTrack:Play()
-- Se un evento definito per l'animazioniè stato definito, connettilo a "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
Sostituisci le animazioni predefinite
Per impostazione predefinita, i personaggi del giocatore di Roblox includono animazioni comuni come correre, arrampicarsi, nuotare e saltare.Puoi sostituire queste animazioni predefinite con animazioni dal catalogo o con le tue proprie animazioni personalizzate.
Ottieni l'ID risorsa della nuova animazione come segue:
- Per un'animazione personalizzata costruita con l' Editor di animazione , segui le istruzioni di esportazione .
- Copia un ID appropriato dal catalogo di animazione di riferimento qui sotto.Ad esempio, per sostituire l'animazione di esecuzione predefinita con la variante Ninja Run, usa 656118852.
Nella nuova script, incolla il seguente codice:
Script - Sostituisci le animazioni di caratteri predefinitelocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Ottieni l'animatore su humanoidlocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Interrompi tutte le tracce di animazionefor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")--animateScript.Eseguire.RunAnim.AnimationId = "rbxassetid://"--animateScript.Camminata.WalkAnim.AnimationId = "rbxassetid://"--animateScript.Salta.JumpAnim.AnimationId = "rbxassetid://"--animateScript.Inattivo, Inattiva, Inattivi.Animation1.AnimationId = "rbxassetid://"--animateScript.Inattivo, Inattiva, Inattivi.Animation2.AnimationId = "rbxassetid://"--animateScript.Caduta.FallAnim.AnimationId = "rbxassetid://"--animateScript.Nuoto.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.scalata.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)Per ogni linea che fa riferimento a un'animazione di carattere predefinita >, discommentala e pasta l'ID di sostituzione dopo .Ad esempio, per cambiare l'animazione di esecuzione predefinita alla variante Ninja Run:
Script - Sostituisci le animazioni di caratteri predefinitelocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Ottieni l'animatore su humanoidlocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Interrompi tutte le tracce di animazionefor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"--animateScript.Camminata.WalkAnim.AnimationId = "rbxassetid://"--animateScript.Salta.JumpAnim.AnimationId = "rbxassetid://"--animateScript.Inattivo, Inattiva, Inattivi.Animation1.AnimationId = "rbxassetid://"--animateScript.Inattivo, Inattiva, Inattivi.Animation2.AnimationId = "rbxassetid://"--animateScript.Caduta.FallAnim.AnimationId = "rbxassetid://"--animateScript.Nuoto.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.scalata.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
Imposta i pesi dell'animazione
Puoi utilizzare più animazioni per la stessa azione.Ad esempio, ci sono due idle varianti nel campione di codice per sostituire le animazioni predefinite .
Quando esistono più animazioni per uno stato del personaggio, lo script Animate sceglie casualmente quale Giocare, ma puoi influenzare il risultato impostando il valore dell'animazione Weight sotto la seguente formula:
- peso dell'animazione / peso totale di tutte le animazioni di stato Nell'esempio seguente, idle.Animation1 giocherà ⅓ del tempo in cui il personaggio è Inattivo, Inattiva, Inattivi, mentre idle.Animation2 giocherà ⅔ del tempo.
Script - Sostituisci le animazioni di caratteri predefinite
animateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"animateScript.idle.Animation1.Weight.Value = 5animateScript.idle.Animation2.Weight.Value = 10
Riferimenti all'animazione
Animazioni di carattere predefinite
La seguente tabella contiene tutte le animazioni di carattere predefinite che puoi sostituire con animazioni di catalogo o con le tue proprie animazioni personalizzate>.Nota che Inattivo ha due varianti che puoi pesare per giocare più o meno frequentemente.
Azione del azione | Riferimento allo script di animazione |
Esegui | animateScript.run.RunAnim.AnimationId |
Cammina | animateScript.walk.WalkAnim.AnimationId |
Salta | animateScript.jump.JumpAnim.AnimationId |
Inattivo | animateScript.idle.Animation1.AnimationId``animateScript.idle.Animation2.AnimationId |
Caduta | animateScript.fall.FallAnim.AnimationId |
Nuota | animateScript.swim.Swim.AnimationId |
Nuota (Inattivo) | animateScript.swimidle.SwimIdle.AnimationId |
Scalare | animateScript.climb.ClimbAnim.AnimationId |
Animazioni del catalogo
Quando si utilizzano i pacchetti di animazione dell'avatar per sostituire le animazioni predefinite, utilizzare i seguenti riferimenti per gli ID rispettivi delle risorse.Ad esempio, se vuoi applicare l'animazione Salto Ninja, usa 656117878.Nota che Inattivo ha molteplici varianti.
Astronauta > | Esegui 891636393 Cammina 891636393 Salta 891627522 Inattivo 891621366, 891633237, 1047759695 Nuota 891617961 Nuota (Inattivo) 891663592 Nuota (Inattivo) 891609353 |
Bubbly | Esegui 910025107 Cammina 910034870 Salta 910016857 Inattivo 910004836, 910009958, 1018536639 Nuota 910001910 Nuota (Inattivo) 910030921 Nuota (Inattivo) 910030921 |
Cartoony > | Esegui 742638842 Cammina 742640026 Salta 742637942 Inattivo 742637544, 742638445, 885477856 Nuota 742637151 Nuota (Inattivo) 742639220 Nuota (Inattivo) 742636889 |
Anziano | Esegui 845386501 Cammina 845403856 Salta 845398858 Inattivo 845397899, 845400520, 901160519 Nuota 845396048 Nuota (Inattivo) 845401742 Nuota (Inattivo) 845392038 |
Cavaliere > | Esegui 657564596 Cammina 657552124 Salta 658409194 Inattivo 657595757, 657568135, 885499184 Nuota 657600338 Nuota (Inattivo) 657557095 Nuota (Inattivo) 657560781 |
Levitazione > | Esegui 616010382 Cammina 616013216 Salta 616008936 Inattivo 616006778, 616008087, 886862142 Nuota 616005863 Nuota (Inattivo) 616012453 Nuota (Inattivo) 616003713 |
Mage > | Esegui 707861613 Cammina 707897309 Salta 707853694 Inattivo 707742142, 707855907, 885508740 Nuota 707829716 Nuota (Inattivo) 707894699 Nuota (Inattivo) 707826056 |
Ninja > | Esegui 656118852 Cammina 656121766 Salta 656117878 Inattivo 656117400, 656118341, 886742569 Nuota 656115606 Nuota (Inattivo) 656121397 Nuota (Inattivo) 656119721 Nuota (Inattivo) 656121397 |
Pirata > | Esegui 750783738 Cammina 750785693 Salta 750782230 Inattivo 750781874, 750782770, 885515365 Nuota 750780242, 750782770, 885515365 Nuota (Inattivo) 750785176 Nuota (Inattivo) 750785176 Cammina 750789899 |
Robot > | Esegui 616091570 Cammina 616095330 Salta 616090535 Inattivo 616088211, 616089559, 885531463 Nuota 616087089, 616089559, 885531463 Nuota (Inattivo) 616094091 Nuota (Inattivo) 616086039 |
Rthro | Esegui 2510198475 Cammina 2510202577 Salta 2510197830 Inattivo 2510197257, 2510196951, 3711062489 Nuota 2510195892 Nuota (Inattivo) 2510201162 Nuota (Inattivo) 2510192778 |
Elegante | Esegui 616140816 Cammina 616146177 Salta 616139451 Inattivo 616136790, 616138447, 886888594 Nuota 616134815 Nuota (Inattivo) 616144772 Nuota (Inattivo) 616133594 |
Supereroe > | Esegui 616117076 Cammina 616122287 Salta 616115533 Inattivo 616111295, 616113536, 885535855 Nuota 616108001, 616113536, 885535855 Nuota (Inattivo) 616120861 Nuota (Inattivo) 616104706 |
Giocattolo | Esegui 782842708 Cammina 782843345 Salta 782847020 Inattivo 782841498, 782845736, 980952228 Nuota 782846423 Nuota (Inattivo) 782845186 Nuota (Inattivo) 782843869 |
Vampiro > | Esegui 1083462077 Cammina 1083473930 Salta 1083455352 Inattivo 1083445855, 1083450166, 1088037547 Nuota 1083443587 Nuota (Inattivo) 1083467779 Nuota (Inattivo) 1083467779 |
Lupo mannaro | Esegui 1083216690 Cammina 1083178339 Salta 1083218792 Inattivo 1083195517, 1083214717, 1099492820 Nuota 1083189019 Nuota (Inattivo) 1083222527 Nuota (Inattivo) 1083225406 Cammina (Inattivo) 1083182000 |
Zombie > | Esegui 616163682 Cammina 616168032 Salta 616161997 Inattivo 616158929, 616160636, 885545458 Nuota 616157476 Nuota (Inattivo) 616165109 Nuota (Inattivo) 616166655 Nuota (Inattivo) 616156119 |