x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Client player slides over rotating platform, instead to move relatively with it

I'm posting here a bug report, because I don't know if the new form sent my report properly and I want to go sure, someone else confirms the bug:


Edit: The bug is now reported and unresolved. Issue-ID = UE-58099 I keep this post here for more detailed information, because the new description is a bit missleading for people, which don't know, that the player is actually not jittering, but being corrected, because he doesn't get carried from the platform at slow "rotational" speeds.


Steps to reproduce:

1: Start a third person project.

2: Create an actor blueprint and put in a cube as a child of DefaultSceneRoot and scale it big enough in X and Y so it acts as a platform.

3: Add rotation logic: EveryTick->AddRelativeRotation. Target = RootComponent. DeltaRotation Z(Yaw) = 0.01. Compile the blueprint.

4: Open the "ThirdPersonCharacter" blueprint, click "CharacterMovementComponent" and check "Ignore Client Movement Error Checks and Correction", to make the effect more visible. Compile the "ThirdPersonCharacter" blueprint. 5: "Run on dedicated Server". Number of players: 1. Hit play and jump on the platform, idle at an edge or corner.

Result: The player stays on the same world position, sliding over the platform, as if there was no friction.

Expected: The player moves relatively with the platform.

Description: The following are only assumptions based on my attempts to solve the issue. You can find a download link below the wall of text.

I tried to solve the bug. This is what I found until now: In the CharacterMovementComponent.cpp, method: "UpdateBasedMovement". At line #1805:

FVector const LocalBasePos = OldLocalToWorld.InverseTransformPosition(UpdatedComponent->GetComponentLocation() - BaseOffset);

OldLocalToWorld should be equal, if the character doesn't move on the platform, if I got this correct. I compared the vector on client and server. On the server, it stays equal (10 seconds idle-test). On the client, it changes over time. The only incorrect behavior is on "ROLE_AutonomousProxy". Authority and SimulateProxy run fine. My guess was then, since OldLocalToWorld is a Matrix, using "OldbaseQuat, OldBaseLocation", the method "SaveBaseLocation()" is called somewhere at "ROLE_AutonomousProxy". And I found one line. #1155:

else if (CharacterOwner->GetRemoteRole() == ROLE_AutonomousProxy) { // Server ticking for remote client. // Between net updates from the client we need to update position if based on another object, // otherwise the object will move on intermediate frames and we won't follow it. MaybeUpdateBasedMovement(DeltaTime); MaybeSaveBaseLocation(); ....

If I comment out "MaybeSaveBaseLocation();", the behavior is different. So it might be related to this part of the class. OldBaseLocation and OldbaseQuat are the only external(outside the methods scope) variables in "UpdateBasedMovement()" which can be different (at least I think so). I found this bug, when I just solved relative rotational replicated movement on rotating platforms. At very slow speeds, the player was jittering again, but only at 0.01. A little bit faster and the bug isn't present. So I reproduced the bug at the vanilla engine version 4.18. It is not an fps related problem. I recognized this behavior at slowly increasing rotation speed using "speed * deltaTime". After removing the error checks, I saw it was not a normal jittering, but the player didn't move at all and just being corrected from the server.

Additional Notes If you download my project. You may have to recheck "Ignore Client Movement Error Checks and Correction" in the "ThirdPersonCharacter" blueprint. I can't keep it checked after a project reload (yes I hit the save button :)) ps: ignore the project name (deleteMe), it is just an info for me, that I don't need it anymore at the end of the day.

Project link: https://drive.google.com/open?id=1XehuVkrLsafPkjSUS2pI_bB5WyeZ9v5j

Product Version: UE 4.18
Tags:
more ▼

asked Apr 26 '18 at 12:15 PM in Bug Reports

avatar image

Zhentouk
1 2 3

avatar image Jeff A ♦♦ STAFF Apr 25 '18 at 02:11 PM

Hello,

We've recently made a switch to a new bug reporting method using a more structured form. Please visit the link below for more details and report the issue using the new Bug Submission Form. Feel free to continue to use this thread for community discussion around the issue.

https://epicsupport.force.com/unrealengine/s/

Thanks

avatar image Zhentouk Apr 25 '18 at 03:28 PM

Thanks you for the reply. I'm gona re-report the bug in the new form then. Here's the last link I used for reporting the bug: https://epicgames.formstack.com/forms/unreal_engine_bug_submission_form

If this is the wrong link, you should probably update the guide from here: https://www.unrealengine.com/en-US/support/report-a-bug The link on the right "Unreal Engine Bug Submission Form" leads me to that form =)

Edit: Ah wait, this form actually worked. So I used the correct form (this post here on 'answers' was just for other users to confirm the bug, because I didn't found it on issues.unrealengine.com)

https://issues.unrealengine.com/issue/UE-58099

So now I found my post. I hope they got my information correct, because it is not a "shaking", but the character doesn't get carried from the platform at slow speeds and the corrections from the server make it look "shacky". Sadly, they skipped my (most important) hint, turning off the error-correction from the player, to see what actual happens :/

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

0 answers: sort voted first
Be the first one to answer this question
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question