serhatwxe

Unreal MVP
3 Ocak 2016
317
1
54
28
(34) İstanbul Avrupa
Alttaki hazır mermi blueprinti olduğu için BP'nın sağ tarafını atmama gerek yok. Klasik bir projectile. 
Ben sadece BP'ye şunu ekledim: Mermi "Enemy" tagına sahip olan aktöre vurursa 1 damage ver. Bunu yapabiliyorum çalışıyor.

Şimdi istediğim ise headshot atması. Karakterin kafasına collision ekledim buna "Head" tagı ekledim. Aynı işlemi uyguluyorum olmuyor çünkü Actor Has Tag koşulu sadece aktörleri için geçerli. Eklediğim collision bir aktör değil.
Kısaca mermi kafaya çarpınca 5 damage birden gitmesini istiyorum. Bunu nasıl yapabilirim?

projectile.png


Bu da düşman karakterin BP'si.
zombiebp.png
 
Serhat,

Bence Sphere Collision'ını Begin Overlap ekle ve Projectile'a cast et eğer hit almışsa demage'ı 5 yap.

Belki daha iyi bir yöntem de vardır benim bilmediğim benimki sadece bir öneri.

Kolay gelsin,
 
nurisural' Alıntı:
Serhat,

Bence Sphere Collision'ını Begin Overlap ekle ve Projectile'a cast et eğer hit almışsa demage'ı 5 yap.

Belki daha iyi bir yöntem de vardır benim bilmediğim benimki sadece bir öneri.

Kolay gelsin,

Begin overlap mı yoksa Component Hit mi daha mantıklı? Bir de yardımcı olabilir misin nette pek kaynak bulamadım. Projectile'ı böyle cast etmem mantıklı mı. Sphere'e çarpınca şu olsun mantığını yapmak için, Sphere'e hangi objenin çarpacağını nasıl ekleyebilirim müsait olduğun bir zamanda ufak bir BP yapabilir misin?

zombie bp:
[img=887x510]https://i.ibb.co/vXKBv98/pp3.png[/img]
 
Serhat,

Açıkçası daha önce hiç FPS yapmadım. Bu yüzden hangi node'un daha başarılı olabileceğini bilmiyorum. Ayrıca FPS çalışmadığım için bunun  Blueprint'ini yapamam.

Fakat bu işin algoritmasal mantığına baktığımızda; Character BP kısaca ateş emrini veriyor, Projectile ilerliyor ve bir şeye temas edip etmediğine bakıyor, Zombie karakterindeki sphere collision'ın ise eğer kendisine temas edenin projectile ise headshot oldum emrini veriyor.

Zaten begin overlap ile projectile'ını cast ettiğinde bunu ilişkilendirmiş oluyorsun. 

Bence şimdi biraz da debug kontrolünü yaparak branch'larla ilerle ve örneğin print string ile head shot yazısı yazdır. Ve oyunda Vücuda ateş edince ne olduğunu, kafsına ateş edince ne olduğunu gözlemle. İstediğin gibi sonuç alabiliyorsan doğru yoldasın demektir.

Alternatif veya daha iyi bir önerisi olan arkadaşların katkısına da bakarsan daha iyi olur. Çünkü benim önerimin en iyi öneri olup olmadığı konusunda emin değilim.
 
Kurşunun çıktığı yerden line trace verip hit bone ile etkileşim sağlayıp kafasına değdiğinde canının daha fazla düşmesini sağlayabilirsin ve böylelikle hem collision kalabalığından kurtulursun hemde bu sistem daha sağlıklı olur.
 
nonlinear' Alıntı:
Bu içeriği görmek için üçüncü parti çerezlerine izin vermeniz gerekli.
Daha fazla detay için çerezler sayfasını ziyaret edin.

Kolay gelsin, iyi forumlar


Uzun bir zaman geçmiş konuyu yeni gördüm. Event hit yerine linetraceforobjects kullanarak aynısını yaptım fakat çalışmadı.(ALS Fiziği kullanıyorum, projectile kullanmıyorum.)