Skip to content

Üretilmiş bir karaktere hareket edebilen saç kazandırmak ​

Oleg Sidorkin, Cinevva CTO'su ve Kurucu Ortağı

Üretilmiş bir karakter, ikna edici bir saç modeline sahip olsa bile saçları bağımsız olarak hareket edemeyebilir. Çıktı tek bir yüzey, ince kartlardan oluşan bir koleksiyon veya birbirinden kopuk parçalar olabilir. Bu temsillerin hiçbiri simülatöre bir saç telinin nereden başladığını, hangi yönde uzadığını veya nasıl bükülmesi gerektiğini söylemez.

Önceki saç deneyimiz, sanatçılar tarafından donatılmış avatarlar ve seçilmiş bir at kuyruğuyla başlamıştı. Bu kez yeniden kullanılabilir saç mesh'leri ve kurbağa karakterimizle başladık. Soru daha temeldi: Bir saç modelini uyarlayabilir, içinden kullanışlı kılavuz eğrileri geçirebilir ve animasyon sırasında köklerini bağlı tutabilir miyiz?

Mevcut prototip, 46 saç modelinden 10.467 aday kılavuz çıkarıyor ve bunların 10.346'sı için kafa derisi bağlantısı buluyor—%98,84. Bu, bir bağlantı sonucudur. Doğal saç hareketinde %98,84 başarı oranı değildir.

Mesh'i ve kılavuzlarını deneyin ​

Demo hemen yüklenir. Bir Saç modeli seçin, ardından özgün mesh, kılavuzlarla birlikte mesh ve yalnızca kılavuzlar arasında geçiş yapmak için Saç incelemesi seçeneğini kullanın. Görünümün çevresinde dönmek için önizlemeyi sürükleyin; ön tarafın yanı sıra arka tarafı da inceleyin. Bağlantının hareket eden karakteri takip edip etmediğini görmek için bir Animasyon seçin.

Camgöbeği eğrilerin kafa derisi bağlantısı vardır. Turuncu eğriler reddedilmiştir. “Önerilen kökleri göster” seçeneği, önerilen bağlantı noktalarını görünür kılar. Long01, yoğun yapılı faydalı bir örnektir; Fransız örgüsü varyasyonları ise ayrı parçaları birleştirmenin zorluğunu ortaya koyar. Noktaları ve bağlantı meta verilerini incelemek için kılavuz eğrilerini indirin.

Open this demo in a full window ↗

Uygun serbest saç modelleri artık önceki makalemizdeki ortak saç çözücüsüne bağlanan deneysel bir adaptör kullanıyor. Adaptör en fazla 24 kılavuz zinciri seçiyor, eklemler oluşturuyor ve görünür mesh ile kılavuz katmanına aynı skinning ağırlıklarını veriyor. Başlık kısmı sabit kalıyor; desteklenmeyen bölgeler başa bağlı kalmayı sürdürüyor. Uygun serbest kılavuzları bulunmayan kısa modeller rijit bağlantıyı koruyor. İki Fransız örgüsü örneği, ayrı deneysel eklem zinciri işlemlerini sürdürüyor. İnceleme görünümü değiştirildiğinde oynatma korunuyor.

Önce uyarlayın, sonra bağlantıyı kurun ​

MakeHuman koleksiyonlarından, rasta varyasyonlarından ve Quaternius varlıklarından 46 adet CC0 saç modeli seçeneği derledik. Her seçeneğin demoda bir kaynak bağlantısı bulunuyor; varlık kataloğu ve lisans envanteri kaynak geçmişini koruyor. Bunlar yeniden kullanılabilir mesh varlıklarıdır; aynı şekilde donatılmış bir saç teli kütüphanesi değildir.

İlk yerleştirme gözle görülür biçimde başarısız oldu: saç, kurbağanın başının arkasında kalıyordu. Sınırlayıcı kutuya dayalı ölçekleme, amaçlanan kafa derisini belirlemeden nesneleri hizalamıştı. Uyarlama geçişimiz artık kaynak tepe noktasını tahmin ediyor, bunu hedef baş yüzeyiyle hizalıyor ve üst kısımdaki çakışan saçları yaklaşık bir baş zarfına göre dışarı taşıyor.

Bu yaklaşım, giysi makalesinde kullandığımız ayrıma benziyor: bir varlığı yerleştirmek, şeklini uyarlamak, bir donanıma bağlamak ve ona ikincil hareket kazandırmak farklı işlerdir. Saç kökü kafa derisinde kalmalı, saçın uzun kısımları ise vücudun üzerine çökmek yerine saç modelinin şeklini korumalıdır.

Kurbağa bilinçli olarak zorlayıcı seçildi: geniş bir baş, çıkık gözler ve insan dışı oranlar. Mevcut üst/arka kafa derisi maskesi özellikle bu karakter için çıkarılıyor. Bu, herhangi bir üretilmiş modelde çalışan otomatik bir kafa derisi algılayıcısı değildir. Bazı modeller hâlâ yüzü kapatıyor veya uygun olmayan oranlara sahip.

Mevcut yüzey üzerinden yollar izleyin ​

Her saç mesh'inden bir bağlantı grafiği oluşturuyoruz. UV dikişleri nedeniyle ayrılmış, aynı konumdaki köşeler bu analiz için birleştiriliyor; render edilen kaynak mesh korunuyor. Her bağlı bileşende, ilk kök adayından ayrık uç noktalara doğru yüzey yolları buluyor, ardından bu yolları yumuşatıp yeniden örnekleyerek eğrilere dönüştürüyoruz.

Komşu i ve j köşeleri için grafik kenarının maliyeti, aralarındaki geometrik mesafedir:

wij=‖xj−xi‖,P∗=arg⁡minP∑(i,j)∈Pwij.

Bu en kısa yol oluşturma yöntemi mesh yüzeyini takip eder. Biyolojik büyüme yönünü keşfetmez. İlk yüksek nokta kökü yalnızca bir öneridir; kafa derisine yakınlık daha sonra bir eğrinin yönünü tersine çevirebilir. Düz bir kart çoğu zaman kullanışlı bir yol sağlarken kapalı bir başlık veya bağlantısız bir bukle çok daha belirsizdir.

Bunlar tek tek saç tellerinin yeniden oluşturulmuş hâlleri değil, aday kılavuz eğrilerdir. Tek bir kart görünür birçok saç telini temsil edebilir ve bir yüzey yolu amaçlanan akışı kesebilir. Yoğun camgöbeği kapsama alanı etkileyici görünebilirken yanlış yönleri gizleyebilir. Görsel inceleme testin bir parçası olmayı sürdürüyor.

Köklerin gerçek kafa derisini takip etmesini sağlayın ​

Bir kılavuzun uç noktası, uygun bir kafa derisi üçgeniyle eşleştirilir. Çok uzaktaysa bağlantıyı keyfî biçimde başa doğru uzatmak yerine reddederiz. Kabul edilen kökler, üçgenin köşe indislerini ve barisentrik ağırlıklarını saklar.

Animasyonlu gövde üzerindeki a(t), b(t) ve c(t) üçgen köşeleri için bağlı kök şöyledir:

r(t)=λaa(t)+λbb(t)+λcc(t),λa+λb+λc=1,λi≥0.

Üçgen köşeleri skin ile hareket ederken ağırlıklar sabit kalır. Görüntünün tamamını yalnızca başa bağlamak, örneklenen Yürüme kontrolümüzde 0,657 mm'ye varan kök kaymasına yol açmıştı. Saklanan üçgen bağlantısını takip etmek bu hatayı sayısal hassasiyet düzeyine indirdi: dört animasyon zamanında örneklenen 74 Long01 kökü için 10−12 metreden az.

Bu, sahnenin metre kabulü altında yapılan sayısal bir tutarlılık kontrolüdür. Algısal olarak doğru bir saç çizgisini, eğri boyunca yüzey açıklığını veya her animasyondaki kararlılığı kanıtlamaz.

Belirsizliği gizlemeden parçaları birleştirin ​

Bazı saç modelleri birçok bağlantısız parça hâlinde gelir. Kafa derisinden uzaktaki bir parça, zaten bağlanmış bir saç tutamının devamı olabilir. Her iki yönü de test ediyor ve yalnızca uç noktalar birbirine yakınsa ve yönleri uyumluysa parçayı kabul edilmiş bir kılavuza bağlıyoruz.

