furkanxdgs4

Yeni üye
14 May 2016
153
9
0
Belirtilmemiş
Merhaba arkadaşlar. Ben denemek amaçlı internetten Audi R8 modeli indirdim ve bunu Skeletal Mesh olarak oyunuma eklediğimde arabanın tüm parçaları ayrı ayrı Skeletal Mesh olarak ekleniyor. Yani arabam kopuk kopuk oyuna ekleniyor. Ben ise oyuna araba ekleyip kullanmak istiyorum ve bu kopuk kopuk olmasını avantajıma çevirebileceğimi düşünüyorum. Mesela duvara hızlıca çarptığında kaputun uçmasını istiyorum. Bu konu hakkında:
Şu ana kadar hiç bir arabayı sürme işlemi yapmadım yani BP vs. ile uğraşmadım. Sadece modeli iskelet olarak projeme ekledim. Bu arabayı sürebilmem için yeni bir Actor oluşturup arabanın kopup fırlamayacak parçalarını birleştirmeli miyim?
Kopabilecek parçaları arabaya nasıl eklemeliyim?
Eğer arabayı Actor şeklinde yaparsam binme, inme, içindeki botu dışarı atma, el ile cam kırma ve araç içi ateş etme olaylarını yapabilir miyim? Yapamazsam yapabileceğim bir yol alabilir miyim?
Araba fiziklerini düzenleyebilmem için (GTA 5 ile 4'deki sürüş farklılıkları gibi) C++ kodlama bilmem lazım mı? Bir videoda bir arkadaş C++ lazım demişti de tek videosu o olduğu için güvenememiştim. Sürüş fizikleri hakkında yardımcı olabilir misiniz?
 
Hmm, bak şimdi:

Araba fizikleri için C++ bilmene gerek yok. Blueprint ile yapılıyor, merak etme. Ama önce şu BP'i iyice bir öğren derim. Daha sonra sürülebilen araba nasıl yapılır, onu öğrenmelisin. Unreal Engine'in kendi YouTube sayfasında 4 videoluk ders var ( https://www.youtube.com/playlist?list=PLZlv_N0_O1gaz6eETtIxcmUDnqu5A-8At ), ayrıca YouTube'ta da yine benzer bir sürü ders videoları var.

Animasyonlara gelince, cam kırma olayını şöyle yapabilirsin diye düşünüyorum:

Kendi araban olmayan diğer araçların camlarına, daha doğrusu kapılara birer trigger koyarsın, "bu trigger'ların yakınında/üzerinde F'ye basınca cam kırma animasyonunu oynat" şeklinde komut belirlersin, artı yine F'ye basınca, hangi trigger içindeysen, o kapının camının kırılması/animasyonu vs her ne ise o komutu ayarlarsın, olur biter. Daha önce hiç yapmadım ama mantığı bu şekilde eğer yanlış hatırlamıyorsam.

İç animasyonlar nasıl yapılır bilmiyorum. Çünkü şu an ben de bunları öğreniyorum kendimce. Eğer yapabilirsem, sana yazarım.

Araba hasar sistemine gelince:

"Destructible Cars" diye bir sistem var ama önce BP'i çok iyi öğrenmen lazım hasarlı araba yapabilmen için, yoksa çok zor iş senin için..

[video=vimeo]https://vimeo.com/152619829

n5OV9W.gif


J6Qj9J.gif


Bu içeriği görmek için üçüncü parti çerezlerine izin vermeniz gerekli.
Daha fazla detay için çerezler sayfasını ziyaret edin.

İndirme linki: https://gumroad.com/l/EDtXz

Dediğim gibi, bu sistemi iyice anlayıp devam ettirebilmen için BP sistemini öğrenmen lazım. Yoksa bu sisteme kendi arabalarını koyamazsın.
 
Unreal Engine'ın sitesinden baktığımda mantığını az buçuk kavradım. Şuana kadar Unreal Engine'ın mantığını az çok kavramaya başladım. Bilgisayarım gelince o sitedeki mantıkla yapacağım. 
Arabaya biniş animasyonu konusunda ise sürüş kısmındaki kapıya ince bir Trigger Box koyacam ve onun içine girdiğinde F'ye basarsam (İnput Just Key Pressed) arabanın belli bir konumuna (Kapıyı açacağı yere) yürümesini istiyorum ve rastgele bir animasyonu oynatıp arabanın içine girmesini istiyorum.
Bunu nasıl yapabilirim? Yani arabanın kapısına yürümesini nasıl yapabilirim? Ve random nodelarından birini kullanarak herhangi bir animasyon oynatabilir miyim? Bir de animasyonu oynattıktan sonra yerinin değişmesini nasıl yapabilirim? Yani bir animasyonu oynattıktan sonra her zaman bulunduğu yere geri döner ve ben geri dönmesini değil de karakterin sürüş koltuğuna oturmasını istiyorum. Çünkü arabanın içinde ateş edebileceğim, radyo değiştirebileceğim.
Araç içi animasyonları ise Play Animation (Mesh) node'unu kullanarak araba içinde kendince bir hareket yapmasını istiyorum. FPS modunu da kullanacağım için (Karakterin kafasına Camera ekledim.) araba içi önemli.
Aracın camının kırılmasını ise 2 farklı cam ekleyip bir Branch'le karakterimiz kırılma animasyonunu oynatırsa cam Particle'ı bir an oynasın ve 2. cam aktif olsun diye düşünüyorum. Böyle bir şey mümkün mü acaba? Mümkünse 2. camı aktif edebileceğim bir node verebilir misin? 
Hasar konusunda ise araba içi animasyon vs. ayarlarsam hasar konusuna döneceğim.
Araç fizikleri konusunda ise içimi rahatlattığını söyleyebilirim. Fizikler konusunda çok çalışmam gerekicek çünkü GTA 4'deki gibi fizikler yaparsam araçları kimse kullanmaz :).
 
Şöyle bir düşününce aklıma bir yöntem geldi ve büyük ihtimalle de bu olayın temel mantığı budur:

Arabanı bir 3d modelleme uygulamasında aç. Deforme olmasını istediğin parçaları ayrı ayrı gruplandır ve güzelce rig'le. Bu modeli UE üzerinde Skeletal Mesh olarak import edersen araban eline bu parçalara ayırdığın şekilde gelecektir. Artık araba parçalarına ayrı ayrı erişimin olduğun için bu parçaları istediğin zaman BP üzerinde değiştirme yetkin var. Şimdi bu parçaların çeşitli seviyelerde deforme olmuş hallerini modelle. Bu modelleri de UE'ye import et.

Bundan sonra yapman gereken şu olacaktır; bu parçalarda ayrı ayrı Hit Event'leri denetle. Herhangi bir hit event olduğunda BP üzerinde bu parçayı bir sonraki seviyede deforme olmuş haliyle değiştir. Bu şekilde en basitinden deforme olabilen bir araca sahip olmuş olursun.

İşin daha da ayrıntısına girilebilir tabi ki; misal parçanın ne tarafında bir hit event olduysa ona göre durumu kontrol edip o kısmın deforme olduğu bir parçayla değiştirebilirsin. Yine impact büyüklüğüne göre de durumları çeşitlendirebilirsin. Gerisi tamamen sana kalmış :)
 
dyanikoglu' Alıntı:
Şöyle bir düşününce aklıma bir yöntem geldi ve büyük ihtimalle de bu olayın temel mantığı budur:

Arabanı bir 3d modelleme uygulamasında aç. Deforme olmasını istediğin parçaları ayrı ayrı gruplandır ve güzelce rig'le. Bu modeli UE üzerinde Skeletal Mesh olarak import edersen araban eline bu parçalara ayırdığın şekilde gelecektir. Artık araba parçalarına ayrı ayrı erişimin olduğun için bu parçaları istediğin zaman BP üzerinde değiştirme yetkin var. Şimdi bu parçaların çeşitli seviyelerde deforme olmuş hallerini modelle. Bu modelleri de UE'ye import et.

Bundan sonra yapman gereken şu olacaktır; bu parçalarda ayrı ayrı Hit Event'leri denetle. Herhangi bir hit event olduğunda BP üzerinde bu parçayı bir sonraki seviyede deforme olmuş haliyle değiştir. Bu şekilde en basitinden deforme olabilen bir araca sahip olmuş olursun.

İşin daha da ayrıntısına girilebilir tabi ki; misal parçanın ne tarafında bir hit event olduysa ona göre durumu kontrol edip o kısmın deforme olduğu bir parçayla değiştirebilirsin. Yine impact büyüklüğüne göre de durumları çeşitlendirebilirsin. Gerisi tamamen sana kalmış :)

