Description

When an actor has a Child Actor Component that's a valid moving base for a character to walk on, the ticking prerequisites are set against the Child Actor and not the root owning actor that actually governs the overall actor cluster. 

So it's possible for based movement to be done in the wrong order:

Child Actor tick
Character tick / based movement update
Root Actor tick that also moves Child Actor, due to being attached in the scene

The AddTickDependency function could use an improvement to account for this case.

From UDN case: [Link Removed]

Steps to Reproduce

A simple test case would be:

Use any project with a Character, such as the 3rd person template project

Create a Blueprint actor that has a static mesh platform, marked as "Movable"

Add a simple actor to the level, like a primitive shape. Also mark it as "Movable"

Add a Child Actor Component to the level actor. Use your Blueprint platform as the Template.

Do some scripting to make the simple actor move (the one that has the CAC)

Run a PIE session, and jump onto the platform

Break in ACharacter::SetBase and trace down into AddTickDependency to verify that the prerequisite is set only against the spawned child actor, NOT the root actor

 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-205390 in the post.

0
Login to Vote

Backlogged
ComponentUE - Gameplay - Player Movement
Affects Versions5.3
CreatedJan 31, 2024
UpdatedFeb 2, 2024