UE4S

Yeni üye
22 Nis 2018
32
1
0
(34) İstanbul Anadolu
Merhaba;

Unreal engine de çok yeniyim. Öğrenmeye başlayalı yaklaşık 1 ay oldu. Geliştirdiğim projede takıldığım bir konuda yardıma ihtiyacım var.

Projede binaları custom generate ediyorum ve static mesh component ile yaptığımda düzgün çalışıyormuş gibi gözüksede output loglarından sürekli hata vermesi nedeniyle instanced static mesh component kullanarak yaptım. Ancak bu durum şöyle bir sorun yaşamama neden oldu.  "Get Result Under Cursor by Channel" Overlap yaptığım duvarların arkasındaki nesneleri "Static Mesh Component" te görebilirken "Instanced Static Mesh Component" te görmüyor ve channel'ı neye ayarlarsam ayarlayayım en üstteki duvarı seçiyor. Bu durumu material collision'un neden olduğunu keşvettim ancak onu kapatıncada meshlere collision tanımlayamıyorum. Karakterler duvarların içinden geçip gidiyorlar.

Baya aradım ancak bir türlü material collision u açıp kapatan bir metod/node bulamadım. Kısacası Bana gereken material collision'u açıp kapatan node a nasıl ulaşabilirim. Yada bu overlap olayını çözmenin başka bir yolu varmıdır. Bu sorun yüzünden binanın içindeki eşyalarada tıklayarak ulaşamıyorum. Yardımcı olabilecek biri varsa çok sevinirim.


Şimdiden teşekkür ederim.
 
Referansınızı yani Static Mesh'inizi seçtiğiniz zaman "Set Collision Enabled" düğümünü veya duruma göre "Set Collision Object Type" düğümünü kullanabilirsiniz
 
[UETR]Ozzy' Alıntı:
Referansınızı yani Static Mesh'inizi seçtiğiniz zaman "Set Collision Enabled" düğümünü veya duruma göre "Set Collision Object Type" düğümünü kullanabilirsiniz

Öncelikle teşekkür ederim.

Meshin collissionla ilgili nesi varsa hepsini denedim ancak ne yazıkki şuanda collisionlar açık ve tıkladığımda ekrana tıklamanın hit component değerlerini yazdırdığımda visibility channel  response'unun overlap olduğu yazıyor. Hani durum böyleyken o nesneye tıklayabiliyor olmam bile çok tuhaf bir durum açıkcası bu işin içinden nasıl çıkacağımı bilemedim. Aslında amacım collisionları kapatmak değil sadece altında kalan nesnelere ulaşabilmek çünkü collision u kapattığımda o kattaki karakterler aşağıya düşecektir. Yani temel olarak overlap in gerektiği gibi çalışmasına ihtiyacım var.
 
Ne üzerinde çalıştığınızı pek anlayamadım eğer video çekme imkanınız varsa ve buraya gönderirseniz daha çok yardımcı olabilirim.
 
[UETR]Ozzy' Alıntı:
Ne üzerinde çalıştığınızı pek anlayamadım eğer video çekme imkanınız varsa ve buraya gönderirseniz daha çok yardımcı olabilirim.

Video çekemedim ancak hızlıca resimlerle durumu anlatmaya çalışayım.

// Resim Silindi //

Yukarıdaki resimde binaya tıkladığımda "Get Hit Result Under Cursor By Channel" dan dönen "Hit Component" Verilerini ekranın sağ üst köşesinde görebilirsiniz. "House2_Mesh_0009.rip" Component adı "Overlap" ise Visible channel response'u

// Resim Silindi //

Sadece yukarıdaki resimdeki gibi static mesh ekranında "House2_Mesh_0009"(Binanın Çatısı) un material collisionunu kapadığım binanın içindeki diğer nesnelere ulaşabiliyorum ve aşağıdaki resimdede görebileceğiniz gibi Hit Result mesajıda değişiyor. "House2_Mesh_0012.rip" (Binanın Tabanı)

// Resim Silindi //

Kısacası Static meshin Material Collision'unu kapatmadan binanın alt katlarındaki hiç bir nesneye ulaşamıyorum. Ancak Material Collisionu kapatıncada dediğim gibi karakterler alt kata düşeceği için başka bir çözüme ihtiyacım var.


Edit : Bide ek olarak Başta dediğim gibi tüm objeleri custom oluşturarak yapıyorum. Projedeki herşey Structure ve Data tablelar ile parça parça yaratılıyor. Bu durum Static Mesh Componentte bir sorun çıkarmadı ancak Instanced Static Mesh Componente çevirince bu durum ortaya çıktı. Aslında Static Mesh Componentten Aldığım Şu hatayı nasıl giderebileceğimi söyleyebilirseniz bunun gibi durumlardan tamamen kurtulmuş olurum. Aşağıdaki hata mesajını araştırdım ancak herhangi bir çözüm bulamadım.

Hata Mesajı : 

LogPhysics: Error: PHYSX: (D:\Build\++UE4+Dev-AnimPhys+Engine\Sync\Engine\Source\ThirdParty\PhysX3\PhysX_3.4\Source\PhysX\src\NpShape.cpp 542) eINVALID_PARAMETER : PxShape::setFlag(s): triangle mesh, heightfield and plane shapes can only be simulation shapes if part of a PxRigidStatic!
 
LogPhysics: Error: PHYSX: (D:\Build\++UE4+Dev-AnimPhys+Engine\Sync\Engine\Source\ThirdParty\PhysX3\PhysX_3.4\Source\PhysX\src\NpShape.cpp 542) eINVALID_PARAMETER : PxShape:
confused.png
etFlag(s): triangle mesh, heightfield and plane shapes can only be simulation shapes if part of a PxRigidStatic!

"Add Static Mesh Component" in verdiği yukarıdaki hatanın nedenini şimdi çözdüm. Belki ihtiyacı olan olursa diye buradada paylaşmak istedim.

Yukarıdaki hatayı almamın nedeni Actor Blueprintindeki "DefaultSceneRoot" u farklı bir nesne ile (Bende collision box'dı) değiştirilmiş halde iken "Add Static Mesh Component" methodunun "Manuel Attachment" özelliğinin seçili olmamasıymış. Özetle "DefaultSceneRoot" a atadığınız nesneyi silerek "Auto Attachment" işlevini hatasız gerçekleştirebilirsiniz. Yada "DefaultSceneRoot" bir nesne atadıysanız attachment işlemlerini kendiniz gerçekleştirmelisiniz.

Tekrardan teşekkürler.

Edit : Bu hatanın alınmasının esas nedeni collision'u olan nesneleri birbirine bağlamak.