CCD non functional

Anyone experienced any issues with CCD being non functional? I’ve got a shooting game that spawns a projectile that is just a sphere mesh. The root component is just an arrow from the base parent. There is also a ProjectileMovement component.

This is the projectile:


c7Ks7uQ.png

I am trying to shoot it at a standard Character class with a standard UE4 mannequin mesh. Here are the Mesh (inherited) collision properties:

c7Ks7uQ.png

When I shoot, I spawn the projectile class at the end of the barrel, and the construction script of the projectile sets the ProjectileMovement component’s initial speed to “Muzzle Velocity”.

I had initially been trying to use a Hit, but decided Overlapping was better as it would allow me to slow the bullet after a hit, change the vector and continue. However I am unable to get reliable and consistant Overlap events.

If I slow the projectile down to 2000-3000 initial velocity, I get overlap events fired all day. However this is a very slow bullet and that’s not what I am looking to accomplish. The ideal value I want is 30,000, which is roughly 1,000 feet per second. However at this value, I almost never get an overlap event to fire at all. I have CCD enabled, which is supposed to take care of this problem, but it doesn’t seem to be working at all.

Is there some setting I am overlooking here? Am I going to instead have to ray trace every tick from my current position to previous in the bullet and check for hits that way? I thought this is something that Unreal should handle under the hood for me.

Try object type physics actor and tick physics enabled.

Try object type physics actor and tick physics enabled. And your probably dont need ragdoll for a bullet.

The bullet is WorldDynamic. The ragdoll is the actual ragdoll character mesh. With Simulate Physics enabled, the ProjectileMovement component doesn’t seem to act on it, and the ball just kinda sits there. I can apply my own velocity to it, but it still has similar issues.

I ended up resolving this by just doing the continuous detection myself in blueprint for the object.

This records the current position and previous position every tick, then performs two line traces. One from the previous position to the new one, recording which object was hit, and then if an object was hit, fires a multi line trace in the opposite direction, breaking out hit objects until it finds the actor we hit on the first line trace. I can then pull the two impact locations to get me an entrance and exit position, and the vector between them represents the projectile wound channel:

I did some testing as well with using a multi line trace in the first direction, and this would allow me to actually record all actors that were hit as well as their entrance/exit locations, but for my current project this is not necessary.

This works. The only down side to doing it this way is that the object is already at its new position, so if I wanted to maybe slow the bullet based on the softness of the body or the length of the wound channel, I would need to move the projectile actor back to the exit wound location and recompute the shot. This is kinda annoying. It would be nice if I could, at the time of hit, modify the velocity and trajectory.

Sorry i dont have a definitive answer but maybe this tutorial here gives some clues? Unreal Engine 4 Tutorial - Explosive Projectile - YouTube

Having the same problem. I’ve changed collision response from hit to overlap and now some quick projectiles sometimes fly through characters, even with CCD enabled. It seems that OnComponentBeginOverlap just doesn’t trigger sometimes as well. Now I’m sad :frowning: