так можно сделать в Static Mesh, только тебе надо будет куда-то записать координаты центра каждого плейна для вершин. Например в текстуру или в VertexColor
потом просто рассчитываеш локальные координаты для каждого плейна, вычитая из общих локальных локальный центр
еще надо будет придумать себе матрицу вращеня для куста (по факту три вектора направлений локальных осей к миру)
TransformX = CameraPosition - LocalToWorld( FaceOrigin )
TransformY = Cross(TransformX, float3(0,0,1))
TransformZ = Cross(TransformY, TransformX)
FaceOrigin - центр фейса
возможно я мог напутать порядок продуктов и вывернуть плоскость наизнанку. Фиксится перебором
затем просто помножить локальные компоненты локальных координат на соответствующий вектор в матрице и сложить
FaceVertexPosWS = LocalToWorldVector( LocalPosition - FaceOrigin )
WorldPositon = TransformX * FaceVertexPosWS.x + TransformY * FaceVertexPosWS.y + FaceVertexPosWS.y + LocalToWorld( FaceOrigin )
хз, я мог что-то напутать если что