What is the right way to get a skeletal mesh component's location?

tl;dr
I’ve got a character blueprint that has lots of skeletal mesh components in it.
When I do GetWorldLocation on any given component (within the character blueprint’s event graph), it returns the root position of the skeleton, not the location of the mesh component.
I’ve tried on 4.10 and 4.11.1 and the result is the same.

I:

  • Placed one instance (Destructible_Zombie_BP) of the character blueprint and set its animation state to “idle crawl” (where the head is close to the ground)

  • Placed one instance (Destructible_Zombie_BP2) of the character blueprint and set its animation state to “idle stand” (where the head is NOT close to the ground)

(I verified that in-game each instance of the character blueprint is playing its proper animation, crawl and stand respectively.)

  • In the character blueprint event graph, on event tick, I printed out the GetWorldLocation of the “Head” skeletal mesh component for each instance (using debug filter).

In game, the position of the head of each character instance is visually different, so I expected the printed Z pos between the 2 to differ. Unfortunately they were the same.

Here’s a pic showing the two instances of the character BPs’ physical location in the game world:

Here’s a pic that shows the print nodes and the skeletal mesh component(s) in the hierarchy:

Any help as to how to get the location&rotation of a specific skeletal mesh component’s mesh would be extremely appreciated.

Sorry for the bump, but I take it the way I’m getting the location is correct?
I noticed/think only happens with the head, so maybe its collision settings aren’t set up right?

I know this is ancient but I just had the same issue and I hate finding threads like this with my problem but no solution.

For this, my solution was to just create a socket and use component->GetSocketLocation(), and this gave me accurate location data that accounted for the socket’s movement from animations.