Collision not working when standing still?

Hey guys,

I’ve looked into this further and problem is that Simulate Physics is turned off on Pawns. Turning it on, unfortunately, isn’t an option because that will cause a conflict with Character Movement component.

So if you’re looking to have a moving mesh displace a character, you’ll need to actually apply velocity to character based on an overlap event. I will look into doing this via Blueprints tomorrow and see if I can find a simple solution using this method.

This will of course be tricky to get right and isn’t an ideal solution. I will also talk to developers and see if they have any plans to make this more accessible.

Hey guys,

Sorry for delay. There is some development being looked into to make this unnecessary but there is currently no timeline for a change. This is a simple workaround that can certainly be cleaned up, but it should help you get going. There’s a few pictures so it’ll take a couple comments to post it all.

first step is to create a function in your Character Blueprint that will update character’s position when called. It includes a Vector Input. Really very basic:

8255-mycharacterpushed.png

Next, we need to add a component to Door Blueprint. On edge of door opposite its hinges, add a box component. I called mine DoorEdge. We’re going to update door opening part of Blueprint to set a Vector Variable with DoorEdge’s location at beginning of timeline.

After door is rotated, we do a quick check to see if door is touching character. I have already set up IsTouchingCharacter bool variable:

8259-dooristouching.png

If door has reached character and they are now touching, we Cast to Character Blueprint’s push function. We do a simple subtraction of beginning position of Door Edge component from current position, and pass it to function.

So every tick of Timeline, it gets Door Edge’s location, and if it’s touching character it will tell character to move by distance Door Edge moves. There are some issues that can be cleaned up (such as doing a check to see if character is being pushed into another mesh, maybe halting door if that happens, etc), but this basically works.

Again, I know this isn’t ideal and I believe developers are looking into making this unnecessary, but this should help in meantime. You can apply this to anything that needs to move a character with CharacterMovement component when it is standing still.

Anyway, hope that helps! Let me know if you have any questions.

Thank you! This works perfectly!

Add blocking volume around your mesh which you want to be player pushed by. Attach this volume to mesh which you animate via .
In character BP, in capsule component, set trace complex on move to true.
Then player will be moved by blocking volume.
I tested it on 4.6 and it works.

Hey will this ever work?, what is status of fix you talked about.

There hasn’t been any change yet. For now, your best bet is to implement something similar to what was described above.

Is this still necessary? I’m experiencing this to date using animation timelines and this is not intuitive at all, I imagine people will spend at least 30 - 45 minutes of their time believing it’s their fault haha.

(Edit: Alternatively, I’d recommend people to produce doors that swing away from you depending on which side you activate it from.)

Probably someone will be interested - following to your suggestion I’ve created blueprint for a door, which could be opened in both directions, depending on side where player’s trying to open it.


I will do quick explanation about what’s going on here. So when player pressed ‘F’ key we’re checking is he inside one of our trigger boxes, so he’s able to interact with door.
If it’s so - pass control to a CompareFloat function, which checks if our door is closed or opened(and if so - in what direction). If door spin > 0 - pass control to a FlipFlop function and further to Timeline, which responsible for positive(0deg-90deg) sector animation.
same thing for door spin < 0 - pass control to FlipFlop and to another Timeline, which do animation for our door in negative sector(-90deg-0deg).
If door spin is 0(literally door is closed) we ask - in what direction we wanna push our door, depending on where a player is(in what trigger box). If in 1st - pass control to FlipFlop and positive sector timeline, if in 2nd - to negative sector timeline.

That add pin node, one thats connected to Get Actor Location, how did you make that?

From Get actor location node, drag out return value, then release left mouse, blueprint list pop up, either press + on keyboard or look for it under Math category, there are several case of add pin node, either as vector3 + vector3 or vector 3 + float.

Another note is that you shouldn’t comment/ ask on old topic/ question, especially if it doesn’t relate to origin question. It is way better to create new question, you may get help faster, it is easier to gasp what you want to ask, and another reason is each time someone comment/ answer on a question, everyone that have comment/ answer/ ask will get a notify email, so if too many people do this, it get messy quicky.

Based on above, I added an overlap box to door. In character I check intersection with door, if this is true, then I add a minimal movement (0.001) in direction of look (but during overlap, character will move a little). Maybe this option will help someone find right way out of problem.
In fact, it does not matter which way character moves, main thing is to make collision work every tick)

I have come across lot of people complaining about this, and i Had same problem with a mobile game im trying to make, I wanted to have lots of various traps that would be able to push character, and i couldnt figure out how to do it well as when ever character is still, traps just went trough it

my solution? make character move ! if character is moving collision works
so on tick, i move my character 0.001 to left, then 0.001 to right, move amount is small enough not to be visible, and it makes character be pushed by moving objects :slight_smile:

may not be perfect but it works, hope this helps someone out there

Here is my decision. It looks like previous one, but it’s not player himself who moves, but box created in it.

Anyone knows is this problem has been resolved yet?
I am encountering it now and it would be nice to know if they added some kind of option to fix this :smiley:

It works! Good solution, thx!

2021 and apparently no fix yet

Sending a message back to past of May 2014, from June 2021:
This hasn’t been fixed yet :frowning:

Cant believe this is still an issue. God ■■■■.

What do you mean by “On edge of door opposite its hinges”?