GetVelocity always returns zero?

Hello!

I’m having an issue where the “GetVelocity” node always returns a zero vector. I believe this might be something that I miss about inheritance or how MovementComponent, Actors and Characters interact.

My current hierarchy looks like this:

  1. BPI_Movable interface that specifies two functions: GetMoveEssentials and SetMoveEssentials.
  2. BP_LivingBeing that inherits from Character and implements BPI_Movable.


  1. BP_Person that inherits from BP_LivingBeing and has an Animation Graph where I try to use those values from the BP_Person (Character).

But for some reason the Get Velocity node in Set Move Essentials constantly returns zero vector which means my other variables won’t be set correctly either.

Why would that happen? BP_Person (as far as I can tell) doesn’t override those two functions so it should use those of it’s parent, right? What’s going on?

OK, solved it! It was fairly dumb, but I learned something. So - first of all I simplified the interface and removed the SetMoveEssentials. The issue was that… it was never called. I noticed that when I moved it to a Tick event like so.

Then it still didn’t work…

TIL that if you right click on an event you can “Add call to a parent function”. Which makes my BP_Person Tick event look like this…

And now the Tick event of the parent class also gets called - which correctly sets the variables I wanted!