Animasyon Grafiği Editörü, teknik sanatçılara ve animatörlere Roblox Studio içinde karmaşık animasyon mantığı oluşturma yetkisi veren görsel, düğme tabanlı bir araçtır. Blend ağaçları gibi davranışlar oluşturmak için akıcı bir arayüz sunarak, karakter hareketi için geleneksel manuel betik yazma bağımlılığını ortadan kaldırır.
Bu sistem, mevcut animasyon iş akışınızla birlikte çalışır:
- Animasyon Editörü: Bireysel klipleri oluşturmak ve anahtar çerçeveleri ve eğrileri ince ayar yapmak için Animasyon Editörü kullanmaya devam edin.
- Animasyon Grafiği Editörü: Bu aracı kullanarak bu klipleri alıp, karmaşık oyun davranışlarını yönlendirmek için bir mantık ağacına düzenleyin.
İşbirliğini artırmak için tasarlanan görsel grafik, geliştiricilerin animatörler tarafından oluşturulan mantığı hızlı bir şekilde incelemesine, hata ayıklamasına ve anlamasına olanak tanır. Sanatçılar etkileşimli hareketi geliştirmeye odaklanırken, geliştiriciler de karışık animasyonlar ve durumlar üzerinde doğrudan kontrol sağlamak için animasyon grafiği düğümlerine programatik olarak erişebilirler.
Bir grafik oluşturun
Animasyonlu bir karakter için mantık oluşturmaya başlamak için, Studio şeridindeki Avatar sekmesi aracılığıyla Animasyon Grafiği editörüne erişin. Aşağıdaki adımlar, bir rig başlatmayı ve varsayılan yürüyüş ve el sallama animasyonlarını kullanarak temel bir düğüm ağı oluşturmayı göstermektedir.
Pratik uygulamalar hakkında daha derin bir inceleme için, hem temel hem de karmaşık uygulama örneklerini içeren Animasyon Grafiği Referans Dosyası üzerinde keşif yapabilirsiniz.
Kendi animasyon grafiğinizi oluşturmak için, referansta sağlanan temel örneğe benzer şekilde aşağıdaki adımları izleyin:
Studio'da, Avatar sekmesine giderek ve Karakter ⟩ Benim Avatarım seçeneğini seçerek animasyonlu bir rig ekleyin.

Avatar sekmesinde Grafik Editörü'ne giderek Animasyon Grafiği Editörünü açın.

3D görünümde animasyonlu rigi seçin ve Grafik Oluştur seçeneğini seçin.
Grafik Editörü'nde sağ tıklayın ve Klip seçeneğini seçin.

Yeni Klip düğümünde, Animasyon Kimliğini ayarlayın.
Animasyon Kimliği açılır menüsünü seçin.
Belirli bir animasyon varlık kimliğini göndermek için İçe Aktar seçeneğine tıklayın.

Animasyon Kimliği alanına varsayılan Yürüyüş animasyonunu ekleyin: 507777826.
İçe Aktar seçeneğini seçin.
Varsayılan El Sallama animasyonunu kullanarak adım 4-5'i tekrarlayarak başka bir klip düğümü ekleyin: 507770239.

Grafik Editörü'nde sağ tıklayın ve Ekle seçeneğini seçin.

Klip düğümlerini Ekle düğümüne bağlayın üst sağdaki çıkış konektörünü uygun porta sürükleyerek:
- Yürüyüş animasyonuna sahip Klip düğümünü Temel portuna bağlayın.
- El Sallama animasyonuna sahip Klip düğümünü Ekleme portuna bağlayın.

Ekle düğümünden, üst sağdaki çıkış konektörünü Grafik Çıkışı Poz portuna bağlayın.

- İSTEĞE BAĞLIHız değişkeninize bir parametre atayın.
Yeşil Hız portunu boş bir alana tıklayıp sürükleyin. Yeni bir parametre düğümü görüntülenecektir.

Grafik editörünün sol üst kısmında, düğümlerinizdeki parametreleri hızlı bir şekilde değiştirmek için parametre panelini kullanın. Ayrıca buna programatik olarak erişebilirsiniz.

Animasyonu test etmek için oynat düğmesine basın.

