atatune

Yeni üye
27 Ara 2024
2
0
1
Selamlar, Unreal Engine öğrenmeye yeni başladım. Bir korku oyunu tasarlıyorum. Oyunda küçük bir diyalog gerçekleşecek. Bunun için ekranda sırayla yazıları göstereceğim sistemi ayarladım fakat konuşma başladığında FPS kameranın konuşulan NPC'ye zoomlaması gerekiyor. Bunun için BeginOverLap olduğunda bazı işlemler yapmam ve kameranın CineCameraActor'e geçmesi diyalog'dan sonra FPS'e geri dönmesi gerekiyor fakat araştırmama rağmen istediğim tarz bir blueprint örneği bulamadım. Kendim deneyerek de olduramadım. Bu konuda bana yardımcı olabilir misiniz? Ayrıca bu mekanik farklı şekilde yapıldığında daha optimize oluyor ise veya başka doğru bir yolu var ise öneride bulunursanız sevinirim. İyi akşamlar.
 
Çözüm
Selamlar, Unreal Engine öğrenmeye yeni başladım. Bir korku oyunu tasarlıyorum. Oyunda küçük bir diyalog gerçekleşecek. Bunun için ekranda sırayla yazıları göstereceğim sistemi ayarladım fakat konuşma başladığında FPS kameranın konuşulan NPC'ye zoomlaması gerekiyor. Bunun için BeginOverLap olduğunda bazı işlemler yapmam ve kameranın CineCameraActor'e geçmesi diyalog'dan sonra FPS'e geri dönmesi gerekiyor fakat araştırmama rağmen istediğim tarz bir blueprint örneği bulamadım. Kendim deneyerek de olduramadım. Bu konuda bana yardımcı olabilir misiniz? Ayrıca bu mekanik farklı şekilde yapıldığında daha optimize oluyor ise veya başka doğru bir yolu var ise öneride bulunursanız sevinirim. İyi akşamlar.
aigif.gif

TriggetBox ekle.
Open...
Selamlar, Unreal Engine öğrenmeye yeni başladım. Bir korku oyunu tasarlıyorum. Oyunda küçük bir diyalog gerçekleşecek. Bunun için ekranda sırayla yazıları göstereceğim sistemi ayarladım fakat konuşma başladığında FPS kameranın konuşulan NPC'ye zoomlaması gerekiyor. Bunun için BeginOverLap olduğunda bazı işlemler yapmam ve kameranın CineCameraActor'e geçmesi diyalog'dan sonra FPS'e geri dönmesi gerekiyor fakat araştırmama rağmen istediğim tarz bir blueprint örneği bulamadım. Kendim deneyerek de olduramadım. Bu konuda bana yardımcı olabilir misiniz? Ayrıca bu mekanik farklı şekilde yapıldığında daha optimize oluyor ise veya başka doğru bir yolu var ise öneride bulunursanız sevinirim. İyi akşamlar.
aigif.gif

TriggetBox ekle.
Open Level Blueprint > On Actor Begin Overlap TriggetBox
Bir tane AI_BP karakterin olmalı, onu GetAllActorsOfClass ile çağır. Camerayı değiştir yönergelere göre.

SwitchBackToPlayerCamera diye bir CustomEvent oluşturdum. Nereden çağırırsan çağır bunu kamera oyuncuya geri dönecektir. İstersen direkt oyuncu karakterinin içine bunu yaz. Her yerden çağırabilirsin. Yeter ki ThirdPersonCharacterBP yi cast edebilesin.
Mantıken senin kameran yapay zekanın kamerasına geçiş yapıyor. Yapay zekana gir ve bir camera ekle önüne. İster bunu CineCamera yap ister başka bir şey. Bu mantık tamamen Witcher da ki NPC konuşmalarıyla aynı neredeyse.

Ben şimdilik Test için delay koydum kamera geçişinin sonunda ve 3 saniye sonra kendi kamerama aynı şekilde dönüyor. BlendTime yazan yer geçiş süresi. Ne kadar yumuşak geçsin istiyorsan o kadar uzun tutmalısın.
Orası 0 olursa aniden geçer. Sen nerede kameran geri dönsün istiyorsan bu Eventi orada çağıracaksın.



1735327969365.png
 

Ekli dosyalar

  • 1735327854116.png
    1735327854116.png
    314.4 KB · Görüntüleme: 2
  • Beğen
Tepkiler: atatune
Çözüm
Ekli dosyayı görüntüle 523

TriggetBox ekle.
Open Level Blueprint > On Actor Begin Overlap TriggetBox
Bir tane AI_BP karakterin olmalı, onu GetAllActorsOfClass ile çağır. Camerayı değiştir yönergelere göre.

SwitchBackToPlayerCamera diye bir CustomEvent oluşturdum. Nereden çağırırsan çağır bunu kamera oyuncuya geri dönecektir. İstersen direkt oyuncu karakterinin içine bunu yaz. Her yerden çağırabilirsin. Yeter ki ThirdPersonCharacterBP yi cast edebilesin.
Mantıken senin kameran yapay zekanın kamerasına geçiş yapıyor. Yapay zekana gir ve bir camera ekle önüne. İster bunu CineCamera yap ister başka bir şey. Bu mantık tamamen Witcher da ki NPC konuşmalarıyla aynı neredeyse.

Ben şimdilik Test için delay koydum kamera geçişinin sonunda ve 3 saniye sonra kendi kamerama aynı şekilde dönüyor. BlendTime yazan yer geçiş süresi. Ne kadar yumuşak geçsin istiyorsan o kadar uzun tutmalısın.
Orası 0 olursa aniden geçer. Sen nerede kameran geri dönsün istiyorsan bu Eventi orada çağıracaksın.



Ekli dosyayı görüntüle 525
Olay bu. Teşekkürler. 🙏🙏
 
Olay bu. Teşekkürler. 🙏🙏
Aynı tip karakterden birden fazla varsa
Olay bu. Teşekkürler. 🙏🙏
1735333887992.png


Al sana daha kullanışlı bir şey. Bunların hepsini kendi karakterinin içine yap. ThirdPersonCharacterBP içine mesela. TriggerBoxa girdiğince OtherActor kısmını yine Cast et ThirdpersonBP ye Sonra SwitchCameraToAI çağır.
İstediğin yapay zekayı seçebilirsin. Hatta aynı classtan türetilmiş yapay zekadan 2.sini de 3.sünü de seçebilirsin. ID kısmı var orada. Mesela Metin2 Demirci. 10 tane Demirci var diyelim farklı köylerde. DemirciAI classını seçtin. Fakat hangisinin kamerasına geçsin istiyorsun ? O an TriggerBox 3. demircideyse ID kısmına 3 yazacaksın ona geçecek. Çıkış için başka işleme gerek yok. Tek yapman gereken SwitchBackPlayerCamera Eventini yine karakterinden çağırman gerekir.

Şimdi bu SwitchToCameraToAI eventini oluştur ve sağ panelden Character diye arat ve üzerine Character variable oluşturup onu da Class olarak seç. Dolayısıyla sadece Character Classını araştırır. Actor de yaparsın ama bu sefer oyundaki tüm actor classlarını araştırır ve yük bindirir. Toplasan kaç karakter olur zaten oyunda. Bunu araştırması daha mantıklı. Oluştururken ActorClass değil de CharacterClass şeklinde yapmaya özen göster. Daha spesifik bir alana baksın. Yük azalır.

Dolayısıyla TriggerBoxta yapacağın tek işlem bu olacak.




1735334087873.png
 
Son düzenleme: