Utilizzare animazioni

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Una volta che hai creato un'animazione, devi usare degli script per includerle nel tuo gioco. Puoi riprodurre animazioni manualmente dagli script o sostituire le animazioni predefinite per i personaggi dei giocatori.

Riprodurre animazioni dagli script

In alcuni casi, è necessario riprodurre un'animazione direttamente all'interno di uno script, ad esempio quando un utente preme un tasto specifico o raccoglie un oggetto speciale.

Umani

Per riprodurre un'animazione su un rig contenente un oggetto Humanoid, come i tipici personaggi giocabili, seguire questo schema di base:

  1. Assicurati che il Humanoid del giocatore locale contenga un oggetto Animator.
  2. Crea una nuova istanza di Animation con il corretto AnimationId.
  3. Carica l'animazione tramite Animator:LoadAnimation() per creare un AnimationTrack.
  4. Riproduci il brano con AnimationTrack:Play().

Ad esempio, il seguente LocalScript, quando posizionato in StarterPlayerScripts, carica un'animazione "calcio" sul personaggio del giocatore e la riproduce. Lo script utilizza anche il metodo GetMarkerReachedSignal() per rilevare quando si verifica un evento di animazione specifico.

LocalScript - 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 il "humanoid" del personaggio contenga un oggetto "Animator"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Crea una nuova istanza di "Animation" e assegna un ID di asset dell'animazione
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Carica l'animazione sull'animatore
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Se è stato definito un evento nominato per l'animazione, collegalo a "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- Riproduci il brano dell'animazione
kickAnimationTrack:Play()

Non-umani

Per riprodurre animazioni su rig che non contengono un Humanoid, devi creare un AnimationController con un Animator figlio. Ad esempio, il seguente Script (presunto essere un figlio diretto del rig) carica un'animazione "calcio" e la riproduce.

Script - Riproduci Animazione Personalizzata sul Rig del Personaggio

local rig = script.Parent
-- Crea una nuova istanza di "Animation" e assegna un ID di asset dell'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)
-- Se è stato definito un evento nominato per l'animazione, collegalo a "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- Riproduci il brano dell'animazione
kickAnimationTrack:Play()

Sostituire le animazioni predefinite

Per impostazione predefinita, i personaggi dei giocatori di Roblox includono animazioni comuni come correre, arrampicarsi, nuotare e saltare. Puoi sostituire queste animazioni predefinite con animazioni del catalogo o con le tue animazioni personalizzate.

  1. Ottieni l'ID dell'asset della nuova animazione come segue:

  2. Nella finestra Esplora, aggiungi un nuovo Script a ServerScriptService.

    1. Passa il mouse su ServerScriptService e fai clic sul pulsante ⊕.
    2. Dal menu contestuale, inserisci uno Script.
  3. Nel nuovo script, incolla il seguente codice:

    Script - Sostituire le Animazioni Predefinite del Personaggio

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Ottieni l'animatore sul humanoid
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Ferma tutti i brani delle animazioni
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local animateScript = character:WaitForChild("Animate")
    --animateScript.run.RunAnim.AnimationId = "rbxassetid://"
    --animateScript.walk.WalkAnim.AnimationId = "rbxassetid://"
    --animateScript.jump.JumpAnim.AnimationId = "rbxassetid://"
    --animateScript.idle.Animation1.AnimationId = "rbxassetid://"
    --animateScript.idle.Animation2.AnimationId = "rbxassetid://"
    --animateScript.fall.FallAnim.AnimationId = "rbxassetid://"
    --animateScript.swim.Swim.AnimationId = "rbxassetid://"
    --animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"
    --animateScript.climb.ClimbAnim.AnimationId = "rbxassetid://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  4. Per ogni riga che fa riferimento a un'animazione predefinita del personaggio, decommenta e incolla l'ID di sostituzione dopo rbxassetid://. Ad esempio, per cambiare l'animazione di corsa predefinita nella variante Ninja Run:

    Script - Sostituire le Animazioni Predefinite del Personaggio

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Ottieni l'animatore sul humanoid
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Ferma tutti i brani delle animazioni
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local animateScript = character:WaitForChild("Animate")
    animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"
    --animateScript.walk.WalkAnim.AnimationId = "rbxassetid://"
    --animateScript.jump.JumpAnim.AnimationId = "rbxassetid://"
    --animateScript.idle.Animation1.AnimationId = "rbxassetid://"
    --animateScript.idle.Animation2.AnimationId = "rbxassetid://"
    --animateScript.fall.FallAnim.AnimationId = "rbxassetid://"
    --animateScript.swim.Swim.AnimationId = "rbxassetid://"
    --animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"
    --animateScript.climb.ClimbAnim.AnimationId = "rbxassetid://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)

Impostare i pesi delle animazioni

Puoi usare più animazioni per la stessa azione. Ad esempio, ci sono due variazioni di idle nel campione di codice per sostituire le animazioni predefinite.

Quando esistono più animazioni per uno stato del personaggio, lo script Animate sceglie casualmente quale riprodurre, ma puoi influenzare il risultato impostando il valore Weight dell'animazione secondo la seguente formula:

  • peso dell'animazione / peso totale di tutte le animazioni statali

Nel seguente esempio, idle.Animation1 verrà riprodotto ⅓ delle volte in cui il personaggio è inattivo, mentre idle.Animation2 verrà riprodotto ⅔ delle volte.

Script - Sostituire le Animazioni Predefinite del Personaggio

animateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"
animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"
animateScript.idle.Animation1.Weight.Value = 5
animateScript.idle.Animation2.Weight.Value = 10

Riferimenti sulle animazioni

