Sobald du eine Animation erstellt hast, musst du Skripte verwenden, um sie in dein Erlebnis einzubeziehen.Du kannst entweder Spielanimationen manuell abspielen von Skripten oder Standard-Animationen für Spielercharaktere ersetzen.
Spiele Animationen aus Skripten
In einigen Fällen musst du eine Animation direkt aus einem Skript, das. PL: die Skriptsabspielen, z. B. wenn ein Benutzer eine bestimmte Taste drückt oder ein spezielles Artikelaufnimmt.
Menschenoiden
Um eine Animation auf einem Rig mit einem Humanoid -Objekt zu spielen, wie typische spielbare Charaktere, folgen Sie diesem grundlegenden Muster:
- Erstellen Sie eine neue Instanz mit der richtigen >.
- Lade die Animation über Animator:LoadAnimation() , um eine AnimationTrack zu erstellen.
- Spiele die Strecke mit AnimationTrack:Play() .
Zum Beispiel lädt die folgende LocalScript, wenn sie in StarterPlayerScripts platziert wird, eine "kicken"-Animation auf den Charakter des Spieler:inund spielt sie ab.Das Skript nutzt auch die GetMarkerReachedSignal() -Methode, um zu erkennen, wann ein bestimmtes Animationsereignis auftritt.
LocalScript - Spielen Sie benutzerdefinierte Animation auf Spielercharakter
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- Stellen Sie sicher, dass der Humanoid des Charakters ein "Animator"-Objekt enthält
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Erstelle eine neue "Animation"-Instanz und weise eine Animations-Asset-ID zu
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Lade die Animation auf den Animator
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Spiele die Animationsspur ab
kickAnimationTrack:Play()
-- Wenn ein benanntes Ereignis für die Animationendefiniert wurde, verbinden Sie es mit "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
Nicht-Humanoide
Um Animationen auf Ringen zu spielen, die keine enthalten und einen Humanoid enthalten, musst du einen AnimationController mit einem Kind Animator erstellen.Zum Beispiel lädt die folgende Script (vermutlich ein direktes Kind des Rigs) eine "kicken"-Animation und spielt sie ab.
Skript - Spiele benutzerdefinierte Animation auf Charakter-Rig
local rig = script.Parent
-- Erstelle eine neue "Animation"-Instanz und weise eine Animations-Asset-ID zu
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Erstelle einen neuen "AnimationController" und "Animator"
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- Lade die Animation auf den Animator
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Spiele die Animationsspur ab
kickAnimationTrack:Play()
-- Wenn ein benanntes Ereignis für die Animationendefiniert wurde, verbinden Sie es mit "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
Standard-Animationen ersetzen
Standardmäßig enthalten Roblox-Spielercharaktere gewöhnliche Animationen wie Laufen, Klettern, Schwimmen und Springen.Du kannst diese Standard-Animationen durch Animationen aus dem Katalog oder mit deinen eigenen benutzerdefinierten Animationen ersetzen.
Erhalten Sie die Asset-ID der neuen Animation wie folgt:
- Für eine benutzerdefinierte Animation, die mit dem Animations-Editor erstellt wurde, folgen Sie den Export-Anweisungen.
- Kopiere eine geeignete ID aus der Katalog-Animationsreferenz unten.Zum Beispiel, um die Standard-Laufanimation durch die Ninja-Lauf-Variante zu ersetzen, verwende 656118852.
Füge im neuen Skript, das. PL: die Skriptsden folgenden Codesein:
Skript - Ersetzen der Standardcharakteranimationenlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Animator auf humanoid bekommenlocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Alle Animationsspuren stoppenfor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")--animateScript.ausführen.RunAnim.AnimationId = "rbxassetid://"--animateScript.Gehen.WalkAnim.AnimationId = "rbxassetid://"--animierteScript.springen.JumpAnim.AnimationId = "rbxassetid://"--animateScript.untätig.Animation1.AnimationId = "rbxassetid://"--animateScript.untätig.Animation2.AnimationId = "rbxassetid://"--animierteScript.Fallen.FallAnim.AnimationId = "rbxassetid://"--animateScript.schwimmen.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animierteScript.klettern.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)Für jede Zeile, die eine Standard-Charakter-Animation referenziert , dekommentiere sie und füge die Ersatz-ID nach ein.Zum Beispiel, um die Standard-Laufanimation auf die Ninja-Lauf-Variante zu ändern:
Skript - Ersetzen der Standardcharakteranimationenlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Animator auf humanoid bekommenlocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Alle Animationsspuren stoppenfor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"--animateScript.Gehen.WalkAnim.AnimationId = "rbxassetid://"--animierteScript.springen.JumpAnim.AnimationId = "rbxassetid://"--animateScript.untätig.Animation1.AnimationId = "rbxassetid://"--animateScript.untätig.Animation2.AnimationId = "rbxassetid://"--animierteScript.Fallen.FallAnim.AnimationId = "rbxassetid://"--animateScript.schwimmen.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animierteScript.klettern.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
Animationengewichte festlegen
Du kannst mehrere Animationen für die gleiche Actionverwenden.Zum Beispiel gibt es zwei idle Variationen im Code-Beispiel für Ersetzung der Standard-Animationen.
Wenn mehrere Animationen für einen Charakterzustand existieren, wählt das Animieren -Skript zufällig eine aus, aber du kannst das Ergebnis beeinflussen, indem du den Animationen-Wert Weight unter der folgenden Formel festlegst:
- animationsgewicht / gesamtgewicht aller zustandsanimationen Im folgenden Beispiel wird idle.Animation1 ⅔ der Zeit spielen, in der der Charakter untätig ist, während idle.Animation2 ⅔ der Zeit spielen wird.
Skript - Ersetzen der Standardcharakteranimationen
animateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"animateScript.idle.Animation1.Weight.Value = 5animateScript.idle.Animation2.Weight.Value = 10
Animationsbezüge
Standard-Charakter-Animationen
Die folgende Tabelle enthält alle Standardcharakteranimationen, die du ersetzen kannst, durch Kataloganimationen oder deine eigenen benutzerdefinierten Animationen.Beachten Sie, dass Leerlauf zwei Variationen hat, die Sie gewichten können, um mehr oder weniger häufig zu spielen.
Action | Animierte Skript-Referenz |
Ausführen | animateScript.run.RunAnim.AnimationId |
Gehen | animateScript.walk.WalkAnim.AnimationId |
Springen | animateScript.jump.JumpAnim.AnimationId |
Leerlauf | animateScript.idle.Animation1.AnimationId``animateScript.idle.Animation2.AnimationId |
Sturz | animateScript.fall.FallAnim.AnimationId |
Schwimmen | animateScript.swim.Swim.AnimationId |
Schwimmen (Leerlauf) | animateScript.swimidle.SwimIdle.AnimationId |
Klettern | animateScript.climb.ClimbAnim.AnimationId |
Kataloganimationen
Wenn du Avatar-Animations-Bündel verwendest, um Standard-Animationen zu ersetzen, verwende die folgenden Referenzen für die jeweiligen Asset-IDs.Wenn du beispielsweise die Ninja-Sprung-Animation anwenden möchtest, verwende 656117878.Beachten Sie, dass Leerlauf mehrere Variationen hat.
Astronaut > | Laufen 891636393 Gehen 891636393 Springen 891627522 Leerlauf 891621366, 891633237, 1047759695 Leerlauf (Leerlauf) 891617966, 891633237, 1047759695 Schwimmen 891639666 Schwimmen (Leerlauf) 891663592 |
Kohlensäure | Laufen 910025107 Gehen 910034870 Springen 910016857 Leerlauf 910004836, 910009958, 1018536639 Fallen 910001910 Schwimmen 910028158 Schwimmen (Leerlauf) 910030921 |
Karikatur | Laufen 742638842 Gehen 742640026 Springen 742637942 Leerlauf 742637544, 742638445, 885477856 Schlafen 742637151 Schwimmen 742639220 Schwimmen (Leerlauf) 742639812 |
Älteste | Laufen 845386501 Gehen 845403856 Springen 845398858 Leerlauf 845397899, 845400520, 901160519 Schlafen 845396048 Schwimmen 845401742 Schwimmen (Leerlauf) 845392038 |
Ritter > | Laufen 657564596 Gehen 657552124 Springen 658409194 Leerlauf 657595757, 657568135, 885499184 Schlafen 657600338 Schwimmen 657560551 Schwimmen (Leerlauf) 657557095 |
Levitation > | Laufen 616010382 Gehen 616013216 Springen 616008936 Leerlauf 616006778, 616008087, 886862142 Fallen 616005863 Schwimmen 616011509 Schwimmen (Leerlauf) 616012453 |
Magier | Laufen 707861613 Gehen 707897309 Springen 707853694 Leerlauf 707742142, 707855907, 885508740 Schlafen 707829716 Schwimmen 707876443 Schwimmen (Leerlauf) 707894699 |
Ninja > | Laufen 656118852 Gehen 656121766 Springen 656117878 Leerlauf 656117400, 656118341, 886742569 Leerlauf 656115606 Schwimmen 656119721 Schwimmen (Leerlauf) 656121397 |
Pirat > | Laufen 750783738 Gehen 750785693 Springen 750782230 Leerlauf 750781874, 750782770, 885515365 Leerlauf (Leerlauf) 750780242, 750782770, 885515365 Schwimmen 750784579 Schwimmen (Leerlauf) 750785176 |
Roboter | Laufen 616091570 Gehen 616095330 Springen 616090535 Leerlauf 616088211, 616089559, 885531463 Schlafen 616087089 Schwimmen 616092998 Schwimmen (Leerlauf) 616094091 |
Rthro | Laufen 2510198475 Gehen 2510202577 Springen 2510197830 Leerlauf 2510197257, 2510196951, 3711062489 Leerlauf (Leerlauf) 2510195892 Schwimmen 2510199791 Schwimmen (Leerlauf) 2510201162 |
Modisch | Laufen 616140816 Gehen 616146177 Springen 616139451 Leerlauf 616136790, 616138447, 886888594 Schlafen 616134815 Schwimmen 616143378 Schwimmen (Leerlauf) 616144772 |
Superheld | Laufen 616117076 Gehen 616122287 Springen 616115533 Leerlauf 616111295, 616113536, 885535855 Schlafen 616108001, 616113536, 885535855 Schwimmen 616119360 Schwimmen (Leerlauf) 616120861 |
Spielzeug > | Laufen 782842708 Gehen 782843345 Springen 782847020 Leerlauf 782841498, 782845736, 980952228 Fallen 782846423 Schwimmen 782844582 Schwimmen (Leerlauf) 782845186 |
Vampir | Laufen 1083462077 Gehen 1083473930 Springen 1083455352 Leerlauf 1083445855, 1083450166, 1088037547 Schlafen 1083443587 Schwimmen 1083464683 Schwimmen (Leerlauf) 1083467779 |
Werwolf | Laufen 1083216690 Gehen 1083178339 Springen 1083218792 Leerlauf 1083195517, 1083214717, 1099492820 Schlafen 1083189019 Schwimmen 1083222527 Schwimmen (Leerlauf) 1083225406 |
Zombie | Laufen 616163682 Gehen 616168032 Springen 616161997 Leerlauf 616158929, 616160636, 885545458 Fallen 616157476 Schwimmen 616165109 Schwimmen (Leerlauf) 616166655 Klettern 616156119 |