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:
- Doğru ile yeni bir örnek oluşturun .
- Animasyonu oluşturmak için Animator:LoadAnimation() aracılığıyla yükle AnimationTrack .
- 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.
Yeni animasyonun varlık kimliğini aşağıdaki gibi alın:
- Özel bir animasyon, Animasyon Editörü ile oluşturulduğunda, ihracat talimatlarını takip edin.
- Aşağıdaki katalog animasyon referansından uygun bir kimlik kopyalayın.Örneğin, varsayılan çalıştırma animasyonunu Ninja Run varyantıyla değiştirmek için, 656118852 kullanın.
Araştırıcı penceresinde, ServerScriptService 'e yeni bir ekleyin.
- Sunucu Kript Hizmeti üzerine gelin ve ⊕ düğmesine tıklayın.
- Kontekst menüsünden, bir Kript ekleyin.
Yeni senaryoda, aşağıdaki kodu yapıştırın:
Script -Varsayılan Karakter Animasyonlarını Değiştirlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Humanoide animatör alınlocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Tüm animasyon izlerini durdurfor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal 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://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)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ştirlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Humanoide animatör alınlocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Tüm animasyon izlerini durdurfor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal 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://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.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 = 5animateScript.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 aksiyon | Animasyon 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 |