Oyunumdaki karakterler TPS animasyonlara sahip, fakat bunu FPS olarakta kullanmak istedim. Aim offset yaptım, kollar için işi biraz daha sağlıklı yapmak için, modify bone kullandım. Çünkü kolların vücuttan biraz daha yukarı çıkmasını istiyordum.
Silahın kurşunu Socketten çıkıyor.
Fakaaat gel gelelim bir sorun var. Silahın elde durması ekranın ortasını vuracağı anlamına gelmiyor. Sonuçta bu animasyona bağlı bir şey. Kamera açınız da buna engel olabilir. Mesela siz kamera biraz daha soldan gözüksün omuz üzerinden derseniz o silahın ortayı vurduğunu göremezsiniz. Ya da ortayı vursa bile sanki sağ vuruyormuş gibi görürsünüz. Ee bu sefer soldan sıkmaya çalışsanız kamerayı iyice sola çevirmeniz gerekir çünkü kamerayı başta sola doğru kaydırdınız.
Ekranın ortasına Crosshair koyarak bunu ölçmek istediniz. Koydunuz da. Linetrace yaklaşık %95 crosshairin olduğu yere gidiyor.
Bir Widget yaptınız ve line tracenin end poitine spawn ediyorsunuz. Bu Widget normal widget değil. Çünkü siz socketten ateş ediyorsunuz. Dolayısıyla socketten çıkacak olan line trace size vurulacak yeri gösteriyor. E siz bu Tracenin bitişine Crosshair koyarsanız ne olur ? O zaman doğru sonuç alırsınız.
Fakat bu crosshair sürekli dünya üzerinde hareket eden bir crosshair olacaktır. Titreyecektir ve sizi rahatsız edecektir. Ekranın ortasına durmayacaktır, silah nereye tutuluyorsa orayı gösterecektir. Bu da bir stildir fakat çözümden çok çözümü kaçındırıp başka yola sapmaktır.
Ben de şöyle bir yol izledim. LineTrace atıyorum, Crosshairi normal WidgetBP ile yaptım. Ekran ortasını baz alacak şekilde. LineTrace ise çok farklı bir yere gidiyor. LineTraceyi socketten almadım tamamen FPS kameramdan aldım. Dolayısıyla kameranın ortası demek zaten WidgetBP nin 0.5 0.5 Centeri demek. Line Trace de kameradan merkezi konuma gideceğine göre , Widget Crosshairi ile Fps Cameradan çıkan Line Trace eşleşti. Fakat kurşun socketten çıkıyor ne olacak şimdi ? Kurşun Socketten çıkmayacak.
Efekt Socketten çıkacak fakat kurşun LineTracenin başlangıcından çıkacak. Böylece ne olmuş oldu ? Kurşun Line Trace başlangıcından çıktı sona gitti. Yani Crosshairin nişan aldığı yere. Silahın nasıl durduğunun da bir önemi kalmadı.
Kurşun o kadar hızlı çıkıyor ki kameradan çıktığı belli bile olmuyor. Silahın ucundan çıktı sanıyorsunuz. Peki sizce bu bir çözüm müdür ? Başka bir yöntem var mıdır ? Yoksa asıl çözüm zaten böyle bir Trick yapmak mıdır ?
Çünkü o kurşunun Merkezi konumdan çıkması lazım. Crosshairin ekranın ortasını göstermesi lazım. Yoksa hedefi doğru bir şekilde vuramazsınız. Size hedefe nişan alırsınız fakat 10 birim sağını vurursunuz.
Benim çözümüm %100 Nişan alan yeri vuruyor. FPS kameradan çıkan bir line trace ve start pointinden spawn olan projectile, end pointe kadar ulaşıyor.
Crosshair zaten WidgetBP de 0.5 0.5 ekranın ortasında spawnlanmış. Kameranın bakış yeri de ekranın ortasını gösteriyor. Line Trace de ortayı hedef alıyorsa. Bakılan yeri vurmak %100 dür.
Fakat diğer türlü çözümler sıkıntılı.
***KARAKTERİN AİM LOKASYONUNU ALIN :
***SİLAHIN ATEŞ EVENTİNİN TETİKLENDİĞİ YERE BU LOKASYONU GİRİN :
Yani burada sizin kendi projectileniz de olabilir. Ben eklenti kullanıyorum çünkü vuruş hissiyatını çok artırıyor. Bu eklentiyi kullanırsanız Gunplayınız çok üst seviyede olacaktır.
Spawn Transform Locationda "Calculated Socket Location" diye öncesinde hesapladığımız ve veriyi tuttuğumuz bu değişkeni belirtin.
Projectile Spawndan sonra gelen nodeler ise sekme yapmanızı sağlar yani Recoil.
Hazırlamış olduğum videoda aim kayıyor gibi gözükebilir. O kasıtlı yapıldı. Karakter IDLE pozisyonunda nefes aldığı için animasyon kamerayı oynatıyor. Fakat aim line trace kodu mouse hareket ettiği sürece çalışıyor. Yani bir miktar nefes alışla aim kaymasını zaten istiyordum. Eğer kamera ile birlikte fonksiyonu güncelleseydim en ufak bir hareketten kameraya göre değişirdi line trace. O sorun da böylece çözülürd.
Fakat bu yöntemi sadece FPS için yaparsanız TPS için çalışmayacaktır. TPS moduna geçildiğinde TPS için bir Line Trace ayarlaması yapabilir ve onu kullanabilirsiniz. Fakat yine de TPS de nasıl göründüğünü merak edenler için.
Silahın kurşunu Socketten çıkıyor.
Fakaaat gel gelelim bir sorun var. Silahın elde durması ekranın ortasını vuracağı anlamına gelmiyor. Sonuçta bu animasyona bağlı bir şey. Kamera açınız da buna engel olabilir. Mesela siz kamera biraz daha soldan gözüksün omuz üzerinden derseniz o silahın ortayı vurduğunu göremezsiniz. Ya da ortayı vursa bile sanki sağ vuruyormuş gibi görürsünüz. Ee bu sefer soldan sıkmaya çalışsanız kamerayı iyice sola çevirmeniz gerekir çünkü kamerayı başta sola doğru kaydırdınız.
Ekranın ortasına Crosshair koyarak bunu ölçmek istediniz. Koydunuz da. Linetrace yaklaşık %95 crosshairin olduğu yere gidiyor.
Bir Widget yaptınız ve line tracenin end poitine spawn ediyorsunuz. Bu Widget normal widget değil. Çünkü siz socketten ateş ediyorsunuz. Dolayısıyla socketten çıkacak olan line trace size vurulacak yeri gösteriyor. E siz bu Tracenin bitişine Crosshair koyarsanız ne olur ? O zaman doğru sonuç alırsınız.
Fakat bu crosshair sürekli dünya üzerinde hareket eden bir crosshair olacaktır. Titreyecektir ve sizi rahatsız edecektir. Ekranın ortasına durmayacaktır, silah nereye tutuluyorsa orayı gösterecektir. Bu da bir stildir fakat çözümden çok çözümü kaçındırıp başka yola sapmaktır.
Ben de şöyle bir yol izledim. LineTrace atıyorum, Crosshairi normal WidgetBP ile yaptım. Ekran ortasını baz alacak şekilde. LineTrace ise çok farklı bir yere gidiyor. LineTraceyi socketten almadım tamamen FPS kameramdan aldım. Dolayısıyla kameranın ortası demek zaten WidgetBP nin 0.5 0.5 Centeri demek. Line Trace de kameradan merkezi konuma gideceğine göre , Widget Crosshairi ile Fps Cameradan çıkan Line Trace eşleşti. Fakat kurşun socketten çıkıyor ne olacak şimdi ? Kurşun Socketten çıkmayacak.
Efekt Socketten çıkacak fakat kurşun LineTracenin başlangıcından çıkacak. Böylece ne olmuş oldu ? Kurşun Line Trace başlangıcından çıktı sona gitti. Yani Crosshairin nişan aldığı yere. Silahın nasıl durduğunun da bir önemi kalmadı.
Kurşun o kadar hızlı çıkıyor ki kameradan çıktığı belli bile olmuyor. Silahın ucundan çıktı sanıyorsunuz. Peki sizce bu bir çözüm müdür ? Başka bir yöntem var mıdır ? Yoksa asıl çözüm zaten böyle bir Trick yapmak mıdır ?
Çünkü o kurşunun Merkezi konumdan çıkması lazım. Crosshairin ekranın ortasını göstermesi lazım. Yoksa hedefi doğru bir şekilde vuramazsınız. Size hedefe nişan alırsınız fakat 10 birim sağını vurursunuz.
Benim çözümüm %100 Nişan alan yeri vuruyor. FPS kameradan çıkan bir line trace ve start pointinden spawn olan projectile, end pointe kadar ulaşıyor.
Crosshair zaten WidgetBP de 0.5 0.5 ekranın ortasında spawnlanmış. Kameranın bakış yeri de ekranın ortasını gösteriyor. Line Trace de ortayı hedef alıyorsa. Bakılan yeri vurmak %100 dür.
Fakat diğer türlü çözümler sıkıntılı.
***KARAKTERİN AİM LOKASYONUNU ALIN :
***SİLAHIN ATEŞ EVENTİNİN TETİKLENDİĞİ YERE BU LOKASYONU GİRİN :
Yani burada sizin kendi projectileniz de olabilir. Ben eklenti kullanıyorum çünkü vuruş hissiyatını çok artırıyor. Bu eklentiyi kullanırsanız Gunplayınız çok üst seviyede olacaktır.
Spawn Transform Locationda "Calculated Socket Location" diye öncesinde hesapladığımız ve veriyi tuttuğumuz bu değişkeni belirtin.
Projectile Spawndan sonra gelen nodeler ise sekme yapmanızı sağlar yani Recoil.
Hazırlamış olduğum videoda aim kayıyor gibi gözükebilir. O kasıtlı yapıldı. Karakter IDLE pozisyonunda nefes aldığı için animasyon kamerayı oynatıyor. Fakat aim line trace kodu mouse hareket ettiği sürece çalışıyor. Yani bir miktar nefes alışla aim kaymasını zaten istiyordum. Eğer kamera ile birlikte fonksiyonu güncelleseydim en ufak bir hareketten kameraya göre değişirdi line trace. O sorun da böylece çözülürd.
Fakat bu yöntemi sadece FPS için yaparsanız TPS için çalışmayacaktır. TPS moduna geçildiğinde TPS için bir Line Trace ayarlaması yapabilir ve onu kullanabilirsiniz. Fakat yine de TPS de nasıl göründüğünü merak edenler için.
Son düzenleme: