Animasyonları kullan

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Bir animasyon oluşturduktan sonra, deneyiminize dahil etmek için kodları kullanmanız gerekir.Yazılımlardan manuel olarak animasyonlar oynayabilir veya oyuncu karakterleri için varsayılan animasyonları değiştirebilirsiniz veya oyuncu karakterleri için varsayılan animasyonları değiştirebilirsiniz scriptlerden.

Senaryolardan animasyonlar oynat

Bazı durumlarda, bir kullanıcı belirli bir tuşa basar veya özel bir öğealır gibi, bir animasyonu doğrudan bir senaryodan oynamanız gerekecektir.

İnsansılar

Tipik oynanabilir karakterler gibi bir Humanoid nesneyi içeren bir rig'de bir animasyon oynamak için, bu temel modeli takip edin:

  1. Yerel oyuncunun Humanoid içinde bir Animator nesnesi olduğundan emin olun.
  2. Doğru ile yeni bir örnek oluşturun .
  3. Animasyonu oluşturmak için Animator:LoadAnimation() aracılığıyla yükle AnimationTrack .
  4. Parçayı AnimationTrack:Play() ile çal.

Örneğin, aşağıdaki LocalScript, StarterPlayerScripts içine yerleştirildiğinde, oyuncunun karakterine bir "at" animasyonu yüklenir ve oynanır.Ayrıca, senaryo belirli bir animasyon etkinliği meydana geldiğinde tespit etmek için GetMarkerReachedSignal() yöntemini de kullanır.

Yerel Kod - Oyuncu Karakterinde Özel Animasyon Oynatma

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- Karakterin insansızı bir "Animatör" nesnesi içerdiğinden emin olun
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Yeni bir "Animasyon" örneği oluştur ve bir animasyon varlık kimliği atayın
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Animasyonu animatöre yükle
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Animasyon izini oynat
kickAnimationTrack:Play()
-- animasyoniçin adlandırılmış bir olay tanımlanmışsa, bunu "GetMarkerReachedSignal()" e bağlayın
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

İnsansızlar

