Physics Objects get pushed by Player Character using default Movement Component

My main issue is that physics objects react to the Player and I cant seem to change it. For example I created a pendulum actor using physics constraints and it works exactly as expected but whenever the player generates enough speed moving into the pendulum or even jumping onto it the pendulum get pushed away as if its bouncing off the player. I would like the physics of the swing to simply push the player not the other way around.

Things I’ve already tried that didn’t work:

  1. Increased mass of pendulum / lowered mass of player
  2. Created physics material for pendulum, lowered restitution, increased density
  3. Created artificial physics to push player when hit by pendulum (the player gets pushed but the pendulum still gets pushed and even more so when using this method)
  4. Tried changing capsule collision on player to be Physics Actor
  5. changed all push and touch forces in player movement component to 0

My end goal would be the player character cant push the pendulum at all by touching it but can be pushed by the pendulum and stand on top of it while its moving. I also need to push it through physics based abilities used by the player so the pendulum still needs to be affected by physics. My next thought would be to create a custom physics based movement component for the player but I’m using only blueprints and this can be complicated and bad performance wise from what I’ve researched so far. Any suggested would be appreciated

When physics are enabled, your pendulum will inevitably be affected by outside forces. So here’s what you can implement in your pendulum actor’s event graph:


You’d also wanna add a collision volume (box, sphere, etc.) to the actor like this:

As you can see, the collision volume slightly exceeds the bounds of the actor’s mesh on the sides but not on the top and the bottom. This way the player can stand on it without getting pushed.

And here’s the result:

Hope this helps! :innocent:

Thanks for the reply, I tried your solution but the pendulum still gets pushed by the player in some circumstances. In my video I show a before and after implementing your solution to add more context. Also the pendulum is moving through a physics constraint.

Why don’t you handle the movement like I did in the first image I provided? You can also add more axis to it and adjust the rotation throughout the movement.

Ideally the pendulum would be dynamic like the Physics Constraint provides and simulate physics that way so other physics objects can interact with it and also physics based nodes like impulse and etc would work for it. I need it to swing and slowly lose momentum like in my video.

You can also achieve that without using physics. What you’re trying to do is ignoring physics while also wanting to have it. You can’t do that :sweat_smile:

I’ll send you the code


Here it is :blush:

The timeline:

The result:

I appreciate your answer and I see what your saying and it makes sense for certain use cases but after trying your method my requirement to add physical force to it will not longer work. For example I need to throw an item at the pendulum and when activating it it adds velocity toward the player to increase its speed and adding momentum so it swings dynamically. I don’t know how to do this without simulating physics, given add impulse cant be used otherwise. Its possible kinematic movement can be made convincing enough for this but I just don’t know how.

My main goal of all of this was to somehow lower the players effect on physics objects enough so that the player just get pushed around without adding an insane amount of force pushing other objects around. But I think the main problem lies with the Player Movement Component not allowing physics based movement for the player. Is there some work around for this?

By adjusting it’s rotation accordingly. I can send the code for it.

But you can’t achieve this using physics. You see, you want the actor to be affected by outside forces and also affect other objects including the player character. At the same time, you don’t want the player to be able to manipulate it while being affected by it. This is not how physics work so you would need to set custom mechanics into the game. And yes, you can enable physics for the player as well but then you won’t be able to use the movement component.

Is there some way to temporarily disable the movement component on the player and switch to a physics based one during a hit event with a physics based object?

There’s a node called Set Simulate Physics and it can actually be useful, I personally wouldn’t use it in this case due to certain reasons but you can try and see if it meets your expectations.

is it possible to create a custom movement mode within the player movement component using blueprints that could allow physics?

Nope. Also, determining when to enable physics is another problem if you were to use that node I mentioned. Like I said, you can already manipulate the pendulum’s rotation without using physics. I can send you the code if you’re interested in that.

Yeah I would appreciate seeing your code, thank you

I was unavailable for a while as I explained in my private message (in case you didn’t notice that)

Here’s the actor blueprint:


The timeline:

And the result:

(It can also push other actors if they have velocity but you can also make them get launched as well when they’re standing as well. Also keep in mind that the value inside the Less Than node that’s after the Find Look at Rotation node depends on your actor’s placement.)

Thank you, I appreciate the help. I’ll be sure to check this out and see how I can implement it into my game