Animazioni predefinite del personaggio

La seguente tabella contiene tutte le animazioni predefinite del personaggio che puoi sostituire con animazioni del catalogo o le tue animazioni personalizzate. Nota che Idle ha due variazioni che puoi pesare per riprodurre più o meno frequentemente.

Azioni del personaggioRiferimento allo script Animate
CorsaanimateScript.run.RunAnim.AnimationId
CamminareanimateScript.walk.WalkAnim.AnimationId
SaltareanimateScript.jump.JumpAnim.AnimationId
Inattivo

animateScript.idle.Animation1.AnimationId
animateScript.idle.Animation2.AnimationId

CadereanimateScript.fall.FallAnim.AnimationId
Nuotare

animateScript.swim.Swim.AnimationId

Nuotare (Inattivo)

animateScript.swimidle.SwimIdle.AnimationId

ArrampicarsianimateScript.climb.ClimbAnim.AnimationId

Quando usi pacchetti di animazione avatar per sostituire le animazioni predefinite, usa i seguenti riferimenti per gli ID degli asset rispettivi. Ad esempio, se vuoi applicare l'animazione Ninja Jump, usa 656117878. Nota che Idle ha più variazioni.

Astronauta
Corsa
891636393
Camminare
891636393
Saltare
891627522
Inattivo
891621366, 891633237, 1047759695
Cadere
891617961
Nuotare
891639666
Nuotare (Inattivo)
891663592
Arrampicarsi
891609353
Frizzante
Corsa
910025107
Camminare
910034870
Saltare
910016857
Inattivo
910004836, 910009958, 1018536639
Cadere
910001910
Nuotare
910028158
Nuotare (Inattivo)
910030921
Arrampicarsi
909997997
Cartoon
Corsa
742638842
Camminare
742640026
Saltare
742637942
Inattivo
742637544, 742638445, 885477856
Cadere
742637151
Nuotare
742639220
Nuotare (Inattivo)
742639812
Arrampicarsi
742636889
Anziano
Corsa
845386501
Camminare
845403856
Saltare
845398858
Inattivo
845397899, 845400520, 901160519
Cadere
845396048
Nuotare
845401742
Nuotare (Inattivo)
845403127
Arrampicarsi
845392038
Cavaliere
Corsa
657564596
Camminare
657552124
Saltare
658409194
Inattivo
657595757, 657568135, 885499184
Cadere
657600338
Nuotare
657560551
Nuotare (Inattivo)
657557095
Arrampicarsi
658360781
Levitazione
Corsa
616010382
Camminare
616013216
Saltare
616008936
Inattivo
616006778, 616008087, 886862142
Cadere
616005863
Nuotare
616011509
Nuotare (Inattivo)
616012453
Arrampicarsi
616003713
Mago
Corsa
707861613
Camminare
707897309
Saltare
707853694
Inattivo
707742142, 707855907, 885508740
Cadere
707829716
Nuotare
707876443
Nuotare (Inattivo)
707894699
Arrampicarsi
707826056
Ninja
Corsa
656118852
Camminare
656121766
Saltare
656117878
Inattivo
656117400, 656118341, 886742569
Cadere
656115606
Nuotare
656119721
Nuotare (Inattivo)
656121397
Arrampicarsi
656114359
Pirata
Corsa
750783738
Camminare
750785693
Saltare
750782230
Inattivo
750781874, 750782770, 885515365
Cadere
750780242
Nuotare
750784579
Nuotare (Inattivo)
750785176
Arrampicarsi
750779899
Robot
Corsa
616091570
Camminare
616095330
Saltare
616090535
Inattivo
616088211, 616089559, 885531463
Cadere
616087089
Nuotare
616092998
Nuotare (Inattivo)
616094091
Arrampicarsi
616086039
Rthro
Corsa
2510198475
Camminare
2510202577
Saltare
2510197830
Inattivo
2510197257, 2510196951, 3711062489
Cadere
2510195892
Nuotare
2510199791
Nuotare (Inattivo)
2510201162
Arrampicarsi
2510192778
Elegante
Corsa
616140816
Camminare
616146177
Saltare
616139451
Inattivo
616136790, 616138447, 886888594
Cadere
616134815
Nuotare
616143378
Nuotare (Inattivo)
616144772
Arrampicarsi
616133594
Supereroe
Corsa
616117076
Camminare
616122287
Saltare
616115533
Inattivo
616111295, 616113536, 885535855
Cadere
616108001
Nuotare
616119360
Nuotare (Inattivo)
616120861
Arrampicarsi
616104706
Giocattolo
Corsa
782842708
Camminare
782843345
Saltare
782847020
Inattivo
782841498, 782845736, 980952228
Cadere
782846423
Nuotare
782844582
Nuotare (Inattivo)
782845186
Arrampicarsi
782843869
Vampiro
Corsa
1083462077
Camminare
1083473930
Saltare
1083455352
Inattivo
1083445855, 1083450166, 1088037547
Cadere
1083443587
Nuotare
1083464683
Nuotare (Inattivo)
1083467779
Arrampicarsi
1083439238
Lupo Mannaro
Corsa
1083216690
Camminare
1083178339
Saltare
1083218792
Inattivo
1083195517, 1083214717, 1099492820
Cadere
1083189019
Nuotare
1083222527
Nuotare (Inattivo)
1083225406
Arrampicarsi
1083182000
Zombie
Corsa
616163682
Camminare
616168032
Saltare
616161997
Inattivo
616158929, 616160636, 885545458
Cadere
616157476
Nuotare
616165109
Nuotare (Inattivo)
616166655
Arrampicarsi
616156119
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.