Setelah Anda membuat animasi, Anda perlu menggunakan skrip untuk memasukkannya ke dalam pengalaman AndaAnda dapat entah memainkan animasi secara manual dari skrip atau menggantikan animasi default untuk karakter pemain.
Mainkan animasi dari skrip
Dalam beberapa kasus, Anda perlu memainkan animasi langsung dari dalam skrip, seperti ketika pengguna menekan tombol tertentu atau mengambil item khusus.
Manusiawi
Untuk memainkan animasi di rig yang berisi objek Humanoid , seperti karakter yang dapat dimainkan tipikal, ikuti pola dasar ini:
- Buat instansi baru Animation dengan AnimationId yang tepat.
- Load animasi melalui Animator:LoadAnimation() untuk membuat AnimationTrack .
- Mainkan trek dengan AnimationTrack:Play().
Sebagai contoh, berikut adalah LocalScript , saat ditempatkan di StarterPlayerScripts , memuat animasi "mengeluarkan" ke karakter pemain dan memainkannya.Skrip juga menggunakan metode GetMarkerReachedSignal() untuk mendeteksi kapan terjadi peristiwa animasi spesifik .
Skrip Lokal - Mainkan Animasi Kustom pada Karakter Pemain
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- Pastikan bahwa karakter humanoid berisi objek "Animator"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Buat instansi "Animasi" baru dan atribusikan ID aset animasi
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Load animasi ke animator
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Mainkan trek animasi
kickAnimationTrack:Play()
-- Jika peristiwa bernama didefinisikan untuk animasi, hubungkan ke "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
Non-humanoid
Untuk memainkan animasi di rig yang tidak berisi , Anda harus membuat dengan anak .Sebagai contoh, berikut adalah Script (dianggap sebagai anak langsung dari rig) memuat animasi "mengeluarkan" dan memainkannya.
Skrip - Mainkan Animasi Kustom pada Rig Karakter
local rig = script.Parent
-- Buat instansi "Animasi" baru dan atribusikan ID aset animasi
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Buat "Kontrol Animasi" dan "Animator" baru
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- Load animasi ke animator
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Mainkan trek animasi
kickAnimationTrack:Play()
-- Jika peristiwa bernama didefinisikan untuk animasi, hubungkan ke "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
Gantikan animasi default
Secara default, karakter pemain Roblox termasuk animasi umum seperti berlari, menaiki, berenang, dan melompat.Anda dapat menggantikan animasi default ini dengan animasi dari katalog atau dengan animasi khusus Anda sendiri kustom.
Dapatkan ID aset dari animasi baru sebagai berikut:
- Untuk animasi khusus yang dibangun dengan Editor Animasi , ikuti instruksi ekspor .
Dalam skrip baru, tempel kode berikut:
Skrip - Gantikan Animasi Karakter Dasarlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Dapatkan animator di 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.jalan.WalkAnim.AnimationId = "rbxassetid://"--animateScript.loncat.JumpAnim.AnimationId = "rbxassetid://"--animateScript.diam.Animation1.AnimationId = "rbxassetid://"--animateScript.diam.Animation2.AnimationId = "rbxassetid://"--animateScript.jatuh.FallAnim.AnimationId = "rbxassetid://"--animateScript.renang.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.panjat.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)Untuk setiap baris yang merujuk pada animasi karakter default , buat komentar dan tempelkan ID pengganti setelah .Sebagai contoh, untuk mengubah animasi eksekusi default ke varian Ninja Run:
Skrip - Gantikan Animasi Karakter Dasarlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Dapatkan animator di 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.jalan.WalkAnim.AnimationId = "rbxassetid://"--animateScript.loncat.JumpAnim.AnimationId = "rbxassetid://"--animateScript.diam.Animation1.AnimationId = "rbxassetid://"--animateScript.diam.Animation2.AnimationId = "rbxassetid://"--animateScript.jatuh.FallAnim.AnimationId = "rbxassetid://"--animateScript.renang.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.panjat.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
Tetapkan berat animasi
Anda dapat menggunakan banyak animasi untuk actionyang sama.Misalnya, ada dua variasi idle dalam sampel kode untuk menggantikan animasi default .
Ketika beberapa animasi ada untuk status karakter, skrip Animasi secara acak memilih salah satu untuk dimainkan, tetapi Anda dapat mempengaruhi hasil dengan menetapkan nilai animasi Weight di bawah formula berikut:
- berat animasi / berat total semua animasi negara Dalam contoh berikut, idle.Animation1 akan memainkan ⅓ dari waktu karakter tidak diam, sementara idle.Animation2 akan memainkan ⅔ dari waktu.
Skrip - Gantikan Animasi Karakter Dasar
animateScript.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 default
Tabel berikut berisi semua animasi karakter default yang dapat Anda ganti gantikan dengan animasi katalog atau animasi khusus Anda sendiri custom.Perhatikan bahwa Menganggur memiliki dua variasi yang dapat Anda beratkan untuk bermain lebih atau kurang sering.
Tindakan action | Referensi skrip animasi |
Jalankan | animateScript.run.RunAnim.AnimationId |
Berjalan | animateScript.walk.WalkAnim.AnimationId |
Lompat | animateScript.jump.JumpAnim.AnimationId |
Menganggur | animateScript.idle.Animation1.AnimationId``animateScript.idle.Animation2.AnimationId |
Jatuh | animateScript.fall.FallAnim.AnimationId |
Renang | animateScript.swim.Swim.AnimationId |
Renang (Menganggur) | animateScript.swimidle.SwimIdle.AnimationId |
Naik | animateScript.climb.ClimbAnim.AnimationId |
Animasi katalog
Saat menggunakan bundel animasi avatar untuk menggantikan animasi default, gunakan referensi berikut untuk ID aset masing-masing.Sebagai contoh, jika Anda ingin menerapkan animasi Ninja Jump, gunakan 656117878.Perhatikan bahwa Menganggur memiliki banyak variasi.
Astronot | Jalankan 891636393 Berjalan 891636393 Melompat 891627522 Menganggur 891621366, 891633237, 1047759695 Tidur 891617961 Renang 891639666 Renang (Tidak aktif) 891663592 |
Gelembung | Jalankan 910025107 Berjalan 910034870 Melompat 910016857 Menganggur 910004836, 910009958, 1018536639 Berenang 910001910 Berenang (Menganggur) 910030921 Renang (Menganggur) 910030921 |
Kartun | Jalankan 742638842 Berjalan 742640026 Melompat 742637942 Menganggur 742637544, 742638445, 885477856 Berjalan (Menganggur) 742637151 Renang 742639220 Renang (Menganggur) 742639812 |
Penatua > | Jalankan 845386501 Berjalan 845403856 Melompat 845398858 Menganggur 845397899, 845400520, 901160519 Tidur 845396048 Renang 845401742 Renang (Menganggur) 845403127 |
Ksatria > | Jalankan 657564596 Berjalan 657552124 Melompat 658409194 Menganggur 657595757, 657568135, 885499184 Tidur 657600338, 657568135, 885499184 Renang 657560551 Renang (Menganggur) 657557095 |
Levitasi | Jalankan 616010382 Berjalan 616013216 Melompat 616008936 Menganggur 616008087, 886862142 Tidur 616006778, 616008087, 886862142 Berenang 616011509 Berenang (Menganggur) 616012453 |
Penyihir | Jalankan 707861613 Berjalan 707897309 Melompat 707853694 Menganggur 707742142, 707855907, 885508740 Tidur 707829716 Renang 707876443 Renang (Menganggur) 707894699 |
Ninja | Jalankan 656118852 Berjalan 656121766 Melompat 656117878 Menganggur 656117400, 656118341, 886742569 Tidur 656115606 Renang 656119721 Renang (Tidak aktif) 656121397 |
Bajak laut | Jalankan 750783738 Berjalan 750785693 Melompat 750782230 Menganggur 750781874, 750782770, 885515365 Tidur 750780242, 750782770, 885515365 Renang 750784579 Renang (Menganggur) 750785176 |
Robot | Jalankan 616091570 Berjalan 616095330 Melompat 616088211, 616089559, 885531463 Menganggur 616088211, 616089559, 885531463 Berenang 616087089 Berenang (Menganggur) 616094091 Berenang (Menganggur) 616086039 |
Rthro | Jalankan 2510198475 Berjalan 2510202577 Melompat 2510197830 Menganggur 2510197257, 2510196951, 3711062489 Tidur 2510195892 Renang (Menganggur) 2510201162 Renang (Menganggur) 2510192778 |
Bergaya | Jalankan 616140816 Berjalan 616146177 Melompat 616139451 Menganggur 616136790, 616138447, 886888594 Tidur 616134815 Renang 616143378 Renang (Menganggur) 616144772 |
Pahlawan Super | Jalankan 616117076 Berjalan 616122287 Melompat 616115533 Menganggur 616111295, 616113536, 885535855 Tidur 616108001, 616113536, 885535855 Renang 616119360 Renang (Menganggur) 616120861 |
Mainan | Jalankan 782842708 Berjalan 782843345 Melompat 782847020 Menganggurkan diri 782841498, 782845736, 980952228 Berenang 782846423 Berenang (Menganggurkan diri) 782845186 Berenang (Menganggurkan diri) 782843869 |
Vampir | Jalankan 1083462077 Berjalan 1083473930 Melompat 1083455352 Menganggur 1083445855, 1083450166, 1088037547 Tidur 1083443587 Renang (Menganggur) 1083467779 Renang (Menganggur) 1083467779 |
Serigala manusia | Jalankan 1083216690 Berjalan 1083178339 Melompat 1083218792 Menganggur 1083195517, 1083214717, 1099492820 Tidur 1083189019 Berenang 1083222527 Berenang (Idle) 1083225406 |
Zombie | Jalankan 616163682 Berjalan 616168032 Melompat 616161997 Menganggur 616158929, 616160636, 885545458 Berenang 616157476 Berenang (Menganggur) 616165109 Renang (Menganggur) 616166655 |