В Unreal Engine 4 мы можем использовать инструмент листвы для перемещения отдельных экземпляров листвы. Сначала мы переключаемся в режим листвы, затем выбираем несколько экземпляров листвы и перетаскиваем соответствующие оси виджета.

Я провел небольшое исследование того, как это работает под капотом.

Должен быть соответствующий модуль редактора. Я искал «Foliage» в строке поиска обозревателя решений:

Я хотел найти что-то вроде «перемещение/перетаскивание мышью» в классе, поэтому я прокрутил список методов и нашел это:

Метод приводит меня только к манипуляциям с кистью листвы, что бесполезно.
Поскольку меня волнует только то, как преобразовывать экземпляры, я бегло просмотрел методы и нашел «TransformSelectedInstances»:

он проходит через все InstancedFoliageActors на всех уровнях и находит выбранные экземпляры, затем выполните:

  1. вызовите «PreMoveInstances» в соответствующем файле FoliageInfo.
  2. Для каждого выбранного экземпляра примените преобразование.
  3. вызовите «PostMoveInstances» в FoliageInfo.

Теперь я знаю, как это работает.