Hello, I would like some help to understand something that is blocking me in the progress of my student project.
Currently, in our FPS game, we use a grappling hook as a mechanic that allows us to swing and be drawn towards the direction of the point of impact.
However, I've noticed a huge problem: when the player reduces the game's parameters, the grappling hook applies a force twice or even three times less powerful.
I'd like to know if there's a solution to this problem, if we can set a fixed value in the engine physics parameters so that it doesn't change the way the game engine calculates the physics.
Solution I've already tried:
- Substepping -> True
- Max Substeps -> 4
- Use file DefaultScalability.ini in config with this config :
[/Script/Engine.PhysicsSettings]
bEnablePhysicsReplicationOptimizations=False
PhysicsSubstepping=True
MaxSubstepDeltaTime=0.016666
MaxSubsteps=4
- Do not use the tick
- Used a set timer by event with a fixed value
- Use Tick with reducing power force in relation to framerate
- Physics Prediction -> True
[Solved]
PLEASE USE AddMovementInput
for that !!!!!!!!!!!!
FVector ForceDirection = (GetGrapPoint() - GetPlayerOwner()->GetActorLocation()).GetSafeNormal() * GetForceGrapple();
GetPlayerOwner()->AddMovementInput(ForceDirection, 1.0f, false);
To avoid hassle use the AddMovementInput
if you apply force to the character.
The player must be in mode MODE_FLYING
for it to work, you must therefore limit the speed of the fly and adjust the speed with your acceleration
, and above all used the tick so that the AddMovementInput
does the force calculation, and forgot to multiply your force with your FrameRate, the AddMovementInput
does it for you!
This is also a very good method that works in multiplayer.
19 comments