Używanie animacji

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Gdy już utworzysz animację, musisz użyć skryptów, aby włączyć je do swojego doświadczenia. Możesz albo odtwarzać animacje ręcznie z poziomu skryptów, albo zastąpić domyślne animacje dla postaci graczy.

Odtwarzanie animacji ze skryptów

W niektórych przypadkach będziesz musiał odtwarzać animację bezpośrednio z poziomu skryptu, na przykład, gdy użytkownik naciśnie określony klawisz lub podniesie specjalny przedmiot.

Humanoidy

Aby odtworzyć animację na sztywnej postaci zawierającej obiekt Humanoid, taki jak typowe postacie graczy, postępuj zgodnie z tym podstawowym schematem:

  1. Upewnij się, że Humanoid lokalnego gracza zawiera obiekt Animator.
  2. Utwórz nową instancję Animation z odpowiednim AnimationId.
  3. Załaduj animację za pomocą Animator:LoadAnimation(), aby utworzyć AnimationTrack.
  4. Odtwórz ścieżkę za pomocą AnimationTrack:Play().

Na przykład, poniższy LocalScript, umieszczony w StarterPlayerScripts, ładuje animację "kopnięcia" na postać gracza i ją odtwarza. Skrypt wykorzystuje również metodę GetMarkerReachedSignal(), aby wykryć, kiedy wystąpi określone zdarzenie animacji.

LocalScript - Odtwórz niestandardową animację na postaci gracza

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- Upewnij się, że humanoid postaci zawiera obiekt "Animator"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Utwórz nową instancję "Animation" i przypisz identyfikator zasobu animacji
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Załaduj animację na animatora
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Jeśli zdefiniowano nazwane zdarzenie dla animacji, połącz je z "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- Odtwórz ścieżkę animacji
kickAnimationTrack:Play()

Niehumanoidy

Aby odtworzyć animacje na sztywnych postaciach, które nie zawierają Humanoid, musisz utworzyć AnimationController z dzieckiem Animator. Na przykład, poniższy Script (zakładany jako bezpośrednie dziecko sztywnej postaci) ładuje animację "kopnięcia" i ją odtwarza.

Script - Odtwórz niestandardową animację na sztywnym modelu postaci

local rig = script.Parent
-- Utwórz nową instancję "Animation" i przypisz identyfikator zasobu animacji
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Utwórz nowy "AnimationController" i "Animator"
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- Załaduj animację na animatora
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Jeśli zdefiniowano nazwane zdarzenie dla animacji, połącz je z "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- Odtwórz ścieżkę animacji
kickAnimationTrack:Play()

Zastępowanie domyślnych animacji

Domyślnie postacie graczy w Robloxie zawierają powszechne animacje, takie jak bieganie, wspinanie się, pływanie i skakanie. Możesz zastąpić te domyślne animacje animacjami z katalogu lub swoimi własnymi niestandardowymi animacjami.

  1. Uzyskaj identyfikator zasobu nowej animacji w następujący sposób:

  2. W oknie Explorer dodaj nowy Script do ServerScriptService.

    1. Najedź na ServerScriptService i kliknij przycisk ⊕.
    2. Z menu kontekstowego wstaw Script.
  3. W nowym skrypcie wklej następujący kod:

    Script - Zastąp Domyślne Animacje Postaci

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Uzyskaj animatora na humanoidzie
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Zatrzymaj wszystkie ścieżki animacji
    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. Dla każdej linii, która odnosi się do domyślnej animacji postaci, odkomentuj ją i wklej identyfikator zastępujący po rbxassetid://. Na przykład, aby zmienić domyślną animację biegu na wariant Ninja Run:

    Script - Zastąp Domyślne Animacje Postaci

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Uzyskaj animatora na humanoidzie
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Zatrzymaj wszystkie ścieżki animacji
    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)

Ustawianie wag animacji

Możesz używać wielu animacji dla tej samej akcji. Na przykład w próbce kodu dotyczącej zastępowania domyślnych animacji istnieją dwie wariacje idle.

Gdy istnieje wiele animacji dla stanu postaci, skrypt Animate losowo wybiera, którą odtworzyć, ale możesz wpłynąć na wynik, ustawiając wartość Weight animacji według następującego wzoru:

  • waga animacji / całkowita waga wszystkich animacji stanu

W poniższym przykładzie idle.Animation1 będzie odtwarzana ⅓ czasu, gdy postać jest w stanie bezruchu, podczas gdy idle.Animation2 będzie odtwarzana ⅔ czasu.

Script - Zastąp Domyślne Animacje Postaci

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

Odniesienia do animacji

Domyślne animacje postaci

Poniższa tabela zawiera wszystkie domyślne animacje postaci, które możesz zastąpić animacjami z katalogu lub swoimi własnymi niestandardowymi animacjami. Zauważ, że Idle ma dwie wariacje, które możesz ważyć, aby odtwarzać je częściej lub rzadziej.

