Коротко
- PCGCleanSplineSettings позволяет удалять совпадающие контрольные точки и точки, лишние на прямолинейных участках.
- PCGSpawnSplineMeshSettings создаёт Spline Mesh Component для каждого сегмента сплайна.
- Документация по очистке относится к экспериментальному Python API Unreal Engine 5.7, а по созданию мешей — к версии 5.5.
- В настройках меша переопределения поддерживаются на уровне данных в целом; переопределения для отдельных контрольных точек не поддерживаются.
Что вы узнаете из этого руководства?
В руководстве рассматриваются возможности инструментов Procedural Content Generation (PCG) в Unreal Engine для редактирования данных сплайна и создания мешей вдоль него. В первой части мы изучим настройки PCGCleanSplineSettings, предназначенные для удаления лишних контрольных точек, расположенных друг на друге или на одной прямой. Затем разберём, как класс PCGSpawnSplineMeshSettings создаёт компоненты меша на сегментах сплайна.
Цель здесь — не пошаговое создание конкретной архитектурной модели, а понимание назначения двух групп настроек и того, на какие решения они влияют в рабочем процессе. В документации описаны свойства классов, но нет ни полноценного скрипта Python для создания конкретного графа PCG, ни пути к пунктам меню редактора. Поэтому приведённая ниже последовательность действий — это рабочий порядок, составленный на основе задокументированных свойств.
Требования и примечание о версиях
Две страницы API, использованные в источниках, относятся к разным версиям Unreal Engine: класс очистки сплайна описан в экспериментальной документации Python для Unreal Engine 5.7, а класс создания Spline Mesh — в экспериментальной документации Python для версии 5.5. Это не означает, что функции доступны в одинаковом виде в одной версии или что оба класса готовы к совместному тестированию. Проверьте документацию API для версии, используемой в вашем проекте.
Оба класса определены в модуле PCG. Класс очистки основан на PCGSettings; настройки создания меша используют тот же базовый класс. В документации не указаны требования к аккаунту или лицензии. Тем, кто планирует использовать настройки PCG через Python, следует обратиться к документации Python API для выбранной версии. В источниках нет готовых примеров скриптов, поэтому здесь не приводится исполняемый код.
Порядок работы
Определите данные сплайна и цель. Сначала уточните, какую геометрию описывает сплайн и какой тип меша нужно создать вдоль него. Например, с помощью сплайна можно задать границу ландшафта, край дороги или линейный архитектурный элемент, однако используемый меш и структура проекта в этой документации не описаны. На этом этапе важно определить, какие точки или участки действительно влияют на форму, прежде чем редактировать сплайн.
Выберите параметры очистки. PCGCleanSplineSettings рассматривает два основных случая удаления лишних контрольных точек вдоль сплайна: точки, находящиеся в одном месте, и точки на прямолинейном участке между предыдущей и следующей точками. Параметр
remove_collinear_control_pointsуправляет удалением точек на прямых участках, которые не влияют на итоговый расчёт сплайна. Параметрfuse_colocated_control_pointsобъединяет точки, расположенные в пределах заданного порога расстояния в мировом пространстве.Внимательно задайте пороговые значения.
colocation_distance_threshold— порог расстояния, определяющий, какие две контрольные точки считаются находящимися в одном месте.collinear_angle_threshold— угловой порог, по которому определяется, считать ли точку лежащей на прямой между предыдущей и следующей точками. В документации описаны тип и назначение этих свойств, но не рекомендованные значения для конкретного проекта. Поэтому пороги нужно проверять на данных сцены, чтобы сохранить форму сплайна.Проверьте пространство измерения и единицы угла. Параметр
use_spline_local_spaceзадаёт использование локального пространства сплайна вместо мирового при расчёте расстояния. Если включёнuse_radians, угловой порог используется напрямую в радианах; при изменении этого свойства текущее значениеCollinearAngleThresholdавтоматически преобразуется. Учитывайте изменение единиц при ручном переносе значений.Оцените создание мешей вдоль очищенного сплайна. PCGSpawnSplineMeshSettings создаёт Spline Mesh Component для каждого сегмента заданного сплайна. Если цель очистки сплайна — уменьшить число не влияющих на геометрию точек, не меняя её форму, настройки очистки стоит оценить до создания мешей. Исходная документация не показывает, как связать эти два класса в конкретном графе, поэтому такая последовательность — рекомендация по реализации, а не готовая схема соединения.
Проверьте параметры меша и загрузку.
spline_mesh_descriptorзадаёт описание компонента меша, аspline_mesh_params— параметры Spline Mesh. При включённомsynchronous_loadпринудительно выполняется синхронная загрузка мешей и материалов. Оцените влияние этой опции на загрузку в проекте: документация не указывает результаты по производительности и не даёт рекомендаций, в каких случаях её использовать.Учитывайте ограничения переопределений и постобработки.
spline_mesh_override_descriptionsзадаёт переопределения для описания Spline Mesh. В документации прямо указано, что сейчас поддерживаются только атрибуты на уровне данных в целом, а переопределения для отдельных контрольных точек не работают.post_process_function_namesпринимает список функций, вызываемых на целевом акторе после создания меша. Эти функции должны быть без параметров и иметь флагCallInEditor.
Частые ошибки
Считать, что документация для 5.5 и 5.7 гарантирует работу в одной версии: Документация по двум классам относится к разным версиям. Отдельно проверьте свойства в используемой версии.
Слишком сильно увеличивать пороговые значения: Пороги расстояния и угла влияют на результат очистки. В источниках нет универсальных оптимальных значений; проверяйте, сохраняется ли форма сплайна.
Ожидать переопределений для отдельных контрольных точек: В описании переопределений меша сказано, что такой способ использования не поддерживается. Учитывайте ограничение на уровне данных при проектировании решения.
Не учитывать изменение
use_radians: При смене единицы измерения угла существующий порог преобразуется автоматически. При переносе значения из другой настройки или рабочего процесса уточните, в каких единицах оно задано.Предполагать наличие незадокументированных действий в редакторе: Эти источники описывают классы и их свойства; в них нет конкретной схемы размещения узлов или исполняемого примера на Python.
Чем это полезно для архитектуры, интерьеров и archviz?
Команды, создающие с помощью сплайнов дороги, бордюры, похожие на ограждения линейные элементы или границы ландшафта, могут использовать очистку не влияющих на форму контрольных точек и создание мешей вдоль сегментов. Настройки очистки следует применять с учётом цели — сохранить форму геометрии; параметры создания меша, описание, настройки и поведение загрузки нужно отдельно оценить в проекте. Особенно важно не упускать совместимость API, если в команде используется несколько версий Unreal Engine.
В этой документации не указаны требования к оборудованию, прирост производительности или условия лицензирования. Поэтому нельзя сделать вывод о том, как очистка сплайна или синхронная загрузка повлияют на производительность конкретного компьютера. Самый осторожный подход — тестировать настройки для больших сцен в исходном проекте и целевой версии, а также проверять совместимость экспериментальных возможностей Python API до их включения в производственный процесс.
Следующие шаги
Сначала откройте документацию PCG Python API для выбранной версии Unreal Engine и сравните свойства двух классов. Затем измените настройки очистки контрольных точек на небольшом тестовом сплайне и оцените влияние на его форму. При создании мешей проверьте descriptor, параметры и ограничения переопределений на уровне данных в целом. Прежде чем переходить к производственной сцене, убедитесь, что нужные функции доступны в используемой командой версии и дают ожидаемый результат.
Источник и лицензия
Руководство адаптировано на русский язык на основе описания PCGCleanSplineSettings в экспериментальной документации Python API для Unreal Engine 5.7 и описания PCGSpawnSplineMeshSettings в экспериментальной документации Python API для Unreal Engine 5.5 от Epic Games. Оба источника — официальная документация; в записях источников лицензия указана как свободная.
Источники
Источников: 2Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.
Рассматривать очистку сплайнов и создание мешей по сегментам в рамках одного производственного процесса — полезный подход, который может упростить работу с повторяющимися линейными элементами. Для архитектурных и archviz-команд главная ценность — проверка настроек с учётом сцены и назначения сплайна; в документации нет готовых пороговых значений или замеров производительности.
По этим источникам невозможно оценить стартовые затраты для офисов и студентов в Турции; условия лицензирования и требования к оборудованию также не описаны. Перед принятием решения о внедрении важно учесть различия версий: документация для 5.5 и 5.7 описывает разные классы, а API представлен в экспериментальной документации Python.
Частые вопросы
Для чего нужен Unreal Engine PCGCleanSplineSettings?
Он позволяет удалять совпадающие контрольные точки и точки, лишние на прямолинейных участках сплайна. Пороговые значения расстояния и угла определяют, какие точки подпадают под эти условия.
Как PCGSpawnSplineMeshSettings создаёт меши вдоль сплайна?
Для каждого сегмента заданного сплайна создаётся Spline Mesh Component. В документации описаны такие настройки, как описание меша, параметры Spline Mesh и синхронная загрузка.
Можно ли применять переопределения Spline Mesh к отдельным контрольным точкам?
Согласно документации, сейчас переопределения поддерживаются только на уровне данных в целом; для отдельных контрольных точек они не работают.



