Rigleyicinin kemik vermediği kuyrukları canlandırmak
Yazan: Oleg Sidorkin, Cinevva CTO'su ve Kurucu Ortağı
11 Eylül 2026'da güncellendi: farenin bize öğrettikleri elastik bükülmeleri, zemin temasını ve kuyruğun yol açtığı ikinci bir gövde yükselmesi türünü ele alıyor.
Bir kullanıcı, antropomorfik bir tilkiyi rigleyicimizde rigledi ve Walk klibini oynattı. Gövde sorunsuzdu. Kuyruk, ıslak bir havlu gibi sol bacağa kıvrılmıştı ve sol ile sağ bacak ağırlıklarının birleştiği yerde yırtılıyordu. Aşağıdaki örnek boyunca bu tilkiyi kullanıyoruz; düzeltme artık hem rigleyicide hem de klipleri oynatan çalışma zamanı kütüphanesinde yayında.
Bu makaledeki tilki ve fare, 3B model oluşturucumuzla üretildi, ardından Cinevva'da riglenip canlandırıldı.

Soldan sağa, aynı karede adımın ortasında: rigleyiciden çıktığı hâliyle rig, kuyruğun tek parça olarak pelvise bağlandığı aynı rig ve çalışma zamanında sallanan, kendi kemik zincirine sahip kuyruk. Üçünün de çevresinde aşağıda dönebilirsiniz.
İnsansı bir rigleyici bunu neden yapar?
Fast motorumuz, sabit bir Mixamo tarzı iskelet öngören Make-It-Animatable üzerine kuruludur: 22 gövde kemiği veya parmaklarla birlikte 65 kemik. Mesh'teki her köşe bu kemiklerden birine atanmalıdır. Kuyruk listede olmadığından model, bildiği en iyi ikinci seçeneği uygular ve kuyruğun köşelerini, öğrendiği özellik uzayında en yakın olan gövde parçasına verir. Bu tilkide söz konusu parça sol kaval kemiğiydi; kalan kısım ise iki uyluk arasında bölünmüştü.
Bu, ağırlıklardaki bir hata değildir. Şablonun kendisidir. Hiçbir istem veya ayar modelin kuyruk kemiği üretmesini sağlayamaz, çünkü üretebileceği bir kuyruk kemiği yoktur. Aynı şey kanatlarda, pelerinlerde, uzun saçlarda ve gövdeden sarkan diğer her şeyde yaşanır.
Herhangi bir değişiklik yapmadan önce bunun tilkinin kuyruğundaki 1.582 köşeye maliyetini ölçtük. Her köşenin onu gerçekten hareket ettiren kemiklere uzaklığı, ağırlıklarla ağırlıklandırıldığında, 191 cm boyundaki bir modelde ortalama 47 cm çıktı. Kuyruk yarım metre uzaktan hareket ettiriliyordu.
Kuyruğu bulmak
Bu aşamada elimizde yalnızca riglenmiş GLB var ve ihtiyacımız olan da bu. İşlem yalnızca bizimkinin değil, herhangi bir rigleyicinin çıktısı üzerinde çalışır.
İskelet üzerinde bir uzaklık alanı. Her
Bir köşenin iskelet uzaklığı, tüm parçalar arasındaki minimum değerdir. Yaprak eklemler, eklemin ötesinde kısa bir uzantıya sahip olur; böylece burun veya el, kendi kemiğinden uzakta sayılmaz. Bu uzaklık model boyunun %7'sini aştığında köşe uzak kabul edilir. Tilkide bu değer 13 cm'dir.
Uzak derinin bağlantılı parçaları. Uzak köşeler, mesh'in kendi yüzleri boyunca bağlantılı bileşenler hâlinde gruplanır. Bir ayrıntı bize bir saate mal oldu: dışa aktarıcılar köşeleri UV ve sert normal dikişlerinde böler. Bu nedenle bu mesh'te 23.129 köşe olmasına rağmen yalnızca 29.081 üçgen var ve tek başına yüz grafiği bir kuyruğu onlarca adacığa ayırıyor. Önce köşeleri konumlarına göre kaynatıyor, bağlantıyı kaynatılmış grafik üzerinde çalıştırıyor ve ağırlıkları özgün köşe başına geri yazıyoruz.
Nereye bağlanıyor? Bir parçanın yakası, ona komşu olan uzak olmayan köşelerin halkasıdır. Merkezinden, en yakın ekleme göre parçanın nereden sarktığını anlarız; ancak bir yanlılık uygularız: en yakın uzaklığın 1,5 katı içinde bulunan bir gövde veya uyluk eklemi tercih edilir. Çünkü pelvis çevresinde uyluk başları kalçalara tam olarak aynı uzaklıktadır ve aralarında bulunan bir kuyruk kökü gövdeye aittir. Bunun için yakanın ağırlıklarına özellikle güvenmiyoruz. Ayrı bir kabuk olarak modellenmiş kuyruklarda (oyun modellerinin çoğu böyledir) yaka, kuyruğun kendi kök halkasıdır ve düzeltmeye çalıştığımız aynı hatalı ağırlıkları taşır.
Bu bir uzuv mu, yoksa gövde mi? İki test uyguluyoruz. Kalın bir gövdenin kemikten uzaktaki derisi kemiğin çevresini sarar, dolayısıyla kütle merkezi yeniden kemiğin üzerine düşer. Kuyruk ise bir yana doğru uzanır, dolayısıyla kütle merkezi her kemikten uzaktadır. Ağırlık merkezinin iskelet uzaklığının, parçanın erişiminin en az %40'ı olmasını şart koşuyoruz. Ardından bir şekil testi gelir:
Tilkinin kuyruğu üst üste binen iki kabuk olarak çıktı (derinin üzerinde kürk vardı ve hiç kaynatılmamışlardı). Bu nedenle aynı bağlantıdaki sınırlayıcı kutuları yarıdan fazla örtüşen parçalar birleştirilir. Tek kuyruk, tek zincir.
Birinci adım: rijit hâle getirmek
İlk dürüst düzeltme bir öğleden sonra sürer. Parçanın her köşesine Hips üzerinde 1,0 ağırlık verilir. Kuyruk yırtılmayı bırakır ve pelvisle birlikte tek parça hâlinde hareket eder. Bir kalas gibi görünür; görseldeki ortadaki tilki budur. Bunu bir kilometre taşı olarak yayınladık, çünkü yapısı gereği esneme değeri tam olarak sıfırdır ve aşağıdaki ölçüm için kullanışlı bir referans oluşturur.
İkinci adım: boyunca bir zincir oluşturmak
Kuyruk boyunca bir koordinat. Mesh kenarlarını kenar uzunluklarıyla ağırlıklandırarak yakadan parçanın içine doğru Dijkstra algoritmasını çalıştırıyoruz. Her kuyruk köşesi, kökten itibaren bir jeodezik uzaklık
Eklemler. Parça sayısı Tail_1 ile Tail_K arasındaki kemiklerin yanı sıra ağırlıksız bir Tail_End kemiğinden oluşur. Hips altında ebeveynlenirler ve Hips bind rotasyonunu paylaşırlar; böylece her biri ebeveyninin çerçevesinde saf bir öteleme olur. Ters bind matrisleri doğrudan buradan elde edilir ve mevcut klipler bunlardan hiç söz etmediği için devamındaki hiçbir şey bozulmaz.
Ağırlıklar.
Bir eklemde iki kemik 50/50 oranında buluşur; parçanın ortasında ise kemiğin biri deriye tamamen sahip olur. Kök parçasında "prev", Hips'tir; böylece kuyruk yakada kırışmak yerine gövdeye yumuşak biçimde karışır.
İşlemden sonra kuyruktaki ağırlıklandırılmış kemik uzaklığı 47 cm'den 17 cm'ye düştü; bu yaklaşık olarak kuyruğun kendi yarıçapıdır. Derinin, kendisini hareket ettiren kemiğe yaklaşabileceği mesafe budur.

