cankaya05

Yeni üye
10 Mar 2021
14
1
0
(34) İstanbul Avrupa
Unreal engine 4 ile birşeyler denemeye çalışıyorum kendi çapımda. Projeme bir karakter ekleyip envanter sistemi kurdum. Herşey iyi güzel gidiyorken kendi kendime neden zırh, kıyafet vesayre kuşanma sistemi üzerine
 çalışmayayım ki? Dedim. 
Demez olaydım. Bu işi nasıl yapacağıma dair en ufak bir kaynak yok. Yabancı kaynakları araştırdım Türk kaynaklara baktım ama yok. Biri blender aracılığı ile birşeyler gösteriyor diğeri başka birşey. Net birşey bulamadım. 
Şimd şöyle ki ben yerden aldığım item'i giymek istiyorum. Yere bir çelik işlemeli pantolon bıraktım. Onu alıyorum ve karakterimin kemiğine socketle koyuyorum. Ama bacaklar hareket ederken pantalon sabit kalıyor. Bunun kemikle alakası var mı diye araştırdım. Çıkardığım sonuç pantolonun da karakterimin kullandığı kemik sisteminin aynısını kullanması gerekiyormuş. Bundan bile emin değilim sadece anladığım bu. Pantalona kemik eklemeyi düşündüm ama yapamadım. Karakterimin kemiğini alıp Pantolona entegre etmeye çalıştım blender kulanarak, sonuç yapamadım. Hiç bir şekilde ben karakterime pantolon zırh kıyafet giydiremiyorum. Bilen eden varsa ne olur buna bir açıklama getirsin. Sorularım şunlar;

1- Kıyafetlerin karakterimle aynı kemik sistemini kullanması mı gerekiyor?
2- static mesh bir obje olan pantalonu kullanamaz mıyım?
3- blender aracılığıyla karakterimin kemik yapısını herhangi bir objeye verebilir miyim?

Yardımlarınız için şimdiden teşekkür ederim.
 
1. İki tür mesh var. Birisi static mesh diğeri skeletalmesh. static mesh hiç bir kemik yapısına sahip olmayan kaya dolap vb gibi eğilip bükülmesi gerekmeyen nesnelerdir. Skeletalmesh ise kıyafet gibi vucut gibi saç gibi veya silahlar gibi kendi içerisinde hareketi olan, eğilip bükülmesi ya da açılması kapanması gereken nesnelerdir. Skeletal meshler bu eğilip bükülme özelliğini üzerindeki vertexler yani poligon kesişimlerindeki noktalarda bulunan ağırlık (weight) datasından alırlar. Yani skeletal meshler bir iskelete bağlıdır ve bu iskeletin kemiklerine herbir vertexleri bazılarına bir şekilde bağlıdır. O kemik döner o vertex de döner.  Bir pantolon düşün ve dizindeki tek bir poligon vertex ini ( nokta diyelim biz hadi) düşün. Bu alt bacaktaki kemiğe 0.5 üst bacaktaki kemiğe 0.5 bağlı ( bind denir aslında ) olabilir. Buna göre bu pantolonun o vertexi kemik hareket ettiğinde hangisine  ne kadar uyacağını bilir. Bu vertex için alt bacak kemiğine 0.5 uyacak üst  bacak kemiğine 0.5 uyacaktır. mesela daha aşşağıdaki bir kemiğe bağlı olsa ve ağırlıği 1.0 olsa ona tam uyum sağlayacak ve o nere dönerse o da oraya  dönecek ya da gidecektir.
    Bu mantığa göre static mesh ler de bu data hiç olmadığı için onları hiç bir şekilde eğilip bükülecek leri şekilde hareket ettiremessin. Onları sadece bir kemiğe dışarıdan (attach) yapabilirsin. O kemiğe bağlı olur ve onu takip eder. Bunu mesela bir bıçak düşün adamın belindeki kemiğa attach yapabilirsin ve o kemiğ bağlı olarak onu takip eder. Ama kendi içerisinde eğilip bükülmez. Kütle olarak takip eder. Çünkü muhtemelen o bir static mesh tir. Skeletal mesh değildir. Üzerindeki noktalarda bir weight üyesi yoktur ki ağırlık hesabı  yapabilsin kemiklere göre.
   Soruna gelecek olursak bir kıyafet giydirmek istiyorsan o kıyafet öncelikle bir skeletal mesh olmalı. Karakterin vucuduna göre hareket etmesini istiyorsan aynı kemik yapısına bağlanmış olmalı. Bunların hiç birisini Unreal içinden yaratamazsın. Dışarıda Blender da ya da başka bir app ile aynı kemik yapısına bu pantolonu bağlaman gerekiyor. Kemik hiyerarşisi ve isimleri aynı olmalı hiç bir fark olmamalı. Aynı zamanda her noktaya verilen ağırllık (weight) te aynı olmalı. Eğer aynı olmassa pantolondan orasının burasının çıktığını göreceksindir. Aslında Unreal içerisinde retarget sistemi ile bir kemik sistemindeki  tüm animasyonu başka bir kemik sistemine de verbiliyorsun ama kıyafet işinde bu işe yaramaz problem çıkartır.