Yardımcı olduğun için teşekkür ederim. 3D modelleme programını şuana kadar kullanmayı beceremedim ama bilgisayarım gelince öğreneceğim. Gruplandırmayı ve RİG'lemeyi bilmiyorum ama internette araştırıp deneyince bulabileceğimi düşünüyorum. Onun dışında;
Dediğiniz yöntemi anladım. Kopabilen tüm parçaların hasar görmüş hallerini de yapıp oyuna ekleyeceğim. Sonra aldığı hasarı Branch'le kontrol edeceğim ve her durum için ayrı ayrı Branch'lerle bu işi yapacağım. Ancak şunu merak ediyorum. Sağlam parça yerine hasar görmüş parçayı hangi node'la aktif hale getireceğim ve hasar görmüş parçaları oyuna Skeletal Mesh olarak mı ekleyeceğim yoksa Static Mesh falan mı? Gerçekten bu modellemelerle ilgili bilgim yok sayılır buyüzden soruyorum. Yani şunu sormak istiyorum: Şimdi ben sağlam parçaları ayrı modeller içinde mi yapacağım modelleme programında? Çünkü şöyle bir şey var. Sadece aracın bulunduğu modelde sağlam parçalar olursa gruplandırma dediğin şeyi nasıl yaparım ve aynı model üzerinde kalırlarsa bu sefer hasar görmüş parçaları nasıl yaparım? Bunların hepsini modelleme programı için soruyorum. 
Bir de cam kırıp arabaya binmeyi nasıl yapabilirim? Yani arabanın kapısına geniş bir Trigger koyacağım çünkü illa kapının dibine gitmek zorunda olmak kullanışsız olur. Ama Begin Overlap node'unun devamına ne koyacağım ki arabanın kapısına doğru nasıl yürüyerek gidecek ben bunu merak ediyorum. Işınlanması kötü olur çünkü. Bir de kapıya doğru yürüttük diyelim. Arabanın camını kırıp açmasını veya da kapı kolunu tutarak açmasını istiyorum, buyüzden rastgele bir animasyon yapan node var mı? Sonra da Branch'le eğer cam kırma animasyon oynamışsa sorusunu sorduktan sonra camı kırık olan camla değiştirmesini ve cam kırılma particle'larını aktif etmesini istiyorum, buyüzden sağlam camı kırık camla değiştiren bir node var mı? Animasyonu oynattık ve camı kırdık diyelim, animasyondan sonraya bir delay koyarsam hangi node ile arabanın içinde tutmuş olurum. Çünkü animasyon bitince geri yerine dönecek karakter. Ve en önemli soruyu sormak istiyorum. Karakterimiz arabaya oturduğunda ateş etme, radyo değiştirme gibi işlevsel özellikleri rahatlıkla yapabilir miyiz? Çünkü arabaya bindiğinde Game Mode değişiyor ya. 
Biliyorum bazı sorular hazırcılığa kaçmış oldu ama 1 aydır bilgisayarım yok ve yakın bir zamanda gelecek. Gelir gelmez boşa geçen günlerimi telafi etmek istiyorum. Çünkü bir sürü iş birikti.
 
Bence araba hasarı için benim yazdığım sistemi bir incele, çünkü ayrı modellemeye falan uğraşmazsın. Henüz tam incelemedim ama ayrı ayrı hasar modelleri yok diye biliyorum bu sistemde.

Animasyonlara gelince; ben de modellemeye yeni başladım ve henüz bu konuda birşey diyemem :(