Mevcut birleştirme kuralı, bu sahnenin ölçeğinde 25 mm mesafe sınırı ve 0,5 değerinin üzerinde bir teğet nokta çarpımı kullanıyor. Yalnızca zaten bağlanmış yollar üst öğe olabilir; bu da döngüleri önler. Eğri uzunluğu, nokta sayısı ve birleştirme geçişleri sınırlandırılmıştır. Bu eşikler prototip tercihleridir, evrensel saç parametreleri değildir.

Birleştirme, kabul edilen kümeye 1.851 bağlantı ekliyor. Fransız örgüsü varyasyonu, doğrudan bağlanmış 136 kılavuzdan 509 kılavuzun tamamının bağlandığı duruma ulaşıyor; dağınık örgüde ise 519 kılavuzun 512'si bağlanıyor. Kalan yedi parça turuncu kalıyor. Bir bağlantı yine de incelenmelidir: geometrilerin birbirine yakın olması, iki parçanın aynı saç teline ait olduğunun kanıtı değildir.

Ölçülen kapsama alanını keşfedin ​

Bir model arayın veya yalnızca reddedilmiş kılavuzları bulunan modelleri gösterin. Bağlantılar, karşılık gelen canlı inceleme görünümünü açar. Bu sayılar, sürekli hesaplanan bir fizik skoru değil, kaydedilmiş 46 modellik denetimin sonuçlarıdır.

46 of 46 styles · saved audit

Eksiksiz bağlantı sonuçlarını indirin.

Denetimde 46 modelin tamamı tarayıcı hatası olmadan yüklendi. Çıkarma işlemi, üç Elvs mesh'indeki 90 köşeyi dışarıda bıraktı. Dört odaklı test; bağlantıyı, dışarıda bırakılan öğelerin raporlanmasını, yeniden oluşturulabilir kafa derisi bağlantılarını, parça birleştirmeyi ve uzaktaki parçaların reddedilmesini denetliyor. Masaüstü ve 390 piksellik mobil görünümler incelendi; mobil sayfada yatay taşma görülmedi.

Sonuçlar, bu kurbağaya uyarlanan bu kütüphaneyi ölçüyor. Her tür üretilmiş geometriyi, tüm pozları, kendi kendine çarpışmayı veya başka bir motora aktarmayı kapsamıyor.

Bunun saç fiziğine dönüşmesinden önce neler yapılmalı? ​

Mevcut kılavuzlar kökleri ve aday yolları sağlıyor. İlk adaptör artık mevcut sabit zaman adımlı yay, dinlenme şekli ve temas çözücümüzü yeniden kullanıyor. Long01'de 39.804 mesh köşesinden 18.204'ünü 24 zincire bağlıyor; örneklenen bir serbest saç noktası, kontrollü testte başa göre 13,6 mm hareket etti. Bu, doğal hareketi veya çarpışmasız animasyonu değil, ikincil deformasyonu doğruluyor. Mesh ve katman aynı skinning alanını kullanıyor. Güvenilir yönlendirme, her tutam boyunca tutarlı ağırlıklar ve kapsamlı hareket kontrolleri hâlâ gerekli.

Sonraki aşamalar; belirsiz kökleri ve parça birleşimlerini incelemek, ayrı tutamlar arasında yırtılmaya yol açmadan kılavuz seçimini ve ağırlıkları iyileştirmek ve hareket sırasında vücut temasını doğrulamaktır. Kendi kendine temas için ek çalışma gerekiyor. Dışa aktarma ve yeniden yükleme işlemleri de bu bağlantıları korumalıdır.

Üretilmiş karakterlerde ayrı bir saç yüzeyini değiştirmek pratik bir başlangıç noktasıdır. Birleştirilmiş baş ve saç mesh'i başka bir ön koşul ekler: saç bölgesini belirlemek ve altında kullanılabilir bir kafa derisi oluşturmak. Kurbağa deneyimiz bu segmentasyon sorununu çözmüyor.

Artık incelenebilir bir ara sonuca sahibiz: uyarlanmış bir mesh, açıkça tanımlanmış aday yollar, hareketli yüzey bağlantıları ve görünür reddetmeler. Bir sonraki iyileştirme yalnızca camgöbeği eğrilerin sayısını artırmakla kalmamalı, bu yolların ikna edici biçimde davranmasını sağlamalıdır.