2. Bu soruya cevap yukarıda anlattığım gibi static meshi bir yere attach yaparsın öyle kütle olarak durur. Mesela karakterin şapkası böyle olabilir. Bıçağı böyle olabilir. Sırt çantası eğilip bükülmesini istemiyorsan gerçekçi olmasın kütle olarak sırtında dursun diyorsan o da olabilir. Ama sırt çantası sırtına göre eğilip bükülsün şekil değiştirsin diyorsan o başka. O zaman o da skeletal mesh olacak.

3 . Blenderım iyi değildir. Ancak istediğin meshi istediğin kemik yapısına blender da bağlayabilirsin. Ancak pantolon gibi giyilecek şeyler için bu yeterli değildir. Karakterin vucudundaki vertexlere göre aynı weight ağırlıkta olmalı aynı zamanda. Bunun içinde ya vucutla beraber herşeyi yeniden bağlayacaksın. Ya da vucuttaki vertex weight leri pantolona aktaracaksın. Maya da bu yapılabiliyor. Blenderda weight aktarılabiliyor mu billmiyorum. Eğer aktarılamıyorsa pantolonu  kemiğe bağlayabilirsin ancak orası burası dışarı çıkacak ve isteidğin gibi bir görüntü oluşmayacaktır.
 
1- Kıyafetler deforme olacaksa kemik sistemi mecburi. aynı kemik sistemi ise genellıkle evet. Bazen belki zaman zaman da hayır.
2- Deforme olacaksa hayır kullanamazsın.
3- Verebilirsin ama çok kolay değil.
 
Detaylo yorumlarınız için çok teşekkür ederim. Benim küt kafam için kusura bakmayın ama şöyle bir örnek vermek istiyorum. Ben paragon karakterini aldım blender'dan kafa kısmını sildim. Yanş karakter baştan sona zırhlı olduğu için elimde sadece zırhı ve kemik yapısı kaldı. Ben kemik yapısını da silsem, karakterimin kemik yapısını bu zırha nasıl oturtabilirim. Blender'da vertex transfer gibisinden şeyler var sanırım yapılabiliyor. Ama kemik sistemi nasıl aktarılır?
Ayrcı altı üstü bir zırh giyilecek bunun kolay bir yolu yok mu yahu bu ne böyle
 
