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
Bu kod örneği, oyunu çalıştırmaya gerek kalmadan Roblox Studio'daki bir Animasyonu önizlemek için kullanılabilecek bir işlev içerir.Resmi Roblox Animasyon Editörü'nün kullandığı aynı yöntemi kullanan Animator.StepAnimations işlevini kullanır.
local RunService = game:GetService("RunService")
local function studioPreviewAnimation(model, animation)
-- Animasyon Kontrolörünü ve Animatörünü bul
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
-- Animasyon oluşturmak için Animasyonu yükle
local track = animationController:LoadAnimation(animation)
track:Play()
-- animasyonu önizle
local startTime = tick()
while (tick() - startTime) < track.Length do
local step = RunService.Heartbeat:wait()
animator:StepAnimations(step)
end
-- animasyonu durdur
track:Stop(0)
animator:StepAnimations(0)
-- eklemleri sıfırla
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.