Setelah Anda membuat sebuah animasi, Anda perlu menggunakan skrip untuk menyertakannya dalam permainan Anda. Anda dapat memutar animasi secara manual dari skrip atau mengganti animasi bawaan untuk karakter pemain.
Memutar animasi dari skrip
Dalam beberapa kasus, Anda perlu memutar animasi langsung dari dalam skrip, misalnya ketika pengguna menekan tombol tertentu atau mengambil item khusus.
Humanoid
Untuk memutar animasi pada rig yang berisi objek Humanoid, seperti karakter yang dapat dimainkan biasanya, ikuti pola dasar ini:
- Buat instansi Animation baru dengan AnimationId yang tepat.
- Muat animasi melalui Animator:LoadAnimation() untuk membuat AnimationTrack.
- Putar trek dengan AnimationTrack:Play().
Sebagai contoh, skrip LocalScript berikut, ketika ditempatkan di StarterPlayerScripts, memuat animasi "tendangan" ke karakter pemain dan memutarnya. Skrip ini juga menggunakan metode GetMarkerReachedSignal() untuk mendeteksi kapan peristiwa animasi tertentu terjadi.
LocalScript - Memutar Animasi Kustom pada Karakter Pemain
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- Pastikan bahwa humanoid karakter berisi objek "Animator"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Buat instansi "Animation" baru dan berikan ID aset animasi
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Muat animasi ke dalam animator
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Jika sebuah peristiwa bernama ditentukan untuk animasi, sambungkan ke "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- Putar trek animasi
kickAnimationTrack:Play()
Non-humanoid
Untuk memutar animasi pada rig yang tidak mengandung Humanoid, Anda harus membuat AnimationController dengan anak Animator. Sebagai contoh, skrip Script berikut (diasumsikan sebagai anak langsung dari rig) memuat animasi "tendangan" dan memutarnya.
Script - Memutar Animasi Kustom pada Rig Karakter
local rig = script.Parent
-- Buat instansi "Animation" baru dan berikan ID aset animasi
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Buat "AnimationController" baru dan "Animator"
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- Muat animasi ke dalam animator
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Jika sebuah peristiwa bernama ditentukan untuk animasi, sambungkan ke "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- Putar trek animasi
kickAnimationTrack:Play()
Mengganti animasi bawaan
Secara default, karakter pemain Roblox menyertakan animasi umum seperti berlari, memanjat, berenang, dan melompat. Anda dapat mengganti animasi bawaan ini dengan animasi dari katalog atau dengan animasi kustom Anda sendiri.
Dapatkan ID aset dari animasi baru sebagai berikut:
- Untuk animasi kustom yang dibangun dengan Animation Editor, ikuti instruksi ekspor.
- Salin ID yang sesuai dari referensi animasi katalog di bawah ini. Misalnya, untuk mengganti animasi berlari bawaan dengan variasi Ninja Run, gunakan 656118852.
Di skrip baru, tempel kode berikut:
Script - Mengganti Animasi Karakter Bawaanlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Dapatkan animator pada humanoidlocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Hentikan semua trek animasifor _, 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)Untuk setiap baris yang merujuk pada animasi karakter bawaan, hilangkan tanda komentar dan tempel ID pengganti setelah rbxassetid://. Misalnya, untuk mengubah animasi berlari bawaan ke variasi Ninja Run:
Script - Mengganti Animasi Karakter Bawaanlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Dapatkan animator pada humanoidlocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Hentikan semua trek animasifor _, 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)
Mengatur bobot animasi
Anda dapat menggunakan beberapa animasi untuk tindakan yang sama. Misalnya, ada dua variasi idle dalam contoh kode untuk mengganti animasi bawaan.
Ketika beberapa animasi ada untuk sebuah kondisi karakter, skrip Animate memilih salah satunya secara acak, tetapi Anda dapat mempengaruhi hasilnya dengan mengatur nilai Weight dari animasi di bawah rumus berikut:
- bobot animasi / total bobot dari semua animasi keadaan
Dalam contoh berikut, idle.Animation1 akan diputar ⅓ dari waktu saat karakter dalam keadaan diam, sementara idle.Animation2 akan diputar ⅔ dari waktu.
Script - Mengganti Animasi Karakter BawaananimateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"animateScript.idle.Animation1.Weight.Value = 5animateScript.idle.Animation2.Weight.Value = 10
Referensi animasi
Animasi karakter bawaan
Tabel berikut berisi semua animasi karakter bawaan yang dapat Anda ganti dengan animasi katalog atau animasi kustom Anda sendiri. Perhatikan bahwa Idle memiliki dua variasi yang dapat Anda berikan bobot untuk diputar lebih sering atau kurang sering.
| Tindakan karakter | Referensi skrip Animate |
| Berlari | animateScript.run.RunAnim.AnimationId |
| Berjalan | animateScript.walk.WalkAnim.AnimationId |
| Melompat | animateScript.jump.JumpAnim.AnimationId |
| Diam | animateScript.idle.Animation1.AnimationId |
| Jatuh | animateScript.fall.FallAnim.AnimationId |
| Berenang | animateScript.swim.Swim.AnimationId |
| Berenang (Diam) | animateScript.swimidle.SwimIdle.AnimationId |
| Memanjat | animateScript.climb.ClimbAnim.AnimationId |
Animasi katalog
Saat menggunakan bundel animasi avatar untuk mengganti animasi bawaan, gunakan referensi berikut untuk ID aset masing-masing. Misalnya, jika Anda ingin menerapkan animasi Ninja Jump, gunakan 656117878. Perhatikan bahwa Idle memiliki beberapa variasi.
| Astronaut | Berlari 891636393 Berjalan 891636393 Melompat 891627522 Diam 891621366, 891633237, 1047759695 Jatuh 891617961 Berenang 891639666 Berenang (Diam) 891663592 Memanjat 891609353 |
| Bubbly | Berlari 910025107 Berjalan 910034870 Melompat 910016857 Diam 910004836, 910009958, 1018536639 Jatuh 910001910 Berenang 910028158 Berenang (Diam) 910030921 Memanjat 909997997 |
| Cartoony | Berlari 742638842 Berjalan 742640026 Melompat 742637942 Diam 742637544, 742638445, 885477856 Jatuh 742637151 Berenang 742639220 Berenang (Diam) 742639812 Memanjat 742636889 |
| Elder | Berlari 845386501 Berjalan 845403856 Melompat 845398858 Diam 845397899, 845400520, 901160519 Jatuh 845396048 Berenang 845401742 Berenang (Diam) 845403127 Memanjat 845392038 |
| Knight | Berlari 657564596 Berjalan 657552124 Melompat 658409194 Diam 657595757, 657568135, 885499184 Jatuh 657600338 Berenang 657560551 Berenang (Diam) 657557095 Memanjat 658360781 |
| Levitation | Berlari 616010382 Berjalan 616013216 Melompat 616008936 Diam 616006778, 616008087, 886862142 Jatuh 616005863 Berenang 616011509 Berenang (Diam) 616012453 Memanjat 616003713 |
| Mage | Berlari 707861613 Berjalan 707897309 Melompat 707853694 Diam 707742142, 707855907, 885508740 Jatuh 707829716 Berenang 707876443 Berenang (Diam) 707894699 Memanjat 707826056 |
| Ninja | Berlari 656118852 Berjalan 656121766 Melompat 656117878 Diam 656117400, 656118341, 886742569 Jatuh 656115606 Berenang 656119721 Berenang (Diam) 656121397 Memanjat 656114359 |
| Pirate | Berlari 750783738 Berjalan 750785693 Melompat 750782230 Diam 750781874, 750782770, 885515365 Jatuh 750780242 Berenang 750784579 Berenang (Diam) 750785176 Memanjat 750779899 |
| Robot | Berlari 616091570 Berjalan 616095330 Melompat 616090535 Diam 616088211, 616089559, 885531463 Jatuh 616087089 Berenang 616092998 Berenang (Diam) 616094091 Memanjat 616086039 |
| Rthro | Berlari 2510198475 Berjalan 2510202577 Melompat 2510197830 Diam 2510197257, 2510196951, 3711062489 Jatuh 2510195892 Berenang 2510199791 Berenang (Diam) 2510201162 Memanjat 2510192778 |
| Stylish | Berlari 616140816 Berjalan 616146177 Melompat 616139451 Diam 616136790, 616138447, 886888594 Jatuh 616134815 Berenang 616143378 Berenang (Diam) 616144772 Memanjat 616133594 |
| Superhero | Berlari 616117076 Berjalan 616122287 Melompat 616115533 Diam 616111295, 616113536, 885535855 Jatuh 616108001 Berenang 616119360 Berenang (Diam) 616120861 Memanjat 616104706 |
| Toy | Berlari 782842708 Berjalan 782843345 Melompat 782847020 Diam 782841498, 782845736, 980952228 Jatuh 782846423 Berenang 782844582 Berenang (Diam) 782845186 Memanjat 782843869 |
| Vampire | Berlari 1083462077 Berjalan 1083473930 Melompat 1083455352 Diam 1083445855, 1083450166, 1088037547 Jatuh 1083443587 Berenang 1083464683 Berenang (Diam) 1083467779 Memanjat 1083439238 |
| Werewolf | Berlari 1083216690 Berjalan 1083178339 Melompat 1083218792 Diam 1083195517, 1083214717, 1099492820 Jatuh 1083189019 Berenang 1083222527 Berenang (Diam) 1083225406 Memanjat 1083182000 |
| Zombie | Berlari 616163682 Berjalan 616168032 Melompat 616161997 Diam 616158929, 616160636, 885545458 Jatuh 616157476 Berenang 616165109 Berenang (Diam) 616166655 Memanjat 616156119 |