Download

Custom Collision Channel confusion

Hello, I have something seemingly simple in my game but it’s giving me a ton of problems.

You can enter a spirit mode, where you can interest with other spirit objects.

This works perfectly fine for regular collisions, spirits interact with other spirits, but I can’t get it working in C++ traces, they seem to ignore these presets completely.

These two are auto-generated in my DefaultEngine.ini


+DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,Name="Spirit",DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False)
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel2,Name="Water",DefaultResponse=ECR_Ignore,bTraceType=False,bStaticObject=False)

But using ECC_GameTraceChannel1 never detects the spirit objects in game.
I thought it was tied to the Collision preset, but it looks ECC_GameTraceChannel1 is tied to the Spirit and Water object channels I added… If so, how can I get the proper collision presets?

I’ve looked all over online but can’t seem to figure this thing out. Any info would be greatly appreciated!
Thanks!

There are two different collision channels in UE4: trace channels and object channels. You have currently defined an object channel for Spirits, but haven’t defined a trace channel. If you go to Project Settings -> Collision, you will see an option to add a new trace channel. Once you add a new trace channel you should see a new entry in your DefaultEngine.ini.

It will probably look something like this:


+DefaultChannelResponses=(Channel=ECC_GameTraceChannel3,Name="Spirit",DefaultResponse=ECR_Ignore,bTraceType=True,bStaticObject=False)

Notice that bTraceType is set to true. This channel can now be used for traces in C++ and will also show up under Trace Type when modifying collision on an object.

That worked, thankyou <3