Velocity vanish when I am standing right next to an object

Hey all,
I have a little question which I have been scratching my head for an answer. I am currently developing a game which involves relative time. In order to achieve that gracefully, I modified the unreal engine to integrate a time multiplier in the physics engine. That way the position update would be modified by time multiplier, but I treat all other interactions the same (ie, collisions still happen with modified bounding box, velocity is still changed, though I modified gravity as it would cause a cannon shot if something is suspended for too long). However, issue is, when I move just next to something that is suspended in time, if we are not penetrating each other, the velocity of the object would rapidly deteriorate to 0. After some investigation, I have a feeling it might be due to friction but I am not quite certain. So far, I have tried changing restitution, sleep threshold, even velocity correction. None of them seemed to work. It’s definitely not a common issue, but any inspiration or pointer to where this issue could come from would be greatly appreciated. Thank you all in advance!

Kind regards,
Bill Cao

Hello!
Do you have the same output with slomo console command?

Hey,
Thanks for helping me with it, no, the velocity seems to be retained in slomo console command, but the object’s velocity quickly goes to 0 in my implementation. As you can see in the video, it only happens when time is completely stopped. I can also confirm, though not shown here that the velocity is decreased gradually rather than instantly.

Oh so looks like the physics is still working and you are losing the momentum.

I am not sure which changes you did in the engine, but you need to reduce the tick rate of the physics system to so you avoid that force is being applied and loss.

Which force is that may I ask. I have been poking around the engine, and the main thing I changed is that in ParticleHandle.h, I added an extra variable to store the time multiplier. Which is used in PBDRigidsEvolutionGBF.cpp to modify the Dt used in Integrate. This modifiedDt is only used with updating location, ie X. In terms of collision, I added the modifier in CCDUtilities.cpp and ParticlePairMidPhase.cpp, used to change bounding box used for collision. Otherwise there is no real change. I aim to minimise the changes to existing physics system. I can also confirm that the particle is always in awake, and is not having vanishing velocity due to put to sleep. Could you enlight me as to what force is applied to this particle to kill its velocity. I am getting some ideas where due to the inconsistency of movement, ie no movement is done while the velocity is non-zero, the particle’s velocity is negated? May I also ask if there is a global way of generalising how much force is applied to particle from impulse/collision etc. I feel like that might be something I want more control over as applying constant pressure could cause the velocity to be become too big prior to release.

Can you give me more detail of how are you moving the actor?