Gunakan animasi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

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:

  1. Pastikan bahwa pemainlokal Humanoid berisi objek Animator.
  2. Buat instansi baru Animation dengan AnimationId yang tepat.
  3. Load animasi melalui Animator:LoadAnimation() untuk membuat AnimationTrack .
  4. 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.

  1. Dapatkan ID aset dari animasi baru sebagai berikut:

    • Untuk animasi khusus yang dibangun dengan Editor Animasi , ikuti instruksi ekspor .
    • Salin ID yang sesuai dari referensi animasi katalog di bawah.Sebagai contoh, untuk menggantikan animasi eksekusi default dengan varian Ninja Run, gunakan 656118852.
  2. Di jendela Explorer, tambahkan baru Script ke ServerScriptService .

    1. Pasang mouse di atas ServerScriptService dan klik tombol ⊕.
    2. Dari menu konteks, masukkan Skrip .
  3. Dalam skrip baru, tempel kode berikut:

    Skrip - Gantikan Animasi Karakter Dasar

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Dapatkan animator di humanoid
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Hentikan semua trek animasi
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local 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://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  4. 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 Dasar

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Dapatkan animator di humanoid
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Hentikan semua trek animasi
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local 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://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.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 = 5
animateScript.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 actionReferensi 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