Sobald Sie eine Animation erstellt haben, müssen Sie Skripte verwenden, um sie in Ihr Spiel einzufügen. Sie können entweder Animationen manuell aus Skripten abspielen oder Standardanimationen ersetzen für Spielercharaktere.
Animationen aus Skripten abspielen
In einigen Fällen müssen Sie eine Animation direkt aus einem Skript abspielen, zum Beispiel, wenn ein Benutzer eine bestimmte Taste drückt oder einen speziellen Gegenstand aufnimmt.
Humanoide
Um eine Animation auf einem Rig, das ein Humanoid-Objekt enthält, wie typische spielbare Charaktere, abzuspielen, folgen Sie diesem grundlegenden Muster:
- Erstellen Sie eine neue Instanz von Animation mit der entsprechenden AnimationId.
- Laden Sie die Animation über Animator:LoadAnimation(), um einen AnimationTrack zu erstellen.
- Spielen Sie den Track mit AnimationTrack:Play() ab.
Zum Beispiel lädt das folgende LocalScript, wenn es in StarterPlayerScripts platziert wird, eine "Kick"-Animation auf den Charakter des Spielers und spielt sie ab. Das Skript nutzt auch die Methode GetMarkerReachedSignal(), um zu erkennen, wann ein bestimmtes Animationsereignis auftritt.
LocalScript - Benutzerspezifische Animation auf Spielercharakter abspielen
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- Stellen Sie sicher, dass das Humanoid-Objekt des Charakters ein "Animator"-Objekt enthält
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Erstellen Sie eine neue "Animation"-Instanz und weisen Sie eine Animations-Asset-ID zu
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Laden Sie die Animation auf den Animator
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Wenn ein benanntes Ereignis für die Animation definiert wurde, verbinden Sie es mit "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- Spielen Sie die Animationsspur ab
kickAnimationTrack:Play()
Nicht-Humanoide
Um Animationen auf Rigs abzuspielen, die kein Humanoid enthalten, müssen Sie eine AnimationController mit einem untergeordneten Animator erstellen. Zum Beispiel lädt das folgende Script (das als direktes Kind des Rigs angenommen wird) eine "Kick"-Animation und spielt sie ab.
Script - Benutzerdefinierte Animation auf Charakter-Rig abspielen
local rig = script.Parent
-- Erstellen Sie eine neue "Animation"-Instanz und weisen Sie eine Animations-Asset-ID zu
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Erstellen Sie einen neuen "AnimationController" und "Animator"
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- Laden Sie die Animation auf den Animator
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Wenn ein benanntes Ereignis für die Animation definiert wurde, verbinden Sie es mit "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- Spielen Sie die Animationsspur ab
kickAnimationTrack:Play()
Standardanimationen ersetzen
Standardmäßig enthalten Roblox-Spielercharaktere gängige Animationen wie Laufen, Klettern, Schwimmen und Springen. Sie können diese Standardanimationen durch Animationen aus dem Katalog oder durch Ihre 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, befolgen Sie die Anweisungen zum Exportieren.
- Kopieren Sie eine geeignete ID aus dem Kataloganimationsverweis unten. Um beispielsweise die Standardlaufanimation durch die Ninja Run-Variante zu ersetzen, verwenden Sie 656118852.
Fügen Sie im neuen Skript den folgenden Code ein:
Script - Standard-Charakteranimationen ersetzenlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Animator im Humanoid abrufenlocal 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://"--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://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)Kommentieren Sie jede Zeile, die auf eine Standard-Charakteranimation verweist, aus und fügen Sie die Ersetzungs-ID nach rbxassetid:// ein. Um beispielsweise die Standardlaufanimation in die Ninja Run-Variante zu ändern:
Script - Standard-Charakteranimationen ersetzenlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Animator im Humanoid abrufenlocal 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.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://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
Animationsgewichte festlegen
Sie können mehrere Animationen für dieselbe Aktion verwenden. Zum Beispiel gibt es zwei idle-Varianten im Codeschnipsel für das Ersetzen von Standardanimationen.
Wenn mehrere Animationen für einen Charakterzustand vorhanden sind, wählt das Animate-Skript zufällig aus, welche abgespielt werden soll, aber Sie können das Ergebnis beeinflussen, indem Sie den Weight-Wert der Animation nach dem folgenden Schema setzen:
- Animationsgewicht / Gesamtgewicht aller Zustandanimationen
Im folgenden Beispiel wird idle.Animation1 ⅓ der Zeit abgespielt, während idle.Animation2 ⅔ der Zeit abgespielt wird.
Script - Standard-Charakteranimationen ersetzenanimateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"animateScript.idle.Animation1.Weight.Value = 5animateScript.idle.Animation2.Weight.Value = 10
Animationsreferenzen
Standard-Charakteranimationen
Die folgende Tabelle enthält alle Standard-Charakteranimationen, die Sie ersetzen können, durch Katalog Animationen oder Ihre eigenen benutzerdefinierten Animationen. Beachten Sie, dass Idle zwei Varianten hat, die Sie gewichten können, um häufiger oder seltener abgespielt zu werden.
| Charakteraktion | Animate-Skriptverweis |
| Laufen | animateScript.run.RunAnim.AnimationId |
| Gehen | animateScript.walk.WalkAnim.AnimationId |
| Springen | animateScript.jump.JumpAnim.AnimationId |
| Idle | animateScript.idle.Animation1.AnimationId |
| Fallen | animateScript.fall.FallAnim.AnimationId |
| Schwimmen | animateScript.swim.Swim.AnimationId |
| Schwimmen (Idle) | animateScript.swimidle.SwimIdle.AnimationId |
| Klettern | animateScript.climb.ClimbAnim.AnimationId |
Kataloganimationen
Beim Verwenden von Avatar-Animationsbündeln zur Ersetzung von Standardanimationen verwenden Sie die folgenden Verweise für die jeweiligen Asset-IDs. Wenn Sie beispielsweise die Ninja Jump-Animation anwenden möchten, verwenden Sie 656117878. Beachten Sie, dass Idle mehrere Varianten hat.
| Astronaut | Laufen 891636393 Gehen 891636393 Springen 891627522 Idle 891621366, 891633237, 1047759695 Fallen 891617961 Schwimmen 891639666 Schwimmen (Idle) 891663592 Klettern 891609353 |
| Bubbly | Laufen 910025107 Gehen 910034870 Springen 910016857 Idle 910004836, 910009958, 1018536639 Fallen 910001910 Schwimmen 910028158 Schwimmen (Idle) 910030921 Klettern 909997997 |
| Cartoony | Laufen 742638842 Gehen 742640026 Springen 742637942 Idle 742637544, 742638445, 885477856 Fallen 742637151 Schwimmen 742639220 Schwimmen (Idle) 742639812 Klettern 742636889 |
| Elder | Laufen 845386501 Gehen 845403856 Springen 845398858 Idle 845397899, 845400520, 901160519 Fallen 845396048 Schwimmen 845401742 Schwimmen (Idle) 845403127 Klettern 845392038 |
| Ritter | Laufen 657564596 Gehen 657552124 Springen 658409194 Idle 657595757, 657568135, 885499184 Fallen 657600338 Schwimmen 657560551 Schwimmen (Idle) 657557095 Klettern 658360781 |
| Levitation | Laufen 616010382 Gehen 616013216 Springen 616008936 Idle 616006778, 616008087, 886862142 Fallen 616005863 Schwimmen 616011509 Schwimmen (Idle) 616012453 Klettern 616003713 |
| Magier | Laufen 707861613 Gehen 707897309 Springen 707853694 Idle 707742142, 707855907, 885508740 Fallen 707829716 Schwimmen 707876443 Schwimmen (Idle) 707894699 Klettern 707826056 |
| Ninja | Laufen 656118852 Gehen 656121766 Springen 656117878 Idle 656117400, 656118341, 886742569 Fallen 656115606 Schwimmen 656119721 Schwimmen (Idle) 656121397 Klettern 656114359 |
| Pirat | Laufen 750783738 Gehen 750785693 Springen 750782230 Idle 750781874, 750782770, 885515365 Fallen 750780242 Schwimmen 750784579 Schwimmen (Idle) 750785176 Klettern 750779899 |
| Robot | Laufen 616091570 Gehen 616095330 Springen 616090535 Idle 616088211, 616089559, 885531463 Fallen 616087089 Schwimmen 616092998 Schwimmen (Idle) 616094091 Klettern 616086039 |
| Rthro | Laufen 2510198475 Gehen 2510202577 Springen 2510197830 Idle 2510197257, 2510196951, 3711062489 Fallen 2510195892 Schwimmen 2510199791 Schwimmen (Idle) 2510201162 Klettern 2510192778 |
| Stylish | Laufen 616140816 Gehen 616146177 Springen 616139451 Idle 616136790, 616138447, 886888594 Fallen 616134815 Schwimmen 616143378 Schwimmen (Idle) 616144772 Klettern 616133594 |
| Superheld | Laufen 616117076 Gehen 616122287 Springen 616115533 Idle 616111295, 616113536, 885535855 Fallen 616108001 Schwimmen 616119360 Schwimmen (Idle) 616120861 Klettern 616104706 |
| Spielzeug | Laufen 782842708 Gehen 782843345 Springen 782847020 Idle 782841498, 782845736, 980952228 Fallen 782846423 Schwimmen 782844582 Schwimmen (Idle) 782845186 Klettern 782843869 |
| Vampir | Laufen 1083462077 Gehen 1083473930 Springen 1083455352 Idle 1083445855, 1083450166, 1088037547 Fallen 1083443587 Schwimmen 1083464683 Schwimmen (Idle) 1083467779 Klettern 1083439238 |
| Werwolf | Laufen 1083216690 Gehen 1083178339 Springen 1083218792 Idle 1083195517, 1083214717, 1099492820 Fallen 1083189019 Schwimmen 1083222527 Schwimmen (Idle) 1083225406 Klettern 1083182000 |
| Zombie | Laufen 616163682 Gehen 616168032 Springen 616161997 Idle 616158929, 616160636, 885545458 Fallen 616157476 Schwimmen 616165109 Schwimmen (Idle) 616166655 Klettern 616156119 |