Unreal de vücut ne olacaksa onu fbx  olarak export edeceksin. Blender da açacaksın. Aynı sahnenin içine paragon karakterini de getireceksin. Paragon karakterinin iskelet ve gereksiz kesimlerini sileceksin. Paragon mesh in sadece işine yarayacak kesimi kalacak. O mesh ten blinding i sileceksin yani kendi iskeletinden tamamen ayıracaksın ve unreal iskelete bağlayacaksın . Sonra unreal den gelen mesh ten paragon meshine vertex weight leri transfer edeceksin ( Bu kısmın blender da yapılıp yapılmadığını tam bilemiyorum ) sonra ayrı ayrı export edip unreal e import edeceksin.
 Eğer bu konuları soracak kadar az biliyorsan bu işe girmeni pek tavsiye etmem. 
 Bu işin sana zor gözükmesi şu nedenle. Unreal e aktardıktan sonra 3 4 klikte iş bitiyor. Daha o kısmı anlatmadık burada. Yani unreal de bu iş daha kolay olamazdı. Unreal bir içerik üretme aracı değil. Yani Maya yada blender değil. İçerik üretme o programların işi. Sıkıntı burada. Normalde firmalar hazır assetleri genelde bir birine bağlamıyorlar. Direk sıfırdan yapıyorĺar uyumlu olarak. Senin istediğin iş  ise biraz daha az gerekli olan bir iş. Yani unreal e bakan yönü ile iş sadece 4 klik.
Eğer bu konuya ilgin varsa baya bir rigging animation içine dalman gerek. Kolay bir yol istiyorsan character creator 3 vae satın alıp kullana bilirsin. Ama sadece onların sattığı assetleri alıp kullana bilirsin. Dışarıdan bu işleri yapmana da yardımcı olur. Ancak yine de konuyu bilmiyorsan hazır şeyleri bile kullanmak zor olacaktır.
 
Kolay pes eden biri değilimdir. Uğraşıp eninde sonunda yaparım yapmasına da tek şaşırdığım kısım bu işlemin bana aşırı zor gelmesi ki onunda açıklamasını yaptın. Gerçekten yordu beni. 
Son olarak şöyle birşey sormak istiyorum hocam. Ben paragon karakterinin head bölümünü sildim demiştim. Sadece zırh ve iskeleti kaldı. Ben bunu kendi kullandığım karakterin animasyonlarına retarget ettiğimde zırhın sorunsuz şekilde animasyonları kullandığını gördüm. Şimdi animasyonlar düzgün oynuyorsa ben halen bunu kullanamaz mıyım?
Ve değerli zamanını da çalıyorum ama söylediğin konuyla ilgili yani blender kısmını(blindingi silmek, kemik birleştirmek gibi) kaynak varmı video olsun yazı döküman olsun hiç farketmez
 
Eğer altta vücut yoksa sağdan soldan çıkma gibi bir şey olmayacağı için o şekilde de kullanabilirsin. Karakterinde her olası parca için bir  ayrı skeletalmesh olması gerekli. Sonra bunlardan birisini diğerleri için master yapmam gerekiyor. Construct script 'te setmasterposecomponet ile bunu yapabilirsin.
Blender ile ilgili çok bilgim yok maalesef. Ama geçici bir durum değilse ve bu işlerle uzun zaman uğraşmayı düşünüyorsan maya öğrenmeni tavsiye ederim. Çünkü endüstri standardıdır ve bu konularda ihtiyacın olabilecek herşey videolar dahil maya da mevcuttur.
 
Mesela karakterin vucudu tam olarak mevcutsa mesela bacak organı varsa sen onun üstüne bu zırhı oturtuyorsan alttaki mesh sağdan soldan fırlayabilir aynı weight lere sahip olmadıkları için. Ama zırh giydiriyorsun ama altında hiç bir şey yok sa boşsa bir sıkıntı olmayacaktır. Şöyle içeride eti varsa dışarıya çıkacaktır bazı yerlerde



Bu da kullanacağın node ve yeri.



Bu da benim maya serim:

Bu içeriği görmek için üçüncü parti çerezlerine izin vermeniz gerekli.
Daha fazla detay için çerezler sayfasını ziyaret edin.
 
Çok sağ olun çok yardımcı oldunuz. Dersleri yakından takip edeceğim. Eğer amacıma sağlıklı bir şekilde ulaşabilirsem ilk işim bu işi nasıl yaptığımı anlatan bir kaynak videosu çekip yayınlamak olacak.