No collision on attached Actor SOLUTION

This gave me a massive headache so I’m posting my solution here.

Problem

You attach a weapon or something to your character so that it follows him around. Oh no! The attached object doesn’t have collision. It’s not that you’re messing it up, normal collision settings simply don’t work here. When you attach an actor to another actor, UE won’t perform a collision sweep for the attached actor, just the parent.

I really wanted to use the engine’s native collision detection instead of rolling my own so I just did this:

TLDR Solution

Sword model has handle bone and blade bone, create physics body for each, handle’s phys body set to physics kinematic, blade’s phys body physics set to simulated. Create phys body constraint between the two phys bodies and lock up all the movement. Blade phys body enable continuous collision detection.

Detail Solution

Imagine attaching a simple sword object just to get the idea. Create two bones for the attached object. One small bone just as an attachment point, and a longer one for the body of the object.

Create a Physics Asset in the editor and apply it to your skeletal mesh, then double click it and generate a Physics Body for each bone. Simple box-type to start. If the editor complains about the attachment bone being too small to create a physics body for, just set the minimum bone size parameter to 0 when you right click → create → physics asset in the content browser.

Set the attachment bone’s physics body to “kinematic” (i.e. physics disabled) so that it moves with the parent like a physics-disabled object instead of falling on the ground. Set the body bone’s physics body to physics->simulated. Enables physics-driven collision detection, this was key for me.

Select both Physics Bodies in the skeleton list panel of the Physics Asset Editor, right click, choose create constraint between selected bodies. Lock up all the translation and rotation, should be 6 boxes to check lock on. This anchors the simulated bone onto the kinematic bone to make the entire object rigid and kinematic in movement.

Click the Physics Body of the simulated bone, go to the collision section in the details panel, check Continuous Collision Detection to activate it. This is critical to enable collision.

Now you have a object that attaches as if kinematic but detects collision through physics simulation.

1 Like

Hi, I know this topic is kinda old but I found out your solution it’s still does not work for me but I feel like it’s a step in the right, direction. I’m trying to attach a box to a player, so that the box physics still blocks the player from moving and pushing the said box into the wall for example.

Kinda like this :
image
or like this : https://www.youtube.com/watch?v=t3f5o_Pehos
(The drawing is not mine by the way I found it on another topic that I can’t find anymore online).

Also here is a video of my current problem :

I want from the box to not go through the wall so that it can block the player