Po utworzeniu animacji musisz użyć skryptów, aby uwzględnić je w swoim doświadczeniu.Możesz albo odtwarzać animacje ręcznie z kodów lub zastąpić domyślne animacje dla postaci gracza.
Odtwarzaj animacje z kodów
W niektórych przypadkach będziesz musiał odtworzyć animację bezpośrednio z wewnątrz skryptu, na przykład, gdy użytkownik naciśnie określoną klawisz lub podniesie specjalny przedmiot.
Humanoidy
Aby odtworzyć animację na sprzęcie zawierającym obiekt Humanoid , takich jak typowe odtwarzalne postacie, postępuj zgodnie z tym podstawowym wzorem:
- Stwórz nową instancję Animation z właściwym AnimationId.
- Załaduj animację za pomocą Animator:LoadAnimation() , aby stworzyć AnimationTrack.
- Odtwórz utwór z AnimationTrack:Play().
Na przykład, następująca LocalScript, gdy umieszczona w StarterPlayerScripts, ładowuje animację "wyrzucać" na postać gracza i odtwarza ją.Skrypt wykorzystuje również metodę GetMarkerReachedSignal() do wykrycia, kiedy wystąpi określone wydarzenie animacji ..
LocalScript - Odtwarzaj 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")
-- Stwórz nową instancję "Animacji" i przypisz ID zasobu animacji
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Załaduj animację na animatorze
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Odtwórz ścieżkę animacji
kickAnimationTrack:Play()
-- Jeśli nazwane wydarzenie zostało zdefiniowane dla animacja, połącz je z "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
Nie-humanoidy
Aby odtwarzać animacje na rygach, które nie zawierają nie zawierają dziecko Humanoid , musisz utworzyć AnimationController z dzieckiem Animator.Na przykład, następująca Script (domniemana jako bezpośrednie dziecko ryg) ładowuje animację "wyrzucać" i odtwarza ją.
Skrypt - Odtwórz niestandardową animację na postaci Rig
local rig = script.Parent
-- Stwórz nową instancję "Animacji" i przypisz ID zasobu animacji
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Utwórz nowy "Animator" i "Animator"
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- Załaduj animację na animatorze
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Odtwórz ścieżkę animacji
kickAnimationTrack:Play()
-- Jeśli nazwane wydarzenie zostało zdefiniowane dla animacja, połącz je z "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
Zastąp domyślne animacje
Domyślnie postacie graczy Roblox zawierają zwykłe animacje, takie jak bieganie, wspinanie, pływanie i skakanie.Możesz zastąpić te domyślne animacje animacjami z katalogu lub własnymi animacjami niestandardowymi.
Zdobądź identyfikator zasobu nowej animacji w następujący sposób:
- Dla niestandardowej animacji zbudowanej za pomocą edytora animacji , postępuj zgodnie z instrukcjami eksportu.
W oknie Eksploratora dodaj nowy Script do ServerScriptService .
- Przejdź nad Serwerową usługę skryptową i kliknij przycisk ⊕.
- Z menu kontekstowego wstaw Skrypt .
W nowym skrypcie wklej następujący kod:
Skrypt - Zastąp domyślne animacje postacilocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Zdobądź animatora na humanoidzielocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Zatrzymaj wszystkie ścieżki animacjifor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")--animateScript.run.RunAnim.AnimationId = "rbxassetid://"--animateScript.chód.WalkAnim.AnimationId = "rbxassetid://"--animateScript.skok.JumpAnim.AnimationId = "rbxassetid://"--animateScript.bezczynność.Animacja1.ID animacji = "rbxassetid://"--animateScript.bezczynność.Animacja2.Id animacji = "rbxassetid://"--animateScript.upadek.FallAnim.AnimationId = "rbxassetid://"--animateScript.pływanie.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.wspinaczka.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)Dla każdej linii, która odnosi się do animacji domyślnego postaci , odkomentuj ją i wklej ID zastępowania po .Na przykład, aby zmienić domyślną animację uruchamiania na wariant Bieg Ninja:
Skrypt - Zastąp domyślne animacje postacilocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Zdobądź animatora na humanoidzielocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Zatrzymaj wszystkie ścieżki animacjifor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"--animateScript.chód.WalkAnim.AnimationId = "rbxassetid://"--animateScript.skok.JumpAnim.AnimationId = "rbxassetid://"--animateScript.bezczynność.Animacja1.ID animacji = "rbxassetid://"--animateScript.bezczynność.Animacja2.Id animacji = "rbxassetid://"--animateScript.upadek.FallAnim.AnimationId = "rbxassetid://"--animateScript.pływanie.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.wspinaczka.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
Ustaw wagi animacji
Możesz używać wielu animacji dla tej samej akcji.Na przykład, istnieją dwie odmiany idle w próbce kodu dla zastąpienia domyślnych animacji.
Gdy istnieją wiele animacji dla stanu postaci, skrypt Animuj losowo wybiera jedną z nich, ale możesz wpłynąć na wynik poprzez ustawienie wartości animacjapod następującą formułą:
- waga animacji / ogólna waga wszystkich animacji stanu W następnym przykładzie idle.Animation1 będzie odtwarzać ⅓ czasu, gdy postać jest bezczynność, podczas gdy idle.Animation2 będzie odtwarzać ⅔ czasu.
Skrypt - Zastąp domyślne animacje postaci
animateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"animateScript.idle.Animation1.Weight.Value = 5animateScript.idle.Animation2.Weight.Value = 10
Odwołania 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 własnymi animacjami niestandardowymi.Zauważ, że Nieaktywny ma dwie odmiany, które możesz ważyć grać częściej lub rzadziej.
Akcja akcji | Animuj odniesienie skryptu |
Wykonaj | animateScript.run.RunAnim.AnimationId |
Chód | animateScript.walk.WalkAnim.AnimationId |
Skok | animateScript.jump.JumpAnim.AnimationId |
Nieaktywny | animateScript.idle.Animation1.AnimationId``animateScript.idle.Animation2.AnimationId |
Upadek | animateScript.fall.FallAnim.AnimationId |
Pływaj | animateScript.swim.Swim.AnimationId |
Pływaj (leniwy) | animateScript.swimidle.SwimIdle.AnimationId |
Wspinaj | animateScript.climb.ClimbAnim.AnimationId |
Animacje katalogowe
Podczas używania pakietów animacji awatara do zastąpienia domyślnych animacji, użyj następujących odniesień do odpowiednich ID zasobów.Na przykład, jeśli chcesz zastosować animacjaSkok Ninja, użyj >.Zauważ, że Nieaktywny ma wiele odmian.
Astronauta > | Biegnij 891636393 Chodź 891636393 Skacz 891627522 Leniwy 891621366, 891633237, 1047759695 Pływaj 891617961 Pływaj (leniwy) 891663592 Pływaj (leniwy) 891609353 |
Bąbelkowy | Uruchom 910025107 Chodzenie 910034870 Skok 910016857 Nieaktywność 910004836, 910009958, 1018536639 Pływanie 910001910 Pływanie (nieaktywne) 910030921 Pływanie (nieaktywne) 910030921 |
Rysunkowe | Biegnij 742638842 Chodź 742640026 Skacz 742637942 Leniwy 742637544, 742638445, 885477856 Pływaj 742637151 Pływaj (leniwy) 742639220 Pływaj (leniwy) 742636889 |
Starszy | Biegnij 845386501 Chodź 845403856 Skacz 845398858 Nieaktywny 845397899, 845400520, 901160519 Pływaj 845396048 Pływaj (nieaktywny) 845401742 Pływaj (nieaktywny) 845392038 |
Rycerz > | Biegnij 657564596 Chodź 657552124 Skacz 658409194 Leniwy 657595757, 657568135, 885499184 Pływaj 657600338 Pływaj (leniwy) 657560551 Pływaj (leniwy) 657557095 |
Levitacja > | Bieg 616010382 Chód 616013216 Skok 616008936 Nieaktywność 616006778, 616008087, 886862142 Pływanie 616005863 Pływanie (nieaktywne) 616012453 Pływanie (nieaktywne) 616003713 |
Magik | Biegnij 707861613 Chodź 707897309 Skacz 707853694 Leniwy 707742142, 707855907, 885508740 Pływaj 707829716 Pływaj (leniwy) 707894699 Pływaj (leniwy) 707826056 |
Ninja > | Biegnij 656118852 Chodź 656121766 Skacz 656117878 Leniwy 656117400, 656118341, 886742569 Pływaj 656115606 Pływaj (leniwy) 656121397 Pływaj (leniwy) 656119721 |
Pirat > | Biegnij 750783738 Chodź 750785693 Skacz 750782230 Leniwy 750781874, 750782770, 885515365 Pływaj 750780242, 750782770, 885515365 Pływaj (leniwy) 750785176 Pływaj (leniwy) 750785176 |
Robot > | Biegnij 616091570 Chodź 616095330 Skacz 616090535 Nieaktywny 616088211, 616089559, 885531463 Pływaj 616087089 Pływaj (nieaktywny) 616094091 Pływaj (nieaktywny) 616086039 |
Rthro | Biegnij 2510198475 Chodź 2510202577 Skacz 2510197830 Nieaktywny 2510197257, 2510196951, 3711062489 Pływaj 2510195892 Pływaj (nieaktywny) 2510201162 Pływaj (nieaktywny) 2510192778 |
Stylowy | Biegnij 616140816 Chodź 616146177 Skacz 616139451 Leniwy 616136790, 616138447, 886888594 Pływaj 616134815 Pływaj (leniwy) 616144772 Pływaj (leniwy) 616133594 |
Superbohater | Biegnij 616117076 Chodź 616122287 Skacz 616115533 Leniwy 616111295, 616113536, 885535855 Pływaj 616108001, 616113536, 885535855 Pływaj (leniwy) 616120861 Pływaj (leniwy) 616104706 |
Zabawka | Biegnij 782842708 Chodź 782843345 Skacz 782847020 Nieaktywny 782841498, 782845736, 980952228 Pływaj 782846423 Pływaj (nieaktywny) 782845186 Pływaj (nieaktywny) 782843869 |
Wampir | Biegnij 1083462077 Chodź 1083473930 Skacz 1083455352 Leniwy 1083445855, 1083450166, 1088037547 Pływaj 1083443587 Pływaj (leniwy) 1083467779 Pływaj (leniwy) 1083467779 |
Wilkołak | Biegnij 1083216690 Chodź 1083178339 Skacz 1083218792 Leż 1083195517, 1083214717, 1099492820 Leż (Idle) 1083189019 Pływaj 1083222527 Pływaj (Idle) 1083225406 Chodź (Idle) 1083182000 |
Zombie | Biegnij 616163682 Chodź 616168032 Skacz 616161997 Leniwy 616158929, 616160636, 885545458 Pływaj 616157476 Pływaj (leniwy) 616165109 Pływaj (leniwy) 616166655 |