How can I move bones in C++?

I’m trying to add some simple procedural animation to my game (i.e. candle flames flickering slightly in different directions)

I’ve inherited a C++ class from UPoseableMeshComponent (which itself inherits from USkinnedMeshComponent)

In my TickComponent() method, I move the bones like so:

// Calculate the local bone translation at the current time
FVector currentLocation = doFancyPantsBoneMovementCalculation();

// Update the transform of the bone
this->BoneSpaceTransforms[knownAndCorrectBoneIndex].SetTranslation(currentLocation);

// This is called by UPoseableMeshComponent::SetBoneTransformByName() whenever it
// updates the BoneSpaceTransforms, so we do it, too
MarkRenderDynamicDataDirty();

But nothing moves in the scene. I’ve added UE_LOG statements to verify it’s ticking and updating the bones and I’ve also tried going through UPoseableMeshComponent::SetBoneLocationByName().

What could I be doing wrong?

This Blueprint-only version appears to work, so I am most likely only doing something wrong