4.7.5 Projectile's don't register bounce

I have looked at several threads regarding collision. It really looks like there are bugs with Actors using the ProjectileMovement component.

What is the definitive config settings to make an Actor register Hit events on pawns/characters, be blocked by them, and by block by static geometry in the world and activate the bounce event.

I have tried using both static mesh and skeletal mesh. I’ve tried having collision on for them, and a collision sphere with overlapping all.

I register them on the pawns, but haven’t been able to do anything to get them to not fall through the floors or go through walls.

Outside my actual projects, I made a brand new top down project, added a spawn actor on the right mouse button and a new actor, with a mesh, a collision sphere and projectile movement, on a root scene component.

If I set pyhsics to true on the mesh, it will hit one of the walls, but then fall through the floor.

Here is a link with the exported Controller, Projectile actor and the input file. This goes with a Fresh Blueprint only Top Down project. [Mega Link to project files][1]

MEGA

Hey ,

In order to have your floor not allow the projectiles to fall through, you need to set the collision to ‘blockall’ which will block the projectile from falling through the floor. Set the walls to have collision too, so have those set to ‘blockall’ too.

In order to get your projectile to bounce, you need to add the projectile physics actors. In the Components tab, select the [ROOT] CollisionComponent and scroll down to the Collision settings within the Details panel. Once you’re in the Details panel, you should look for ‘Projectile Bounces’ and make sure you check the box for ‘Should Bounce’.

Cheers!

This is helpful, but not complete.

I got the projectiles to not fall through the floor by putting blockall on the skel mesh of the projectile, the collision sphere around it has overlap all.

Only the ProjectileMovement component has the checkbox Should Bounce. I have found no differnece in functionality if this is checked or not. WIth the block all collision on the skel mesh the projectile does now bounce regardless of the checkbox which seems completely independent.

There is no Bounce, Overlap, or Hit even ever that I can put a breakpoint on for the projectile interacting with the floor or other level geometry. Only with Actors does this work.

Hey ,

The files that were uploaded on Mega.co.nz actually will not import into my Editor. Would you be able to zip the project and submit it to me in a private message on the forums? The reason I am asking for it is because when I select “should bounce” the projectile will bounce. When it’s unchecked, it simply sticks on the wall until disappearing.

Thank you! :slight_smile:

Yes, I’ll message

Hey ,

I have been able to simulate the bounce on this projectile. If you set it up to simulate physics and to set the collision to projectile, it should work for you.

Good luck!

I set the settings like that. The bounce event didn’t register, also the overlap event that used to apply damage to the player now isn’t called either. Also, OnCOmponentHi event is not called.

If I have like in the screen shot, but set to projectile, it inteeracts correctly with the player caharacter when it hits, but falls through the floor even though world static is set to block.

Hey ,

Did you also go into the enemy character and set the physics on that projectile as well? When he misses, it flies off of the screen due to there not being any walls however, I have set up some walls myself and dodge the projectile and they bounce on contact. I also verified that by updating this information still turned that specific projectile into an additional enemy, both still cause damage on the player character.

Cheers!

Do you get the bounce event? That’s what I really need and have not been able to get. If you place a break point on the bounce, does it stop? I’ve tried print strings as well wondering if breakpoints might not be working, but no.

Hey ,

I have gotten the projectile to bounce more by adding a physical material to the projectile. However, digging deeper into your project it’s highly suggested not to use a skeletal mesh for your projectile. The main reason is because once you get that bounce that you want, the capsule you have around your mesh is going to cause a really strangely behaving collision with a surface.

I would suggest for you to take your projectile mesh and actually set it up the way that it’s portrayed in our First Person template because then you will not have any odd collision occurring with the projectile and the bounciness you’re looking for will be easier to access and control.

I also noticed within the projectile blueprint that your OnComponentHit (SkeletalProjectile) wasn’t connected to Spawn Enemy and that OnProjectBounce (Projectile Movement) wasn’t connected to spawn the other enemy either, so I connected those nodes and tested it, that’s all working correctly.

So with the physical material, I made the projectile extremely bouncy, but the collision capsule causes the projectile to behave oddly so moving that projectile mesh to something more similar to the projectile within First Person template may be your best option and wouldn’t be as complicated.

I hope that all of this information I’ve looked into is extremely helpful for you, if you have any further questions, please let me know.

Have a great day! :slight_smile:

Ok, so I didn’t have the physics material?

I used the Skel mesh because it gave a bone. When I had a static mesh it wasn’t spawning right because the 000 wasn’t in the right place.

I’ll add the physics material. Thank you

This still didn’t do it, but I looked in the FirstPerson Example. That projectile extends from a FirstPersonProjectile class so it’s not set up from just an Actor, however it’s settings are different than what’s shown here.

What I saw though was that the static mesh was attached to the Collision Component. So I did that and got it working correctly with a Static Mesh. Because my settings are so different than the ones you showed here I will post them.

Hey ,

Yes, you didn’t have a physical material added onto your enemy projectile. Without the physics material, you don’t get the registered bounce that you’re looking for. Make sure you set the ‘restitution’ to a decent number, such as 10 or 25 so that you can see the bounce when it’s being triggered, and then lower it from there.

Due to the sensitivity of your project, I have blacked out as much as possible.

You can also adjust the capsule size if you do not wish to go the projectile route that’s displayed within First Person template. It may still not collide with objects as smoothly as you’d like, but at least it would be more realistic with a smaller capsule component.

39871-capsulecompsize.jpg

I also added in print strings to the blueprints for the enemy projectiles. They are registering correctly, except for the bounce.

39882-printstring.jpg

I have set the blueprint up this way, and have not been able to get a print string either. I have requested some additional information from our developers who work around collision. I will be responding to this thread once I hear more.

If you have any further questions, please feel free to reply here and I’ll look at those as well. In the meantime, I’ll continue to look into why this specific set up isn’t working for your project.

Cheers!

Hey ,

I spent some time with a developer today regarding the issue we’re having with your project. The reason that the enemy projectile isn’t bouncing and responding like it typically would with a regular projectile is because you’re using a skeletal mesh. This is actually intended and written in our code to work this way.

Here is a work around that you can use: Add in sphere collision and add the root and skeletal mesh to the sphere collision. Once you do that, the OnProjectileBounce (ProjectileMovement) > Spawn Enemy Projectile > Print String will work as intended.

39946-workaround.jpg

If you have any further questions or concerns, please do not hesitate to reply to this answer.
Thank you and have a great day! :slight_smile: