Usa le 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 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:

  1. Assicurati che il Giocatorelocale Humanoid contenga un oggetto Animator.
  2. Crea una nuova istanza Animation con il giusto AnimationId.
  3. Carica l'animazione attraverso Animator:LoadAnimation() per creare un AnimationTrack .
  4. 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.

  1. 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.
  2. Nella finestra Explorer, aggiungi un nuovo Script a ServerScriptService .

    1. Passa il mouse su ServerScriptService e clicca il pulsante ⊕.
    2. Dal menu contestuale, inserisci un Script .
  3. Nella nuova script, incolla il seguente codice:

    Script - Sostituisci le animazioni di caratteri predefinite

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Ottieni l'animatore su humanoid
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Interrompi tutte le tracce di animazione
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local 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://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  4. 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 predefinite

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Ottieni l'animatore su humanoid
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Interrompi tutte le tracce di animazione
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local 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://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.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 = 5
animateScript.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 azioneRiferimento 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

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