Animator
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Oynatma ve yeniden yazma için sorumlu ana sınıf Animations .Oynama AnimationTracks 'in tüm yeniden yapımı Animator durumaracılığıyla ele alınır.
oyunönceden oluşturulmuş veya özel animasyonlar eklemek için nasıl yapılacağını öğrenmek için ayrıca Animasyon Editörü ve Animasyonları Kullanma bakın.
Özet
Özellikler
Yöntemler
Parçalar arasındaki mutlak hızları hesaplar ve bunları Motor6D.Part1 'ye uygular.Bu mutlak hız hesaplamaları ve atamaları verilen sırayla gerçekleşir.
Şu anda çalan listeyi döndürür AnimationTracks .
Bir Animation 'yi Animator 'ye yükler ve bir AnimationTrack geri döndürür.
Yüklenen tüm oynayan AnimationTrack.TimePosition 'nin AnimationTracks 'sini arttırır, modellere Animator ile ilişkili olan ofsetleri uygular ve Animator ile ilişkili modeli.Sadece komut çubuğunda veya eklentiler tarafından kullanım için.
Etkinlikler
Animatör bir AnimasyonParçası çalmaya başladığında ateş eder.
Özellikler
Yöntemler
ApplyJointVelocities
Mevcut AnimationTracks oynama setine ve mevcut oyun sürelerine ve oyun hızlarına göre, parçalar arasındaki mutlak hızları hesaplayın ve Motor6D.Part1'e (Animator "çocuk" parçası olarak görülen parça) uygulayın.Bu mutlak hız hesaplamaları ve atamaları verilen sırayla gerçekleşir.
Bu yöntem, örneğin, şu anda aynı montajın parçalarından her ikisi de Motors veya Kaynaklar tarafından doğrudan veya dolaylı olarak bağlı değilse, belirli bir eklem için hızları uygulamaz.
Bu yöntem sizin için eklemleri devre dışı bırakmaz veya kaldırmaz.Bu yöntemi çağırmadan önce montajdan sert bağlantıları devre dışı bırakmanız veya kaldırmanız gerekir.
Verdiğiniz Motor6Ds ın, DataModel 'in soyundan gelmesi gerekmiyor.Bu yöntemi çağırmadan önce DataModel eklemeleri kaldırılması desteklenir.
Parametreler
Dönüşler
LoadAnimation
Bu işlev, verilen Animation 'yi bu Animator 'ye yükler ve oynanabilir bir AnimationTrack geri döndürür.Müşterinin ağ sahipliğine sahip olduğu modellerde Animator içinde çağrıldığında, örneğin yerel oyuncunun karakteri veya BasePart:SetNetworkOwner() 'dan, bu işlev ayrıca sunucu için animasyonu da yükler.
Not that the Animator must be in the Workspace before making a call to LoadAnimation() or else it will be unable to retrieve the AnimationClipProvider service and throw an error.
Bu işlevi benzer adlı Humanoid:LoadAnimation() ve AnimationController:LoadAnimation() fonksiyonları yerine doğrudan kullanmalısınız.Bunlar, bu işlevin eski protokolleri ve ayrıca bir var olmadığında bir Animator oluşturuyor; dikkatli olmazsanız, yeniden yazma sorunlarına neden olabilir.
İstemci veya Sunucuda Bir Animasyon Yükleme
AnimationTracks doğru şekilde yeniden yüklenmesi için, kliente veya sunucuda ne zaman yükleneceklerini bilmek önemlidir:
Eğer bir bir oyuncunun veya 'sinde bir atası ise, animasyonlar o oyuncunun istemcisine ve diğer istemcilere kopyalanacaktır.
Eğer bir oyuncu karakterinin soyundan gelmiyorsa, animasyonlarının sunucuda yüklenmesi ve yeniden yapılması gerekir.
Animator nesnesi, animasyon yeniden yapımının tümüyle çalışması için ilk önce sunucuda oluşturulmalı ve müşterilere yeniden yapım için aktarılmalıdır.Yerel olarak bir Animator oluşturulursa, AnimationTracks ile yüklenecek olan bu Animator kopyalanmayacaktır.
Parametreler
Dönüşler
StepAnimations
Yüklenen tüm oynayan AnimationTrack.TimePosition 'nin AnimationTracks 'sini arttırır, modellere Animator ile ilişkili olan ofsetleri uygular ve Animator ile ilişkili modeli.Sadece komut çubuğunda veya eklentiler tarafından kullanım için.
deltaTime parametri, animasyonun ilerlemesine artırılacak saniye sayısını belirler.Tipik olarak, bu işlev bir animasyonun uzunluğunu önizlemek için bir döngüde çağrılacaktır (örneğe bakın).
Animasyonlar bir kez durdurulduktan sonra, modelin kenetlerinin orijinal konumlarına manuel olarak sıfırlanması gerekecektir (örneğe bakın).
Bu işlev, oyun çalışmıyorken Animations oynatma simülasyonu için kullanılır.Bu, animasyonların oyunun çalışmasının sonuçları olmadan önizlenmesine izin verir, örneğin kodların yürütülmesi.Eğer işlev oyun çalışırken veya Scripts veya LocalScripts tarafından çağrılırsa, bir hata döndürür.
Kendi özel animasyon editörlerini tasarlayan geliştiricilerin, resimleri önizlemek için bu işlevi kullanmaları önerilir, çünkü resimleri resmi Roblox Animasyon Editörü eklentisi kullanan yöntemdir.
Parametreler
Saniyeler içinde animasyon oynatma miktarı artırılacak.
Dönüşler
Kod Örnekleri
This code sample includes a function that can be used to preview an Animation on a Model in Roblox Studio, without needing to run the game. It utilizes the Animator.StepAnimations function, which is the same method the official Roblox Animation Editor uses.
local RunService = game:GetService("RunService")
local function studioPreviewAnimation(model, animation)
-- find the AnimationController and Animator
local animationController = model:FindFirstChildOfClass("Humanoid")
or model:FindFirstChildOfClass("AnimationController")
local animator = animationController and animationController:FindFirstChildOfClass("Animator")
if not animationController or not animator then
return
end
-- load the Animation to create an AnimationTrack
local track = animationController:LoadAnimation(animation)
track:Play()
-- preview the animation
local startTime = tick()
while (tick() - startTime) < track.Length do
local step = RunService.Heartbeat:wait()
animator:StepAnimations(step)
end
-- stop the animation
track:Stop(0)
animator:StepAnimations(0)
-- reset the joints
for _, descendant in pairs(model:GetDescendants()) do
if descendant:IsA("Motor6D") then
local joint = descendant
joint.CurrentAngle = 0
joint.Transform = CFrame.new()
end
end
end
local character = script.Parent
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
studioPreviewAnimation(character, animation)
Etkinlikler
AnimationPlayed
Animatör tarafından oluşturulmuş ve sahiplenilmiş tüm AnimationTrack:Play() animasyon izleri için ateş eder.