On EventTick I took the velocity of the player and multiplied it by -1 and applied that vector as an impulse to the character movement with the Velocity Change checked as shown below.
I expected this to essentially lock my character’s movement however my character still ever so slightly moves when I am falling/running. Why is this? To clarify I am not necessarily trying to just freeze the character I’m to know what force is needed to essentially just float.
I don’t want any movement at all. It seems weird to me that even though I am adding an inverse of the velocity to the character movement I am still falling. I want to learn this because I am trying to create a rope swing system where I can hang and swing around, and it generally works, I am just slowly moving away from the swing point for some reason even though the force calculations I have seem to be correct.
The fact I can perfectly cancel out the velocity of the player and still get movement tells me I must be misunderstanding something.
But you said you want to create a rope swing system, the ideal solution for that is none of the above, it’s the physics constraint, something in this general direction:
I guess here I’m not necessarily trying to freeze movement, more so I am trying to understand why I am moving at all. It seems the velocity should be 0 and I shouldn’t be able to move, yet I still can slightly for some reason.
Regarding the rope swing thing, I’ve already tried the physics constraint and it doesn’t work quite correctly because of the behavior of the linear limits, at least as far as I understand it. I’ve seen 3 implementations now and they all use Add Force, I’ve copied some of them exactly yet I can’t replicate their behavior for some reason, as I always move slightly away from the swing point when I shouldn’t be moving away at all, which makes me think it’s some setting I’m missing. I made another post on it with some videos explaining it a little more, but got no replies.
it’s just the difference between the actor tick, physics tick and possibly the tick of the character movement component. for instance, if you put the stop movement immediately node that i showed you on event tick without the gravity scale node, the character will very slowly fall down (slower than a feather) because of the small time gap between the physics tick and the actor’s event tick, but disabling gravity fixes that.
You’re adding an impulse opposing the current velocity, but you have to achieve that velocity before the impulse can be applied which means the character must first be moving in order for the counter impulse to be applied in the first place, it’s a bit of a catch 22 really. Unless you’re moving there is no impulse, and because of that you can move for whatever milliseconds there are between each frame.
The reason you are able to move with the impulse, but not with the stop movement immediately node is, if i were to guess, because the stop movement doesn’t just cancel velocity but also acceleration, which means any movement between frames would become too small to be humanly perceivable.
With your impulse, the character’s acceleration is probably still rising which will move the character by the acceleration between each impulse.