Animasyonları çalmak için içermeyen kasalarda bir Humanoid oynatmak için, bir çocuk AnimationController ile bir Animator oluşturmalısınız.Örneğin, aşağıdaki Script (rig'in doğrudan bir çocu olduğu varsayılır) bir "kick" animasyonunu yükler ve oynatır.

Script - Karakter Rig'inde Özel Animasyon Oynat

local rig = script.Parent
-- Yeni bir "Animasyon" örneği oluştur ve bir animasyon varlık kimliği atayın
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Yeni bir "Animasyon Kontrolörü" ve "Animatör" oluştur
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- Animasyonu animatöre yükle
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Animasyon izini oynat
kickAnimationTrack:Play()
-- animasyoniçin adlandırılmış bir olay tanımlanmışsa, bunu "GetMarkerReachedSignal()" e bağlayın
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

Varsayılan animasyonları değiştir

Varsayılan olarak, Roblox oyuncu karakterleri koşma, tırmanma, yüzme ve atlama gibi yaygın animasyonları içerir.Bu varsayılan animasyonları kataloğun animasyonlarıyla veya kendi özel özel animasyonlarınızla değiştirebilirsiniz.

  1. Yeni animasyonun varlık kimliğini aşağıdaki gibi alın:

  2. Araştırıcı penceresinde, ServerScriptService 'e yeni bir ekleyin.

    1. Sunucu Kript Hizmeti üzerine gelin ve ⊕ düğmesine tıklayın.
    2. Kontekst menüsünden, bir Kript ekleyin.
  3. Yeni senaryoda, aşağıdaki kodu yapıştırın:

    Script -Varsayılan Karakter Animasyonlarını Değiştir

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Humanoide animatör alın
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Tüm animasyon izlerini durdur
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local animateScript = character:WaitForChild("Animate")
    --animasyonScript.run.RunAnim.AnimationId = "rbxassetid://"
    --animasyon.yürüme.WalkAnim.AnimationId = "rbxassetid://"
    --animasyonScript.zıplama.JumpAnim.AnimationId = "rbxassetid://"
    --animateScript.boşta durma.Animation1.AnimationId = "rbxassetid://"
    --animateScript.boşta durma.Animation2.AnimationId = "rbxassetid://"
    --animasyonScript.düşme.FallAnim.AnimationId = "rbxassetid://"
    --animateScript.yüzme.Swim.AnimasyonId = "rbxassetid://"
    --animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"
    --animateScript.tırmanma.ClimbAnim.AnimationId = "rbxassetid://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  4. Bir Varsayılan karakter animasyonuna referans veren her satır için, yorumunu kaldır ve rbxassetid:// sonra değiştirme kimliğini yapıştır.Örneğin, varsayılan çalıştırma animasyonunu Ninja Run varyantına değiştirmek için:

    Script -Varsayılan Karakter Animasyonlarını Değiştir

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Humanoide animatör alın
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Tüm animasyon izlerini durdur
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local animateScript = character:WaitForChild("Animate")
    animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"
    --animasyon.yürüme.WalkAnim.AnimationId = "rbxassetid://"
    --animasyonScript.zıplama.JumpAnim.AnimationId = "rbxassetid://"
    --animateScript.boşta durma.Animation1.AnimationId = "rbxassetid://"
    --animateScript.boşta durma.Animation2.AnimationId = "rbxassetid://"
    --animasyonScript.düşme.FallAnim.AnimationId = "rbxassetid://"
    --animateScript.yüzme.Swim.AnimasyonId = "rbxassetid://"
    --animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"
    --animateScript.tırmanma.ClimbAnim.AnimationId = "rbxassetid://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)

Animasyon ağırlıklarını ayarla

Aynı aksiyoniçin çok sayıda animasyon kullanabilirsiniz.Örneğin, kod örneğinde varsayılan animasyonları değiştirmek için iki değişiklik bulunmaktadır idle .

Bir karakter durumu için birden fazla animasyon mevcut olduğunda, Animasyonu oynat skripti rastgele hangisini oynayacağını seçer, ancak sonucu etkilemek için animasyonun Weight aşağıdaki formül altında ayarlayabilirsiniz:

  • animasyon ağırlığı / tüm devlet animasyonlarının toplam ağırlığı Aşağıdaki örnekte, idle.Animation1 karakterin boşta durmaolduğu sürenin üçte birini oynayacak, idle.Animation2 ise sürenin üçte birini oynayacak.
Script -Varsayılan Karakter Animasyonlarını Değiştir

animateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"
animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"
animateScript.idle.Animation1.Weight.Value = 5
animateScript.idle.Animation2.Weight.Value = 10

Animasyon referansları

Varsayılan karakter animasyonları

Aşağıdaki tablo, değiştirebileceğiniz varsayılan karakter animasyonlarının tümünü içerir katalog animasyonları veya kendi özel özel animasyonlarınızla.Boş durumunun iki değişikliği olduğunu ve daha fazla veya daha az sıklıkla oynamak için ağırlık verebileceğinizi unutmayın.

Karakter aksiyonAnimasyon kılavuzu referansı
Koş animateScript.run.RunAnim.AnimationId
Yürümek animateScript.walk.WalkAnim.AnimationId
Zıplama animateScript.jump.JumpAnim.AnimationId
Boş

animateScript.idle.Animation1.AnimationId``animateScript.idle.Animation2.AnimationId

Düşme animateScript.fall.FallAnim.AnimationId
Yüzün

animateScript.swim.Swim.AnimationId

Yüzme (Boşluk)

animateScript.swimidle.SwimIdle.AnimationId

Tırmanma animateScript.climb.ClimbAnim.AnimationId

Katalog animasyonları

Avatar animasyon paketlerini varsayılan animasyonları değiştirmek için kullandığınızda, ilgili varlık kimlikleri için aşağıdaki referansları kullanın.Örneğin, Ninja Zıplama animasyonunu uygulamak istiyorsanız, 656117878 kullanın. Boş 'in çeşitli değişikliklere sahip olduğunu unutmayın.

Astronot
Çalıştır 891636393
Yürüyün 891636393
Zıpla 891627522
Dinlenme 891621366, 891633237, 1047759695
Yüzün (Boşluk) 891617961
Yüzün (Boşluk) 891663592
Yüzün (Boşluk) 891609353
Sakızlı
Çalıştır 910025107
Yürüyün 910034870
Zıpla 910016857
Dinlenme 910004836, 910009958, 1018536639
Yüzün (Boşluk) 910001910
Yüzün (Boşluk) 910028158
Yüzün (Boşluk) 910030921
Çizgi film
Çalıştır 742638842
Yürüyün 742640026
Zıpla 742637942
Dinlenme 742637544, 742638445, 885477856
Yüzün 742637151
Yüz (Boşluk) 742639220
Yüz (Boşluk) 742636889
Yaşlı
Çalıştır 845386501
Yürüyün 845403856
Zıpla 845398858
Dinlenme 845397899, 845400520, 901160519
Yüzün 845396048
Yüz (Boşluk) 845401742
Yüz (Boşluk) 845392038
Şövalye "
Çalıştır 657564596
Yürüyün 657552124
Zıpla 658409194
Dinlenme 657595757, 657568135, 885499184
Yüzün (Boşluk) 657600338
Yüz (Boşluk) 657560551
Yüz (Boşluk) 658360781
Yükseklik

Çalıştır 616010382
Yürüyün 616013216
Zıpla 616008936
Dinlenme 616008087, 616008087, 886862142
Yüzün 616005863
Yüz (Boşluk) 616011509
Yüz (Boşluk) 616003713

Büyücü

Çalıştır 707861613
Yürüyün 707897309
Zıpla 707853694
Dinlenme 707742142, 707855907, 885508740
Yüzün 707829716
Yüz (Boşluk) 707894699
Yüz (Boşluk) 707826056

Ninja

Çalıştır 656118852
Yürüyün 656121766
Zıpla 656117878
Dinlenme 656117400, 656118341, 886742569
Yüzün 656115606
Yüz (Boşluk) 656121397
Yüz (Boşluk) 656114359

Korsan

Çalıştır 750783738
Yürüyün 750785693
Zıpla 750782230
Dinlenme 750781874, 750782770, 885515365
Yüzün (Boşluk) 750780242, 750782770, 885515365
Yüzün (Boşluk) 750784579
Yüzün (Boşluk) 750779899

Robot
Çalıştır 616091570
Yürüyün 616095330
Zıpla 616088211, 616089559, 885531463
Dinlenme 616087089, 616089559, 885531463
Yüzün 616087089
Yüz (Boşluk) 616094091
Yüz (Boşluk) 616086039
Rthro
Çalıştır 2510198475
Yürü 2510202577
Zıplama 2510197830
Dinlenme 2510197257, 2510196951, 3711062489
Yüzme 2510195892
Yüzme (Dinlenme) 2510201162
Yüzme (Dinlenme) 2510192778
Şık

Çalıştır 616140816
Yürüyün 616146177
Zıpla 616139451
Dinlenme 616136790, 616138447, 886888594
Yüzün 616134815
Yüz (Boşluk) 616144772
Yüz (Boşluk) 616133594

Süper Kahraman
Çalıştır 616117076
Yürüyün 616122287
Zıpla 616115533
Dinlenme 616111295, 616113536, 885535855
Yüzün (Boşluk) 616108001, 616113536, 885535855
Yüz (Boşluk) 616119360
Yüz (Boşluk) 616120861
Oyuncak
Çalıştır 782842708
Yürüyün 782843345
Zıpla 782847020
Dinlenme 782841498, 782845736, 980952228
Yüzün (Boşluk) 782846423
Yüzün (Boşluk) 782845186
Yüzün (Boşluk) 782843869
Vampir
Çalıştır 1083462077
Yürüyün 1083473930
Zıpla 1083455352
Dinlenme 1083445855, 1083450166, 1088037547
Yüzün 1083443587
Yüz (Boşluk) 1083467779
Yüz (Boşluk) 1083467779
Kurt Adam
Çalıştır 1083216690
Yürüyün 1083178339
Zıpla 1083218792
Dinlenme 1083195517, 1083214717, 1099492820
Yüzün 1083189019
Yüz (Boşluk) 1083222527
Yüz (Boşluk) 1083225406
Zombi
Çalıştır 616163682
Yürüyün 616168032
Zıpla 616161997
Dinlenme 616158929, 616160636, 885545458
Yüzün 616157476
Yüz (Boşluk) 616165109
Yüz (Boşluk) 616166655