Questions about AIController and Movement Components

In my game, characters always stand on a Pawn called “Chessboard,” and each Chessboard has 10 positions where characters can stand.

Player input causes the Chessboard to move, and the characters try to move to their corresponding positions on the Chessboard. Currently, the character movement is implemented by calling MoveToActor() every tick.
CharacterMove

However, there are some issues:

  1. Once the character touches the collision volume of the target Actor, it stops moving. I want the character to move further into the center of the collision volume, but even setting StopOnOverlap to false and AcceptanceRadius to 0 doesn’t seem to work.
  2. Unreal Engine only allows Actors and Vectors as movement targets. I want the actual movement target to be a DecalComponent under the character’s feet. Creating a temporary Actor and attaching it to the Decal is very inelegant—I’m looking for a better approach.
  3. Calling MoveToActor() every tick also feels inelegant. Are there any clever solutions to this?

If it’s necessary to override some classes with C++, I’d prefer the solution to not be overly complex.

In short, I’m looking for inspiration and ideas. Thanks!