Çeşitli ağırlıkları, hızları, oynatma modlarını ve diğer animasyonları test etmeyi deneyin. Bireysel düğümler hakkında daha fazla bilgi için Düğüm referansı kısmına bakın.
API entegrasyonu
Bir Animasyon Grafiği oluşturmak ve dağıtmak, standart Roblox animasyon hattını takip eder. Animasyon Grafiği Editöründe bir rig seçtikten sonra, yeni bir AnimationGraphDefinition varlığı oluşturulur. Bu varlık, düğümlerinizin, bağlantılarınızın ve parametrelerinizin konteyneri olarak hizmet eder. Mantığınız tamamlandığında, grafiği yayınlayarak standart bir Varlık Kimliği alırsınız.
Betiklerinizde, bu grafiklerle etkileşimde bulunarak onları Animator üzerine yükleyerek geleneksel bir animasyon gibi kullanabilirsiniz. Grafiğin iç mantığını yönlendirmek için, gerçek zamanlı değerleri—hareket hızı veya durum boolean'ları gibi—grafiğin değişkenlerine doğrudan geçirmek için AnimationTrack:SetParameter() kullanın.
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://123456789" -- Yayınlanan Grafiğinizin Kimliği
local animationTrack = animator:LoadAnimation(animation)
animationTrack:Play()
-- RunService aracılığıyla dinamik parametre güncellemeleri
game:GetService("RunService").Stepped:Connect(function(_, dt)
local currentSpeed = humanoidRootPart.AssemblyLinearVelocity.Magnitude
animationTrack:SetParameter("humanoidSpeed", currentSpeed)
end)Düğüm referansı
Her animasyon grafiği düğümü, animasyon verilerini işleyen bir mantık kapısı veya veri kaynağı olarak hizmet eder. Bu bölüm, Animasyon Grafiği Editöründeki işlevsel blokların teknik bir dökümünü sağlar. Tüm düğümler şu anda bir animasyon pozunu çıkartır.
Her düğüm bölümü şunları içerir:
- Tanım – Düğümün amacı ve grafikteki rolü hakkında bir özet.
- Girişler – Düğme giren veri akışları. Birden fazla giriş, Input1, Input2, ..., InputN olarak temsil edilir.
- Giriş özellikleri – Belirli bir girişi doğrudan etkileyen ayarlar (Blend1D düğümünde 0.5 pozisyonuna atanmış bir Idle girişi).
- Olay Verisi – Düğüm tarafından iç grafik mantığını tetiklemek veya dış Luau betiklerini tüketmek için yayılan veya tüketilen olaylar. Bu davranış beta geliştirme sürecinde değişebilir.
Küresel olay kuralları
Tüm düğümler ve geçişler için, varsayılan olarak aşağıdaki kurallar geçerlidir:
- Olaylar, kaynak düğümden yukarı doğru grafikte yayılır. Her olay, kaynağının son karışımda etkisini temsil eden bir ağırlık taşır. Ağırlık herhangi bir noktada sıfıra ulaşırsa, olay susturulur.
- Özel olay mantığı olmayan düğümler, tüm olayları değişmeden geçirir; girişler arasında karışım veya seçim yapan düğümler, ağırlığı ölçeklendirebilir veya birincil olmayan girişlerden gelen olayları engelleyebilir (her düğüm için Olay bölümüne bakın).
- Grafiğin üst kısmına ulaşan işaretçi olayları, AnimationTrack:GetMarkerReachedSignal() aracılığıyla gözlemlenebilir.
Klip

