leonscottkfm

Unreal MVP
31 May 2015
1,540
5
219
63
28
(34) İstanbul Avrupa
store.steampowered.com
Elimde 3 4 tane farklı yerlerden alınmış mannequinn iskeletine sahip karakterler var.
Bu karakterlerin iskeletleri çok parçalı yani çantası var birinin mesela iskeletli yapıda diğerinin şapkası var vs vs.
Benim Online oyunumda ise karakter seçimi olacak ama her karakter aynı animbp ve aynı özelleri kullanıp aynı şeylere sahip olacak Left4Dead oyunundaki gibi mesela her şey aynı fakat görünüm farklı.

Dolayısıyla karakter switchlemek için ana özelliklere sahip bir masterbp oluşturup bunları da alt dal şeklinde mi yapmam uygun olur ?
Mesela yapay zeka MasterBp ye saldırsa bunların hepsine saldırabilir mi tek tek ? Hedefi masterbp üzerinden versem ? Çünkü onlara da saldırması gerekiyor.
 
Her türlü yolu yapabilirsin hepsi işe yarar bir şekilde yolunu bulursun. Ben olsaydım ilerde farklı şeyler ve farklı saldırılabilir aktörler ekleme ihtimaline karşı şöyle yapardım:

1-Saldırılabilir aktörlere "damageable" tagı eklerdim. Canavar bir şeyin saldırılabilir olduğunu anlamak için bu tag var mı ona bakar varsa saldırır. 

2-Bir stat componenti yapardım. Bu stat componentine de "health" tagı eklerdim.  Canavar saldırdığında aktöre cast bile yapmadan get components by tag ile health tagı bulunan stat componi bulmaya çalışır, eger varsa ne kadar damage vuracaksa o kadar can düşürürdüm. Böylece her bir farklı aktör için yeni kodlamalar yapmak yerine o aktöre bir tag ve bu health componenti ekleyip componentin default değerlerini yazarsın. Sonradan mesela bu stat componentini başka şeyler için de kullanabilirisn. Mesela akıl sağlığı için. İnsanlara bu stat componentinin ikincisini eklerdim ve tag olarak "sanity" eklerdim. Bir canavar görünce de bu sanity componentini bulup ne yapacaksam yapardım. Böyle böyle istediğin kadar stat ekleyebilirsin farklı aktörlere farklı sınıflara. Ve sadece bir defa bir stat componenti programlamış olursun. Sonraki oyunlarına bu componenti de migrate edebilirsin.
 
Çözümün mantıklı teşekkür ederim ama farklı bir sorun devreye girdi :D

Karakter seçiminde dediğim gibi MasterPoseSkeletal özelliği var vücudun her parçası bir skeletal mesh gibi davranıyor ve hepsini bir arada tutmak için pose yapıyoruz SetMasterPoseComponent

E ben main karakterimi yani MasterBP yi Child edip bunları oluşturdum. Ama o main de bunlar yok dolayısıyla onun constructunu kullandığı için bu sefer kendi içerisindeki construct üzerinden işlem yapamıyorum bunu nasıl çözeceğiz...



Yani resimli anlatmak gerekirse bu şekilde. Ana karakterden türemiş bir child class için ayrı bir construct yapamıyorsak nasıl olacak bu iş ? Her karakter için ayrı ayrı animasyon vs oluşturmak istemiyorum. Child edip hepsini child içinde özelleştireceğim ama constructu kullanamıyorum ki.

O zaman sanırım yine senin dediğin olaya gelecez. Farklı farklı bp ler kullanıp spawn edeceğim hepsi kendi içerisinde özel "Child etmeden" daha sonra DamegeableComponent ekleyip çözeceğiz heralde. Bu şekilde olmayacak gibi çünkü.

Ama bu seferde sorun büyüyor. AnimationBlueprintte Karakterim Cast Edilmiş durumda hangi player Cast edildiyse onda çalışacak dolayısıyla farklı farklı bp ler yapmama imkan yok tek bp üzerinden çözmem lazım olayı...
 
Yaşadığın sorunu anlayamadım çünkü master içindeki construction u hala çalıştırıp üstüne child içinde construction çalıştırabiliyorsun. Master içindeki kod hala çalışıp child içindeki de ekstradan çalışır. master içindeki çalışmasın dersen parent call ı silip sadece child içinde construction u çalıştırabilirsin. Eğer master constructionda yapılması şart şeyler varsa onları childa kopyalayabilir ya da masterde yapılmaması gereken şeyleri child içinde yeniden istediğin şekilde değiştirebilirsin.

Turuncu renkli parenti silip ve bu karakter için istediğin constructionu yaparsan sadece child içinde yazdığın construction çalışır.

Ayrıca her karakter için ayrı aktör oluşturmak mantıklı değil.