Akcja postaciOdwołanie skryptu animacji
BieganimateScript.run.RunAnim.AnimationId
ChodzenieanimateScript.walk.WalkAnim.AnimationId
SkokanimateScript.jump.JumpAnim.AnimationId
Idle

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

UpadekanimateScript.fall.FallAnim.AnimationId
PływanieanimateScript.swim.Swim.AnimationId
Pływanie (Idle)animateScript.swimidle.SwimIdle.AnimationId
Wspinanie sięanimateScript.climb.ClimbAnim.AnimationId

Animacje z katalogu

Korzystając z zestawów animacji awatara, aby zastąpić domyślne animacje, użyj następujących odniesień dla odpowiednich identyfikatorów zasobów. Na przykład, jeśli chcesz zastosować animację Ninja Jump, użyj 656117878. Zauważ, że Idle ma wiele wariacji.

Astronaut
Bieg
891636393
Chodzenie
891636393
Skok
891627522
Idle
891621366, 891633237, 1047759695
Upadek
891617961
Pływanie
891639666
Pływanie (Idle)
891663592
Wspinanie się
891609353
Bubbly
Bieg
910025107
Chodzenie
910034870
Skok
910016857
Idle
910004836, 910009958, 1018536639
Upadek
910001910
Pływanie
910028158
Pływanie (Idle)
910030921
Wspinanie się
909997997
Cartoony
Bieg
742638842
Chodzenie
742640026
Skok
742637942
Idle
742637544, 742638445, 885477856
Upadek
742637151
Pływanie
742639220
Pływanie (Idle)
742639812
Wspinanie się
742636889
Elder
Bieg
845386501
Chodzenie
845403856
Skok
845398858
Idle
845397899, 845400520, 901160519
Upadek
845396048
Pływanie
845401742
Pływanie (Idle)
845403127
Wspinanie się
845392038
Knight
Bieg
657564596
Chodzenie
657552124
Skok
658409194
Idle
657595757, 657568135, 885499184
Upadek
657600338
Pływanie
657560551
Pływanie (Idle)
657557095
Wspinanie się
658360781
Levitation
Bieg
616010382
Chodzenie
616013216
Skok
616008936
Idle
616006778, 616008087, 886862142
Upadek
616005863
Pływanie
616011509
Pływanie (Idle)
616012453
Wspinanie się
616003713
Mage
Bieg
707861613
Chodzenie
707897309
Skok
707853694
Idle
707742142, 707855907, 885508740
Upadek
707829716
Pływanie
707876443
Pływanie (Idle)
707894699
Wspinanie się
707826056
Ninja
Bieg
656118852
Chodzenie
656121766
Skok
656117878
Idle
656117400, 656118341, 886742569
Upadek
656115606
Pływanie
656119721
Pływanie (Idle)
656121397
Wspinanie się
656114359
Pirate
Bieg
750783738
Chodzenie
750785693
Skok
750782230
Idle
750781874, 750782770, 885515365
Upadek
750780242
Pływanie
750784579
Pływanie (Idle)
750785176
Wspinanie się
750779899
Robot
Bieg
616091570
Chodzenie
616095330
Skok
616090535
Idle
616088211, 616089559, 885531463
Upadek
616087089
Pływanie
616092998
Pływanie (Idle)
616094091
Wspinanie się
616086039
Rthro
Bieg
2510198475
Chodzenie
2510202577
Skok
2510197830
Idle
2510197257, 2510196951, 3711062489
Upadek
2510195892
Pływanie
2510199791
Pływanie (Idle)
2510201162
Wspinanie się
2510192778
Stylish
Bieg
616140816
Chodzenie
616146177
Skok
616139451
Idle
616136790, 616138447, 886888594
Upadek
616134815
Pływanie
616143378
Pływanie (Idle)
616144772
Wspinanie się
616133594
Superbohater
Bieg
616117076
Chodzenie
616122287
Skok
616115533
Idle
616111295, 616113536, 885535855
Upadek
616108001
Pływanie
616119360
Pływanie (Idle)
616120861
Wspinanie się
616104706
Zabawka
Bieg
782842708
Chodzenie
782843345
Skok
782847020
Idle
782841498, 782845736, 980952228
Upadek
782846423
Pływanie
782844582
Pływanie (Idle)
782845186
Wspinanie się
782843869
Wampir
Bieg
1083462077
Chodzenie
1083473930
Skok
1083455352
Idle
1083445855, 1083450166, 1088037547
Upadek
1083443587
Pływanie
1083464683
Pływanie (Idle)
1083467779
Wspinanie się
1083439238
Wilkołak
Bieg
1083216690
Chodzenie
1083178339
Skok
1083218792
Idle
1083195517, 1083214717, 1099492820
Upadek
1083189019
Pływanie
1083222527
Pływanie (Idle)
1083225406
Wspinanie się
1083182000
Zombie
Bieg
616163682
Chodzenie
616168032
Skok
616161997
Idle
616158929, 616160636, 885545458
Upadek
616157476
Pływanie
616165109
Pływanie (Idle)
616166655
Wspinanie się
616156119
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.