Download

Ignoring collision with parent but not other entities of similar channel

Hi everyone,

In my situation I have a vehicle class object and a seperate actor for a pickaxe weapon. If I attach the pickaxe as a child of the vehicle, it makes the vehicle fly around or just generally freak out. This is because the collision settings are set to hit vehicles. When I disable that collision option, the pickaxe is positioned correctly and generates hit events… The thing is, I want the pickaxe to physically hit the other players’ vehicles, but in order to do that, I need the collision setting to be enabled for vehicles on the pickaxe. Since doing that makes your own car fly, I need a way to ignore colliding with any parent components even if your default channel setting is to collide with them. Is there a way to accomplish this? Any tips would be greatly appreciated.

UPDATE:

See my other post here: https://answers.unrealengine.com/questions/304878/ignoring-collision-with-parent-regardless-of-defau.html
I have attached screenshots there.

TL;DR: I found “Ignore Actor When Moving” node, but it isn’t working for me at all. When I print “get ignored actors” or whatever, it shows me the correct actor, but they still collide. I need an actor ,which is a child of a parent object, to not collide with its parent, but to collide with other objects which have the same collision channel as the parent (in this case, vehicle). Rama, or any other gracious souls, please help!

Anyone have any ideas on how to get “Ignore Actor When Moving” working?

Still looking for solutions on how to get this particular feature working. Any advice would be very much appreciated!

I’ve had weird scenarios like this too. I usually solve them by using a combination of OnHit and OnActorBeginOverlap events. The idea is that OnHit you check to see if the actor you hit is the one you’re trying to avoid - you can do this by setting a tag on that actor such as ‘NoResistance’ and check for it using Actor Has Tag, then if so you set the collision response for all channels to overlap on the actor. Then using OnEndOverlap or whatever is appropriate you can set the collision response for all channels back to block.

Hopefully this applies to your situation.