Üçüncü adım: kemikleri bir şeyin hareket ettirmesi gerekir
Kütüphanemizdeki hiçbir klip kuyruk izi içermiyor; dolayısıyla ek bir işlem yapılmazsa zincir bind pozunu korur ve tilki bir kalasla dolaşır. Oyunlar bunu prosedürel ikincil hareketle çözer; biz de aynısını, riglenmiş her modelin zaten yüklediği çalışma zamanı kütüphanesinde yapıyoruz.
Her eklem ucu, hızı
Burada
Parçacıklar dünya uzayında bulunduğu için kalçaların dönmesi veya hızlanması kuyruğun geride kalmasına ve kendi başına sallanmasına yol açar. Hiçbir şey betiklenmemiştir.
Burada üç hatayı itiraf etmeye değer; çünkü her biri bir şey ölçülene kadar sorunsuz görünüyordu.
İlk sürüm, her parçacığı her karede hedefe olan mesafenin sabit bir oranı kadar, 60 fps'de %12, hedefe çekiyordu. Yay olarak yazıldığında bu
İkinci sürüm, ip düzeltmesini hız olarak, yani düzeltmenin
Üçüncü hata aşağıdaki taşıma açısıydı. Bu açı her eklemin kendi çerçevesinde uygulanıyordu; dolayısıyla dört kemikli bir kuyruk dört kez yükseliyor, tilkinin sırtına dayanıp top gibi kıvrılıyor ve her bükülmede kendi derisini yırtıyordu. Bunu aşağıdaki ölçüm ortaya çıkardı: kuyruk kenarlarının esneme değeri p99'da 2,3'e çıkmıştı; gövde tabanı ise 1,3'tü. Yani başladığı kaval kemiği durumundan daha kötüydü. carry artık tüm kuyruğun yükselme miktarıdır ve eklemler arasında paylaşılır.
Kesişme. Kuyruk, bacakların arasında dümdüz aşağı sarkacak şekilde modellenmişti ve yürüyüş döngüsünde ayaklar içinden geçiyordu. Bu nedenle yayın hedeflediği dinlenme pozu mesh'in kendi pozu değildir: 50°'lik bir carry, dinlenme hedeflerini kalçaların yan ekseni çevresinde arkaya ve yukarı kaldırır; tıpkı hareket eden bir tilkinin kuyruğunu taşıması gibi. Bu 50°, tüm kuyruğun yükselme açısıdır ve eklemler arasında paylaşılır; böylece zincir ister dört ister sekiz kemik uzunluğunda olsun, yay yumuşak kalır. Ayrıca hiçbir parçacık, kuyruk kökünden geçen ve öne bakan düzlemi aşamaz; böylece kuyruk asla bacakların arasına sallanamaz.
Ölçüm
Bunlar, aşağıdaki fare değişikliklerinden önce 6 Eylül'de alınan özgün tilki ölçümleridir. Güncellenmiş varsayılanların yeni bir karşılaştırmalı testi değil, ilk zincir çözücünün kaydıdır.
Sabit görseller yırtılma konusunda hiçbir şeyi kanıtlamaz; bu nedenle klip sırasında kenar esnemesini ölçüyoruz. İki köşesi de kuyrukta bulunan her mesh kenarı için, Walk klibi boyunca eşit aralıklı 24 anda skinlenmiş uzunluğun bind uzunluğuna oranını alıyoruz. 1 oranı, deforme olmamış deri demektir. 1,5'in üzerinde uzayan veya 0,67'nin altında sıkışan bir kenar yırtılmış sayılır. Normal skinning deformasyonunun nasıl göründüğüne dair bir taban değer elde etmek için gövde kenarları da aynı şekilde ölçülür.
| Walk klibi, 96.864 kuyruk kenarı örneği | p95 | p99 | maks. | yırtılmış |
|---|---|---|---|---|
| Özgün rig | 1.60 | 2.42 | 4.03 | 11.4% |
| Hips'e rijit bağlı | 1.00 | 1.00 | 1.00 | 0% |
| Kuyruk zinciri | 1.09 | 1.18 | 1.30 | 0% |
| Referans olarak gövde | 1.13 | 1.29 | 1.78 | — |
Özgün rig, her dokuz kuyruk kenarından birini yırtılma sınırının ötesine uzatıyordu ve en kötü kenar bind uzunluğunun dört katına çıkıyordu. Zincirdeki en kötü kenar %30 uzuyor; bu değer gövdenin kendi 1,78'lik taban değerinin içinde kalıyor ve hiçbir şey yırtılmıyor. Rijit kuyruk tek parça hâlinde hareket ettiği için tam olarak 1,00 değerinde kalıyor. Zincirdeki sonuca güvenmeden önce test düzeneğinin doğru çalıştığını bize gösteren sayı buydu.
Gerçekten sallanan bir kuyruğun kendi derisini bir miktar deforme etmesi gerekir. Dolayısıyla zincirin görevi 1,00'a ulaşmak değil, gövdenin zaten yaptığı deformasyonun altında kalmaktır. Bu tablonun önceki bir sürümünde zincir için 1,03'lük bir p99 değeri gösteriliyordu; bu daha iyi görünse de aslında daha kötüydü: yukarıdaki hız hatası kuyruğu aşırı sönümleyerek rijit sürüme yakın hâle getirdiğinden kuyruk neredeyse hiç hareket etmiyordu.
Canlı karşılaştırma
Tilkinin üç kopyası; aynı klip, aynı kare. Çevresinde dönmek için sürükleyin, yakınlaştırmak için tekerleği kullanın. Klipler arasında geçiş yapın, zinciri taşınan dinlenme pozunda görmek için kuyruk fiziğini kapatın ve zincirin nerede durduğunu görmek için kemikleri açın.
Aynı zincir yandan, tek başına ve iskeleti çizilmiş hâlde. Yay etkisini en iyi gösteren klip Sprint'tir.Farenin bize öğrettikleri
Tilki, bir zincirin yırtılmayı durdurabileceğini gösterdi. Uzun ve ince kuyruklu bir fare, geriye kalan hareket hatalarını görmeyi çok daha kolaylaştırdı. Tilkinin kürkü içinde kaybolan keskin bir bükülme, farede kırık bir eklem gibi görünür. Farenin kuyruğu ayrıca zemine kadar uzanıyor ve modellenen şekli bir yana doğru kıvrılıyor. Bunlar üç ayrı sorun; yay sertliğini artırmak hepsini çözmüyor.
Aşağıdaki animasyon kitaplığında fareyi farklı animasyonlarla deneyin. Kamerayı döndürmek için karakteri sürükleyin, küçük resim şeridini yana kaydırın ya da bir hareket bulmak için arama ve kategori filtresini kullanın. Büyük önizlemede oynatmak için bir kutucuğa tıklayın. Kuyruğu incelerken Walk, Crouch Backward, Crawl Idle ve Back Flip iyi başlangıç noktalarıdır. Şerit, animasyonlar ana bölümümüzdeki canlı animasyon önizlemelerinin aynısını kullanır ve siz göz atarken hareketleri yükleyerek tüm kataloğu erişilebilir kılar.
Bu hareketleri kendi iskeletli karakterinizde denemek ve seçtiğiniz klipleri dışa aktarmak için tam animasyon kitaplığını açın →.
Bir yay zincirinin yine de bükülme direncine ihtiyacı vardır
Parçacıklar, her kemiğin uzunluğunu koruyacak şekilde kısıtlanmıştı ancak her eklem hâlâ neredeyse bağımsız olarak sallanabiliyordu. Uzunluk kısıtlamaları esnemeyi önler; bir menteşenin katlanmasını önlemez. Fare tam olarak bu ayrımı ortaya çıkardı.
Artık komşu eklemlerin, dinlenme eğrisine göre ölçülen ilave bükülmelerini birbirine bağlıyoruz. Bükülmeler ortak bir referans çerçevesinde karşılaştırılıyor; böylece farklı kemik eksenleri, sola doğru bir bükülmeyi bir sonraki eklemde alakasız bir burulmaya dönüştürmüyor. Her adım, kısmen güncellenmiş değerler yerine komşularının anlık görüntüsünü okuyor. Bağlama harmanı, işlenen kare başına sabit bir oran yerine saniyede varsayılan
Bir eklemin elastik bükülmesi, dinlenme yönünün 30° ötesiyle sınırlandırılıyor. Ayrıca sönümlemeyi 0.65'e çıkardık ve bükülme sınırına doğru itmeyi sürdüren hızı kaldırdık; böylece bu hız birikip ani bir sıçrama olarak açığa çıkamıyor. Taban kalçalardan destek almaya devam ederken uç kısım daha yumuşak kalıyor. Kuyruğun zemine uzanması gerektiğinde temas, bükülme sınırını geçersiz kılabiliyor.
Parçacık konumlarını değil, dönüşleri bağlamak.
Bu eşlenik dönüşüm, bükülmenin koordinat çerçevesini değiştirir; karaktere başka bir dönüş eklemez. Önceki adımdan alınan
Tabanda komşu hedefi, bir sonraki eklemin bükülmesiyle kalçalardan gelen desteği temsil eden özdeşlik kuaterniyonu
Skaler bileşeni
Bu bükülmeyi tekrar ebeveyn çerçevesine dönüştürüp temas izdüşümlerinden önce
Yüklenen poz, bağlama pozu olmak zorunda değildir
Farenin kaydedilmiş dosyasında, son kuyruk ekleminde zaten yaklaşık 28° dönüş vardı. Bu yüklenmiş dönüşü nötr kabul ediyor, ardından üzerine yay hareketini ekliyorduk. Daha önce canlandırılmış veya dışa aktarılmış bir poz, yayın hedefinin kalıcı bir parçasına dönüşmüştü.
Çözücü artık iskeletin ters bağlama matrisleri mevcut olduğunda nötr yerel dönüşümleri bunlardan elde ediyor. Bir iskelette Tail_End yardımcı kemiği yoksa son segment, son kemiğin kendi yerel çerçevesinde ifade edilen gelen teğeti sürdürür. Uç kemik farklı bir yönelime sahip olur olmaz ebeveyn çerçevesinden bir vektör kopyalamak hatalıdır.
Tek taraflı kıvrımın başka bir nedeni daha vardı: gerçek bağlama geometrisinde zaten mevcuttu. Bu nedenle bağlama pozunu doğru şekilde elde etmek sapmayı korudu. Simülasyon artık kalça uzayında oluşturulup düzeltilmiş her ebeveynin çerçevesine dönüştürülen, ortalanmış bir dinlenme yayını varsayılan olarak kullanıyor. restCurve, modellenen kıvrımı yeniden harmanlayabilir: 0 ortalanmış yaydır, 1 ise oluşturulmuş eğriyi korur. Bu, yayların hedefini değiştirir; ağı veya deri ağırlıklarını yeniden yazmaz.
Referans dönüşümlerini elde etmek.
Ortalanmış yayı oluşturmak. restCurve;
Burada
Kuyruk zemine değebilir; fareyi kaldıramaz
Zemin teması, bir segmenti uzunluk küresiyle zeminin kesişimine döndürür. Bir parçacığın yüksekliğini basitçe sınırlamak kemiği kısaltır; yüksekliği sınırlayıp ardından uzunluğu geri yüklemek ise kemiği yeniden zeminin altına sokabilir. Kalınlık için merkez çizgisinin altında 0.025 dünya birimi bırakıyor, aşağı yönlü temas hızını atıyor ve kaymayı sönümlüyoruz. Düz zemin varsayılan olarak dünya Y = 0 düzlemindedir; taşınabilir veya devre dışı bırakılabilir. Bu, arazi ya da tam ağ çarpışması değil, bir düzlem kısıtlamasıdır.
Küre-zemin kesişimi.
Tahmin edilen uç nokta zeminin altındaysa
Yüksekliği tam olarak
Diğer hız izdüşümlerinden sonra temas eden bir parçacığın kalan aşağı yönlü hızı kaldırılır ve hızı sönümlenir:
Bu, Coulomb sürtünme modeli değil, basit sönümlemeli esnek olmayan temastır. Kuyruk zeminde dururken yerçekiminin aşağı yönlü hız biriktirmesini önler.
Bu, kuyruğun zemine girmesi sorununu çözdü; ancak kuyruğun ayakları havada bırakabileceği iki yer daha vardı.
İlk olarak görüntüleyici, yüklenen ağın tamamındaki en alçak noktayı zemine yerleştiriyordu. Kaydedilmiş kuyruk ayak tabanlarının altına sarkıyorsa kuyruğa yer açmak için tüm karakteri yukarı kaldırıyordu. Görüntüleyici artık gövde zeminini bulurken kuyruğun baskın olduğu deriyi yok sayıyor; kamera kadrajı ise karakterin tamamını içermeyi sürdürüyor.
İkinci olarak, yeniden hedefleyicinin gövdeyi zemine oturtma geçişi de kuyruğu hesaba katıyordu. Back Flip sırasında, bağımsız kuyruk çözücü daha sonra bu deriyi hareket ettirecek olsa bile onu zeminden uzak tutmak için pelvisi yükseltiyordu.
Hangi deri pelvisi yükseltebilir?
Burada
Aşağıdaki karşılaştırmada bildirilen ilave kaldırma, yalnızca ham düzeltme değil, nihai pelvis yörüngeleri arasındaki farktır:
Back Flip'in sonuna yakın ölçülen pelvis yükselmesi
Aynı fareyi aynı animasyon zamanlarında, kuyruğun gövdeyi zemine oturtma işlemine dahil edilip edilmediğini değiştirerek örnekledik. Her iki sütun da aynı model dünya koordinatlarını kullanır; aradaki fark, kuyruğu hesaba katmanın getirdiği ilave yüksekliği yalıtır.
| 1.93 sn'lik klipteki zaman | Pelvis yüksekliği: kuyruk dahil | Pelvis yüksekliği: kuyruk hariç | Kuyruğu dahil etmenin getirdiği ilave yükselme |
|---|---|---|---|
| 1.16 sn | 50.5 cm | 35.0 cm | 15.4 cm |
| 1.55 sn | 81.3 cm | 70.3 cm | 11.0 cm |
| 1.84 sn | 92.2 cm | 77.2 cm | 15.0 cm |
| 1.93 sn | 90.6 cm | 77.2 cm | 13.4 cm |
Karakter, inişten sonra doğrulurken yükselmelidir. Hata, amaçlanan bu toparlanma hareketi değil, son sütundaki ilave yükselmedir. Değerler, örneklenen dünya konumlarından bağımsız olarak yuvarlanmıştır.
Bu farede kuyruğu hariç tutmak, Back Flip'in sonlarına doğru yaklaşık 15 cm'lik ilave pelvis yükselmesini ortadan kaldırdı. Sona yakın gövde sondası, zeminin birkaç santimetre üzerinde süzülmek yerine referans zeminin yaklaşık bir milimetre yakınında kaldı. Kuyruk derisi artık ne gövdenin zeminini ne de pelvisi yükselten düzeltmeyi belirliyor. Kuyruk çözücünün kendisi yalnızca kuyruk kemiklerini döndürür; modeli, kalçaları veya ayakları hiçbir zaman ötelemez.
Bir animasyon, siz onu oynatmadan önce bir pozu devralabilir
Yükselmiş çömelme pozu ayrı bir sorunu ortaya çıkardı. Görüntüleyicinin her klip hazır olmadan oynatmaya başlayabilmesi için kitaplık kliplerini aşamalı olarak üretiyoruz. Yeniden hedefleme işlemi, oynatma ile aynı iskeleti kullanıyordu. Çözümler arasında önizleme pelvisi hareket ettirebiliyor ve sonraki klip bu animasyonlu pozu kalibrasyon referansı olarak okuyabiliyordu. Klip değiştirirken sıfırlama yapmak, oluşturulan izlere zaten işlenmiş kötü bir referansı düzeltemiyordu.
Yeniden hedefleme artık oynatma başlamadan önce alınan kararlı bir kalibrasyondan oluşturulmuş özel iskelet kopyaları üzerinde çalışıyor. Sonraki klip istekleri bu referansı yeniden kullanıyor ve eşzamanlı istekler ayrı kemiklere sahip oluyor. Bir regresyon testi, teslim edilen klipler arasında canlı kalçaları kasıtlı olarak hareket ettirip döndürüyor; oluşturulan izlerin temiz bir çalıştırmayla aynı kalması ve çözüm işleminin canlı poza dokunmaması gerekiyor. Görünen her hareket bir hata değildi. Climb Idle’ın kaynak döngüsünde, kök sabitken pelvis hafifçe yukarı aşağı hareket ediyor. Ayrıca yeni bir Crawl Idle çözümünde farenin elleri döngü boyunca başının altında kaldı; ellerin havada olduğu ekran görüntüsü, kaynak animasyonun bu pozu istediğine dair bir kanıt olmaktan ziyade daha önce kirlenmiş bir kliple tutarlıydı. Kaynağı, yeni bir çözümü ve oynatılan sonucu karşılaştırmak, bir kalibrasyon hatasını gizlemek uğruna bilinçli hareketleri düzleştirmemizi önledi.
Artık neleri kontrol ediyoruz
Kontroller; farklı uzunluklardaki zincirlerde hızlı kalça salınımlarını, komşu eklemler arasındaki daha yumuşak bükülmeleri, eşit sol/sağ tepkilerini, bind pozuna dönüşü, yardımcı kemiği olmayan döndürülmüş bir uç kemiği ve ısınma sonrasında döngünün kapanmasını kapsıyor. Zemin testleri; çömelmeyi, yükseltilmiş zemin düzlemlerini, kalçalar yükseldiğinde yerleşme ve serbest kalma davranışlarını kapsıyor. Ayrı regresyon testleri, kuyruk temasının gövdeyi hiçbir zaman hareket ettirmediğini ve kuyruk skin’inin pelvisin yükseltilmesini isteyemediğini doğruluyor.
Bu kontroller belirli değişmezleri güvence altına alıyor. Farenin hareketlerini izleyerek değerlendirme yapmanın yerini tutmadıkları gibi, tilki için yeni esneme değerleri de belirlemiyorlar. Canlı örnekler güncellenmiş çözücüyü kullanıyor; önceki tilki tablosu ise ilk ölçümün kaydı olarak kalıyor.
Bu sizin için neyi değiştiriyor?
cinevva.com/tools/rigger adresinde kuyruklu bir karakter rig’lerseniz kuyruk kendi kemik zinciriyle birlikte gelir, iş durumu bulunan yapıyı açıklayan bir appendages girdisi içerir ve önizlemede kuyruk sallanır. Platform API’si üzerinden rig’lenen modeller de aynı dosyayı alır. rt/1.1.12 sürümündeki ilk entegrasyon, createAnimator işlevinin Tail_* kemiklerini bulup ek kod gerektirmeden hareket ettirmesini sağladı; daha ağır veya daha ağırkanlı bir kuyruk istiyorsanız yayın frekansı, sönümleme, yerçekimi ve taşıma açısı seçeneklerini değiştirebilirsiniz. Kuyruk zinciri bulunmayan eski dosyalar yeniden rig’lenerek bu işlemden tekrar geçirilebilir. Yukarıda açıklanan 11 Eylül değişiklikleri artık Cinevva’nın web önizlemelerinde yayında. Eski bir çalışma zamanı sürümüne sabitlenmiş oyunlar ve daha önce dışa aktarılmış klipler otomatik olarak güncellenmez. Mevcut bake edilmiş kliplerin düzeltmeleri alması için yeniden oluşturulması gerekir.
Blender’da. Eklenti, armature’ı oluşturmadan önce rig tablosunda aynı işlemi çalıştırır; böylece kendi bilgisayarınızda rig’lediğiniz kuyruk da aynı adlarla aynı zinciri edinir. Fingers seçeneğinin yanında bir Tail onay kutusu bulunur ve sonuç kartı ne bulunduğunu belirtir.
Çalışma zamanımızın dışında. Bir oyundaki yay sistemi, dosyayı Blender, Unity veya Unreal’da açan ve kuyruğu hareketsiz görecek birine yardımcı olmaz. Bu nedenle dışa aktarma işlemi artık hareketi bake ediyor: seçilen her klip simüle ediliyor ve kuyruğun dönüşleri gerçek keyframe’lere örnekleniyor. Dışa aktarıcı, kayıt işlemine başlamadan önce klibi kuyruk işlemin başladığı konuma dönene kadar sessizce çalıştırıyor; çünkü soğuk başlangıçtan bake edilen bir döngü kapanmaz ve kuyruk her tekrarda sıçrar. Uç bölüm bilinçli olarak en yumuşak bağlantıdır, dolayısıyla geçici hareketinin yatışması en uzun sürer ve tek bir ısınma geçişi her zaman yeterli olmaz.
İşlem bilinçli olarak temkinlidir. Yalnızca pelvisten sarkan uzun bir parça için zincir oluşturur. Kulaklara, saçlara ve kollara dokunulmaz; gövde üzerindeki geniş parçalar da aynı şekilde korunur. Önceki bir sürüm pelerini veya eteği katı biçimde gövde kemiğine bağlamıştı ve gerçek yüklemelerdeki sonucu görmek fikrimizi değiştirdi. Örneklerden biri, rigger’ın kalçalara ve her iki uyluğa mantıklı biçimde dağıttığı, beldeki 6.540 vertex’li bir giysiydi; tek bir kemik, giysinin bacakları takip etmesini tamamen engellerdi. Bir giysiyi tek bir kemiğe bağlamak, parçanın ne olduğuna dair bir tahmine dayanarak başkasının karakterinde yapılan büyük bir değişikliktir; bu nedenle artık kendiliğinden başınıza gelen değil, özellikle talep ettiğiniz bir işlemdir. İleri düzlemin ötesinde bacaklarla çarpışma yoktur ve karakter hareketsiz dururken boşta salınım gerçekleşmez; dolayısıyla ayakta duran bir tilkinin kuyruğu, taşıma pozunda sessizce sarkar. Sıradaki iki iş bunlar; ayrıca farklı bir dinlenme pozu ve farklı bir yay gerektiren kanatlara da aynı yaklaşımın uygulanması planlanıyor.