AnimationClip varlığına bir referans. Bu, grafikte bir yaprak düğüm olarak hizmet eder ve diğer düğümlere karışım, seçim veya değişiklik için beslenen ham animasyon verilerini üretir.
- Girişler
- Yok
- Özellikler
Özellik Tür Açıklama AnimasyonKimliği String Oynatılacak animasyon varlığı (örneğin, rbxassetid://12345). OynatmaModu Enum.AnimationNodePlayMode Klip süresinin sonuna ulaştığında klibin davranışını tanımlar.
- Döngü (varsayılan): Klip tamamlandığında otomatik olarak baştan başlar.
- PingPong: Başlangıçtan sona oynar, ardından hemen sona geri oynar.
- Bir Kez ve Tut: Bir kez oynar ve tamamlandığında son pozisyonu korur.
- Bir Kez ve Sıfırla: Bir kez oynar ve tamamlandığında başlangıç pozisyonuna geri döner.
Ters Boolean Oynatma yönünü kontrol eder. Hız Number Oynatma hızına uygulanan bir çarpan. 0.0 grafiği duraklatır, 1.0 normal hızdır ve 2.0 iki kat hızdır. Kısalt Boolean Klip süresinin kısaltılıp kısaltılmayacağını açıp kapatır. KısaltBaşlangıç Number Oynatmanın başlaması gereken mutlak zaman damgası (saniye cinsinden). KısaltSon Number Oynatmanın sona ermesi gereken mutlak zaman damgası (saniye cinsinden). - Olay verisi
- Olay Yönetimi: Yok. Bu, çocukları olmayan bir yaprak düğümüdür.
- Olay Yayılımı: Animasyon klibinde gömülü özel işaretçileri (örneğin, "Ayak sesi", "Silah Salınımı") okur ve bunları meydana geldikleri kesin karede adlandırılmış olaylar olarak yayar. Klip kısaltıldığında, yalnızca tanımlanan [KısaltBaşlangıç, KısaltSon] aralığında (dahil) bulunan işaretçiler yayılır.
Seç

Seçim özelliği aracılığıyla herhangi bir sayıda girişi seçer. Mevcut seçim değiştiğinde, yeni bir geçiş tetikler.
- Girişler
- Giriş1...GirişN
- Özellikler
Özellik Tür Açıklama Seçim String Seçilecek girişin benzersiz kimliği, giriş bağlantısının adıyla eşleşir (örneğin, "Yürüyüş"). - Olay verisi
- Olay Yönetimi: Mevcut seçili girişten gelen olaylar, ağırlıkları değişmeden geçer.
- Olay Yayılımı: Yalnızca mevcut seçili girişten gelen tüm olayları geçirir. Bir geçiş sırasında, olay yayılımı küresel olay kurallarını takip eder.
ÖncelikSeç

Bağlı girişlerin listesini yukarıdan aşağıya değerlendirir ve koşulu doğru olan ilkini oynatır. Bu, belirli mantığa dayalı hiyerarşik animasyon seçimi sağlar. Mevcut seçim değiştiğinde, yeni bir geçiş tetikler.
- Girişler
- Giriş1...GirişN
- Tetikleyici (Boolean): Bu girişin etkinleşmesi için doğru olması gereken mantıksal bir koşul. Mevcut sürümlerde, bu bir boolean parametreye bağlıdır.
- GeçişOverrideKesilebilir (Enum.AnimationNodeInterruptible): Bu aktif animasyonun daha yüksek öncelikli bir giriş tarafından ne zaman kesilebileceğini tanımlar. Düğüm düzeyindeki VarsayılanKesilebilir ayarını geçersiz kılar.
- Her Zaman (varsayılan): Giriş, daha yüksek öncelikli bir koşul tarafından her zaman kesilebilir.
- Tamamlandı: Mevcut animasyon, daha yüksek öncelikli bir girişin devralabilmesi için oynatımını tamamlamalıdır.
- Tetikleyici: Giriş yalnızca KesilebilirTetikleyici doğru olduğunda kesilebilir.
- KesilebilirTetikleyici (Boolean): Yalnızca GeçişOverrideKesilebilir Tetikleyici olarak ayarlandığında mevcuttur. Bu belirli ifade doğru olduğunda giriş kesilebilir.
- Özellikler
Özellik Tür Açıklama VarsayılanKesilebilir Enum.AnimationNodeInterruptible Tüm girişlere uygulanan temel kesme kuralı. Her giriş, kendi GeçişOverrideKesilebilir giriş özelliği ile bunu geçersiz kılabilir. - Olay verisi
- Olay Yönetimi: Mevcut seçili girişten gelen olaylar, ağırlıkları değişmeden geçer.
- Olay Yayılımı: Yalnızca mevcut seçili girişten gelen tüm olayları geçirir. Bir geçiş sırasında, olay yayılımı küresel olay kurallarını takip eder.
Sıra

Bağlı girişleri belirli bir sıralı düzen içinde tanımlanan bekleme koşullarına göre etkinleştirir. Mevcut seçim değiştiğinde, yeni bir geçiş tetikler.
- Girişler
- Giriş1...GirişN
- GeçişOverrideBekle (Enum.AnimationNodeWaitFor): Sıra ilerlemeden önce karşılanması gereken koşulu belirtir. Düğüm düzeyindeki VarsayılanBekle ayarını geçersiz kılar.
- Tamamlandı (varsayılan): Mevcut giriş bir döngüyü tamamladığında bir sonraki girişe geçer. İlerleme davranışı bağlı girişe bağlıdır:
- Bir kez oynatılan klip: Klip tamamlandığında ilerler.
- Döngüsel klip: Bir tam döngü tamamlandığında ilerler.
- Sonsuz döngülerle sıra: Tüm girişler arasında bir tam döngü tamamlandığında ilerler.
- Sınırlı döngülerle sıra: Tüm döngüler tamamlandığında ilerler.
- Tetikleyici: Özel mantıksal bir ifadenin doğru olduğu durumlarda bir sonraki girişi etkinleştirir.
- BekleTetikleyici (Boolean): Yalnızca GeçişOverrideBekle Tetikleyici olarak ayarlandığında mevcuttur.
- Özellikler
Özellik Tür Açıklama DöngüSayısı Number Tüm sırayı kaç kez döngüleyeceğini belirtir. 0 (varsayılan) değeri sonsuz döngüyü gösterir. Sayı ulaştığında, düğüm son girişin döngüleme veya tutma ayarını dikkate alır. VarsayılanBekle Enum.AnimationNodeWaitFor Tüm girişlere uygulanan temel bekleme koşulu. Her giriş, kendi GeçişOverrideBekle giriş özelliği ile bunu geçersiz kılabilir. - Olay verisi
- Olay Yönetimi: Mevcut aktif girişten gelen olaylar, ağırlıkları değişmeden geçer.
- Olay Yayılımı: Yalnızca sıradaki mevcut aktif girişten gelen tüm olayları geçirir. Bir geçiş sırasında, olay yayılımı küresel olay kurallarını takip eder.
RastgeleSıra

Bağlı girişlerinden birini rastgele seçer ve oynatır. Mevcut seçili animasyon tamamlandığında, düğüm rastgele başka bir girişi oynatmayı seçer. Her bir girişi seçilme olasılığını etkilemek için belirli bir ağırlık atayın. Mevcut seçim değiştiğinde, yeni bir geçiş tetikler.
- Girişler
- Giriş1...GirişN
- Ağırlık (Number): Bu girişin seçilme olasılığını belirler; daha yüksek ağırlıklar seçilme şansını artırır.
- Özellikler
Özellik Tür Açıklama OynatmaSayısı Number Düğümün durmadan önce oynatacağı giriş sayısı. Ulaşıldığında, düğüm son girişin döngüleme veya tutma ayarını dikkate alır. Varsayılan değer 0'dır (sonsuz). Tohum Number Rastgele Sayı Üreticisini (RNG) başlatmak için kullanılan bir değer, böylece dizinin farklı istemciler arasında tutarlı kalmasını sağlar. Varsayılan değer -1'dir (rastgele Tohum). - Olay verisi
- Olay Yönetimi: Mevcut aktif girişten gelen olaylar, ağırlıkları değişmeden geçer.
- Olay Yayılımı: Yalnızca sıradaki mevcut aktif girişten gelen tüm olayları geçirir. Bir geçiş sırasında, olay yayılımı küresel olay kurallarını takip eder.
Üzerine

Üzerine pozunu Temel pozunun üzerine katmanlar. Bir Maske düğümü ile birleştirildiğinde, Üzerine pozundaki maskelenmiş eklemler, Temel pozunu tamamen açığa çıkararak şeffaf bir üst katman efekti oluşturur.
- Girişler
- Temel: Arka plan veya alt katman, genellikle bir tam vücut animasyonu gibi hareket veya bir bekleme durumu.
- Üzerine: Temel üzerine uygulanacak ön plan veya üst katman, örneğin bir el hareketi veya alet kullanma animasyonu.
- Özellikler
Özellik Tür Açıklama Ağırlık Number Üzerine pozunu azaltmak için kullanılan karışım ağırlığı. Varsayılan değeri 1.0 (tam geçersiz kılma) ve sınırlı değildir. - Olay verisi
- Olay Yönetimi:
- Düğüm, hem Temel hem de Üzerine girişlerinden gelen olayları dinler.
- Olay Yayılımı:
- Temel Olayları: Temel girişten gelen tüm olaylar değişmeden geçer.
- Üzerine Olayları: Üzerine girişten gelen olaylar Ağırlık özelliği ile ölçeklendirilir.
- Ağırlık 0.5 olduğunda, Üzerine olayları yarım ağırlıkla yayılır.
- Ağırlık 0 olduğunda, susturulur.
Ekle

Ekleme pozunu Temel pozuna ekler, belirli bir Ağırlık ile azaltılmıştır (sınırlı değildir).
- Girişler
- Temel: Ana animasyon pozisyonu.
- Ekleme: Temel üzerine katmanlanacak poz.
- Özellikler
Özellik Tür Açıklama Ağırlık Number Temele uygulanan ekleme pozunun gücünü belirler. - Olay verisi
- Olay Yönetimi: Düğüm, hem Temel hem de Ekleme girişlerinden gelen olayları dinler.
- Olay Yayılımı: Hem Temel hem de Ekleme girişlerinden gelen tüm olaylar değişmeden geçer.
Çıkar

Bir animasyonu, hedef pozdan bir ilişkili temel pozunu çıkararak eklemeli bir poz haline dönüştürür (). Ağırlık, çıkarma işleminden önce B pozunu ölçeklendirir (sınırlı değildir).
- Girişler
- A: Hedef animasyon pozisyonu.
- B: Çıkarılacak ilişkili temel poz.
- Özellikler
Özellik Tür Açıklama Ağırlık Number B pozunu çıkarılmadan önce ölçeklendirir. 1.0 (varsayılan) olduğunda, B tamamen çıkarılır; 0.0 olduğunda, çıkarma işlemi gerçekleşmez. - Olay verisi
- Olay Yönetimi: Düğüm, hem Giriş A hem de Giriş B'den gelen olayları dinler.
- Olay Yayılımı: Hem Giriş A hem de Giriş B'den gelen tüm olaylar değişmeden geçer.
Karışım1D

Tek bir eksende mevcut giriş pozisyonuna en yakın iki animasyon pozisyonu arasında lineer olarak interpolasyon yapar.
- Girişler
- Giriş1...GirişN
- Pozisyon (Number): Karışım eksenindeki her bir sonraki giriş için belirli koordinat.
- Özellikler
Özellik Tür Açıklama Pozisyon Number Animasyonları örneklemek için kullanılan karışım eksenindeki mevcut aktif değer. Eğer Pozisyon tanımlanan giriş pozisyonlarının aralığının dışındaysa, düğüm en yakın iki girişi kullanarak dışarıdan tahmin yapar. AşamaSenkronizasyonu Enum.AnimationNodePhaseSync Çocuk girişlerinin zamanlamasının senkronize edilip edilmeyeceğini yapılandırır.
- Senkronize (varsayılan): Normalleştirilmiş senkronizasyon. Düğüm, aktif girişlerin ağırlıklı ortalamasına dayalı "sanayi süresi" hesaplar. Her giriş düğümünün zaman adımı, tüm çocukların aynı aşamaya ulaşmasını sağlamak için ayarlanır, böylece farklı uzunluktaki animasyonlar senkronize kalır.
- Senkronize Değil: Kliplerin kendi oynatma hızlarında bağımsız olarak ilerlediği standart karışım.
- Olay verisi
- Olay Yönetimi: Düğüm, tüm mevcut aktif çocuk düğümlerden gelen olayları dinler.
- Olay Yayılımı: Yalnızca en yüksek ağırlıklı aktif girişten gelen olaylar yayılır, karışım ağırlığı ile ölçeklendirilir. İkincil girişten gelen olaylar susturulur.
Karışım2D

İki giriş parametresine dayalı olarak birden fazla animasyon pozunu 2D koordinat alanında birleştirir. Bu, hem hareket yönü hem de hızına dayalı karmaşık senaryoları ele almak için Karışım1D düğümünü genelleştirir.
- Girişler
- Giriş1...GirişN
- X (Number): Her bir sonraki giriş için X koordinatı.
- Y (Number): Her bir sonraki giriş için Y koordinatı.
- Özellikler
Özellik Tür Açıklama GirişModu Enum.AnimationNodeBlend2DInputMode Karışım alanını değerlendirmek için kullanılan koordinat sistemini tanımlar:
- Kartezya (varsayılan): Standart 2D ızgara koordinatlarını kullanır. X ve Y, karışım alanındaki mevcut konumu temsil eder.
- Kutu: Açısal ve büyüklük değerlerini kullanır. X, radyan cinsinden yönü temsil ederken, Y hareketin büyüklüğünü veya gücünü temsil eder. Yön, büyüklükten daha fazla ağırlık taşır, bu nedenle benzer açılardaki ancak farklı büyüklükteki girişler, farklı açılardaki girişlerden daha pürüzsüz bir şekilde karışır.
X Number Mevcut X koordinatı (Kartezya) veya Yön (Kutu). Y Number Mevcut Y koordinatı (Kartezya) veya Büyüklük (Kutu). AşamaSenkronizasyonu Enum.AnimationNodePhaseSync Çocuk girişlerinin zamanlamasının senkronize edilip edilmeyeceğini yapılandırır.
- Senkronize (varsayılan): Normalleştirilmiş senkronizasyon. Düğüm, aktif girişlerin ağırlıklı ortalamasına dayalı "sanayi süresi" hesaplar. Her giriş düğümünün zaman adımı, tüm çocukların aynı aşamaya ulaşmasını sağlamak için ayarlanır, böylece farklı uzunluktaki animasyonlar senkronize kalır.
- Senkronize Değil: Kliplerin kendi oynatma hızlarında bağımsız olarak ilerlediği standart karışım.
- Olay verisi
- Olay Yönetimi: Düğüm, tüm mevcut aktif çocuk düğümlerden gelen olayları dinler.
- Olay Yayılımı: Yalnızca en yüksek ağırlıklı aktif girişten gelen olaylar yayılır, karışım ağırlığı ile ölçeklendirilir. İkincil girişten gelen olaylar susturulur.
Maske

Giriş Pozuna önceden tanımlanmış bir maske uygular. Bir maske, rig hiyerarşisindeki her nesne (örneğin, eklem) için bir ağırlık ile tanımlanır ve animasyonun hassas kontrolünü veya "yumuşatma" işlemini sağlar.
- Girişler
- Poz: Maskelenecek animasyon pozisyonu.
- Özellikler
Özellik Tür Açıklama Maske ObjectValue Maske ağırlıklarını tanımlayan bir ObjectValue (Maske AnimationNodeDefinition'ın doğrudan çocuğu olarak oluşturulmuştur). İki şekilde işlev görebilir:
- Doğrudan: ObjectValue kendisi, rig nesne adlarını belirli ağırlık değerlerine eşleyen özellikler içerir.
- Referansla: ObjectValue, eşleme özelliklerini içeren başka bir Instance'ı referans alır. Bu, grafikteki farklı düğümler arasında paylaşılan maskelere olanak tanır.
Bir maske oluştururken, hiyerarşiyi doldurmak için bir rig şeması (HumanoidRigDescription veya Seçici) seçebilirsiniz.
- HumanoidRigDescription: Maskeyi insansı karakterler için standartlaştırır.
- Seçici: Kullanıcının maske hiyerarşisini doldurmak için çalışma alanındaki belirli bir rigi seçmesine olanak tanır.
Ters Boolean Doğru olduğunda, ağırlık değerlerini 1 - ağırlık olarak uygular. Bu, yeni bir varlık oluşturmadan ters bir maske kullanmanıza olanak tanır. - Olay verisi
- Olay Yönetimi: Düğüm, giriş Poz'dan gelen tüm olayları dinler.
- Olay Yayılımı: Giriş Poz'dan gelen tüm olaylar değişmeden geçer.
Hız

Gelen bir animasyon pozunun oynatma hızını değiştirir.
- Girişler
- Poz: Oynatma hızının değiştirileceği animasyon poz veya alt grafik.
- Özellikler
Özellik Tür Açıklama Hız Number Zaman delta'sına () uygulanan bir çarpan. 0.0 grafiği duraklatır, 1.0 normal hızdır ve 2.0 iki kat hızdır. - Olay verisi
- Olay Yönetimi: Düğüm, giriş Poz'dan gelen olayları dinler.
- Olay Yayılımı: Giriş Poz'dan gelen tüm olaylar değişmeden geçer. Görsel oynatma hızı değişse de, yayımlanan olayların (örneğin, işaretçiler) zamanlaması, değiştirilen oynatma hızı ile orantılı olarak ölçeklenecektir.
GrafikÇıkışı

Grafiğin son değerlendirilmiş pozunu temsil eder. Bu düğüm, Animasyon Grafiği Editöründeki tüm yeni grafiklerde otomatik olarak dahil edilir. Varlığı, grafiğin her zaman geçerli olmasını ve sürekli bir animasyon pozunu üretmesini sağlar.
- Girişler
- Poz: Rige uygulanacak son işlenmiş animasyon verisi.
- Özellikler
- Yok
- Olay verisi
- Olay Yönetimi: Düğüm, son bağlı girişten geçen tüm olayları dinler.
- Olay Yayılımı: Bu düğüm, animasyon hattının çıkış noktasıdır ve grafiğe geri sinyal yaymaz.
Geçişler
Animasyon Grafiğindeki birkaç düğüm (örneğin, Seç, Öncelik Seç, Sıra ve Rastgele Sıra), aktif girişler arasında geçiş yaparken animasyonların nasıl karıştığını yönetir. Düğüm referansında gereksizliği önlemek için, bu davranışlar standart geçiş özellik grupları tarafından tanımlanır.
Varsayılan geçiş

Düğüm yeni bir aktif girişe geçtiğinde uygulanan temel karışım davranışı.
- VarsayılanGeçişSüresi (sayı): Yeni pozisyona tamamen karışmak için geçen süre (saniye cinsinden).
- VarsayılanGeçişEğrisi (Enum.PoseEasingStyle): Karışım sırasında uygulanan easing fonksiyonu. Şu anda yalnızca Enum.PoseEasingStyle.Linear ve Enum.PoseEasingStyle.CubicV2 desteklenmektedir.
Geçiş geçersiz kılma
Varsayılan geçişi geçersiz kılan giriş özel bağlantı özellikleri. Bu, düğümün o belirli girişe geçiş yaptığında uygulanır.
- GeçişOverrideSüresi (sayı): Varsayılan geçiş süresini geçersiz kılar.
- GeçişOverrideEğrisi (Enum.PoseEasingStyle): Varsayılan geçiş eğrisini geçersiz kılar. Şu anda yalnızca Enum.PoseEasingStyle.Linear ve Enum.PoseEasingStyle.CubicV2 desteklenmektedir.
Çoğaltma
Animasyon grafiği parametreleri ve iç düğüm durumu otomatik olarak çoğaltılır. Çoğaltma modu, Animate betiği oluşturulduğunda Workspace.AuthorityMode tarafından belirlenir:
- Enum.AuthorityMode.Automatic: AnimationTrack:SetParameter() aracılığıyla ayarlanan parametreler otomatik olarak diğer eşlere çoğaltılır.
- Enum.AuthorityMode.Server: Sunucu, tam grafik simülasyonunu yönetir. Enum.AnimationNodeType.ClipNode için geçen süre gibi tüm düğüm durumları ve grafik parametreleri, sunucudan istemcilere otomatik olarak çoğaltılır. Sahip olan oyuncunun istemcisi, pürüzsüz yerel oynatma için tahmin kullanır.
Örnek Animate Betikleri
Bir rig için bir animasyon grafiğini yönlendirmek üzere örnek betikler oluşturmak için, Animasyon Grafiği Editöründe Grafik -> Animate betiği oluştur seçeneğini kullanın. Bu, StarterCharacterScripts altında (oyuncu karakterleri için) veya doğrudan rig üzerinde (NPC'ler için) yerleştirilen bir betik hiyerarşisi üretir:
Animate (ModuleScript)
├── RunClient (LocalScript)
└── RunServer (Script, RunContext = Legacy)Animate ModuleScript, grafik yükleme mantığını içerir. RunClient ve RunServer betikleri, uygun bağlamda bunu çağırır. Hangi betiklerin dahil edileceği kullanım durumuna bağlıdır:
| Kullanım Durumu | Dahil Edilen Betikler | Davranış |
|---|---|---|
| NPC (herhangi bir mod) | RunServer | Sunucu grafiği yükler ve oynatır. Durum, tüm istemcilere otomatik olarak çoğaltılır. |
| Oyuncu + Enum.AuthorityMode.Server | RunServer + RunClient | Sunucu, grafiği yetkili olarak yönetir. Sahip olan istemci, geri alma tabanlı yerel tahmin için Enum.PredictionMode'yi etkinleştirir. |
| Oyuncu + Enum.AuthorityMode.Automatic | RunClient | Sahip olan istemci grafiği yükler ve oynatır. Parametreler otomatik olarak sunucuya ve diğer istemcilere çoğaltılır. |
Aşağıdaki özellikler, Animate betiği üzerinde saklanır ve davranışını yapılandırır:
| Özellik | Tür | Açıklama |
|---|---|---|
| GrafikAdı | String | Animasyon grafiği varlığının adı. |
| KarakterAdı | String | Grafiğin hedef aldığı rig'in adı. |
| KaynakVarlıkKimliği | String | Grafiğin yayınlanan Varlık Kimliği. Yayınlanmış oyunlarda çalışma zamanında kullanılır. |
| SunucuYetkisi | Boolean | Betik, Workspace.AuthorityMode Sunucu olarak ayarlandığında oluşturulmuşsa. Çoğaltma stratejisini belirler. |
| Studio'da Önizleme | Boolean | Doğru olduğunda (varsayılan), Studio oyun testi, yayımlanmamış grafiği yerel olarak yükler, böylece yayımlamadan iterasyon yapabilirsiniz. Yayımlanmış varlığı Studio'da test etmek için yanlış olarak ayarlayın. Şu anda Enum.AuthorityMode.Server'da bu desteklenmemektedir. |
Otomatik modda parametre çoğaltma
Workspace.AuthorityMode Otomatik olduğunda:
- sahip olan istemci, oyuncu karakter grafiğini yönetir; sunucu, NPC grafiğini yönetir.
- AnimationTrack:SetParameter() aracılığıyla ayarlanan parametreler otomatik olarak diğer eşlere çoğaltılır. Tek bir çerçeve içinde birden fazla SetParameter çağrısı birleştirilir (son yazar kazanır).
- Parametre taşımak için ek bir betik yazımına gerek yoktur — motor, çoğaltmayı dahili olarak yönetir.
- Diğer istemciler, parametre güncellemelerini küçük bir gecikme ile (bir gönderim aralığı artı ağ gecikmesi) görür.
Sunucu yetkisi
Workspace.AuthorityMode Sunucu olduğunda:
- sunucu, tüm grafikler için yetkilidir — simülasyonu çalıştırır ve tam grafik durumunu çoğaltır.
- Neler çoğaltılır: Hem parametreler hem de iç düğüm durumu, geçen süre, mevcut seçimler, geçiş ilerlemesi, döngü sayıları ve RNG tohumları dahil. Bu, tüm istemcilerin aynı animasyon davranışını görmesini sağlar.
- Oyuncu karakterleri: Sunucu grafiği yönetir. Sahip olan istemcinin RunClient betiği otomatik olarak Animator üzerinde Enum.PredictionMode'yi etkinleştirir, böylece yerel oyuncu pürüzsüz, tahmin edilen animasyonu görür ve sunucu ile uyumsuzluk durumunda uzlaşır.
- NPC'ler: Sunucu, grafiği yalnızca yönetir; istemciler, çoğaltılan durumu gözlemler.
Parametreleri yönlendirme
Grafiği çalıştıran her betikten AnimationTrack:SetParameter() kullanın:
- NPC (herhangi bir mod): SetParameter'ı RunServer'dan (veya AnimationTrack'a erişimi olan herhangi bir sunucu Script'inden) çağırın.
- Oyuncu karakteri Enum.AuthorityMode.Server içinde: SetParameter'ı hem RunServer hem de RunClient'dan çağırın. Sunucunun yetkili simülasyonu yönlendirmek için parametrelere ihtiyacı vardır ve sahip olan istemcinin de yerel tahminini yönlendirmek için aynı parametrelere ihtiyacı vardır.
- Oyuncu karakteri Enum.AuthorityMode.Automatic içinde: SetParameter'ı RunClient'dan (veya AnimationTrack'a erişimi olan herhangi bir istemci LocalScript'inden) çağırın.
Oluşturulan Animate betiği, başlangıç noktası olarak yorum satırı ile kapatılmış bir SetParameter bloğu içerir. Yorum satırını kaldırın ve oyun durumu (hareket hızı, insansı durum, giriş yönü vb.) ile parametreleri yönlendirmek için değiştirin.