Oyuncularımın artık gerçek yüzleri var.
Mimari şöyle: her oyuncu için tek bir gövde iskeleti. Motion matching, montage'lar ve retarget edilen her animasyon orada yaşıyor ve ona asla dokunmuyorum. Kafa, gövdenin pozunu sadece giyen ayrı bir MetaHuman mesh'i ve bir oyuncunun hangi kafayı alacağı veritabanı kimliğinden belirleniyor. Aynı oyuncu, aynı yüz, her makinede, sonsuza dek.
Oyuncular koşarken boyunları zürafa gibi uzuyordu. Gövdenin kafa kemiğini, MetaHuman kafanın içinden dışarı taşmasın diye gizliyordum. Meğer bir kemiği gizlemek onun transform'unu çökertiyormuş ve kafa mesh'i kendini pozlamak için tam olarak o transform'ları kopyalıyor. Yüze bozuk bir kafa kemiği besliyordum. Dururken çalışıyor, hareket edince patlıyordu.
Bu iki özellik kelimenin tam anlamıyla bir arada var olamıyor ve bunun kodla bir çözümü yok. Cevap, ilk gün kendi tasarım belgeme yazdığım ve sonra saatlerce kaçtığım o sıkıcı çözümdü: gövde mesh'ine kafa verme. Kafa poligonlarını Blender'da sil, kemiği tut. Gerçek futbol oyunlarının yaptığı da tam olarak bu. Artık sıfır çalışma zamanı mantığı. Bu sorun sınıfının nesli tükendi.
Ders: temiz çözüm “içerik işi”, derme çatma çözüm “kod” olduğunda ben koda uzanıyorum. O içgüdü bana bir akşama mal oldu.
Ve yüzler kozmetik değil. Her oyuncu bir veritabanında bir satır: isim, yaş, sözleşme, potansiyel. Yani altyapından gelen on yedi yaşında bir çocuk A takıma sıçradığında “Player_0412” olmuyor. Tanıdığın bir yüzü var.
Yayında: ortak animasyon gövdesinde MetaHuman kafalar
Bu yazı, yapay zekâ desteğiyle İngilizceden çevrilmiştir. Orijinalini oku