Interactive Foliage Actor Issue

I put print to viewport statements in the Tick and CapsuleTouched functions implemented for InteractiveFoliageActor and can see capsule touched events being fired when I enter the tree’s capsule component.

I also printed the vector describing FoliageVelocity and FoliagePosition at every Tick; these vectors are oscillating until they reach a small value, at which point the simulation shuts off ticking for this actor.

This is all great, but the interactive foliage actor’s static mesh representation is not reflecting the oscillating values I see being printed.

There is a function that “propogates the new rotation axis and angle to the rendering thread” called UpdateParameters_GameThread. I bet there is a way to pick up the rotation axis and angle value from the blueprint and use it in the material to control world position offset, but I haven’t figured out how to tap into these values.

The code has a GetFoliageParameters function which outputs impulse direction and normalized rotation axis and angle. GetFoliageParameters isn’t found anywhere else in the code base, implying that I should be calling it, but I can’t get to it from a blueprint/material. Any ideas?

Code is in Source/Runtime/Engine/Private/FoliageComponent.cpp

If I expose the rotation axis and angle as a public variable with the proper UPROPERTY settings, I can feed them to a collection and use those variables in the material blueprint to drive the world position offset. But this doesn’t allow for multiple trees, each having their own rotation. I guess the last piece of the [very hacky] solution would be to figure out how to get the newly exposed rot axis and angle from the actor the material is applied to. Ideas on this?