Процедурный scatter
Dash содержит различные инструменты scatter, каждый из которых предназначен для определённых задач. На этой странице мы объясним, почему именно эти инструменты scatter являются наиболее часто используемыми в Dash.
Разброс по поверхности — это мирового класса решение для расстановки объектов, которое работает по поверхностям ваших мешей. Идея в том, чтобы дать ему некоторую геометрию (статический меш, ландшафт, процедурный меш и т.п...) в качестве поверхности/земли для расстановки, и несколько акторов, которые вы хотите расставить, и он выполнит свою магию.
Это самый обширный инструмент в Dash и включает в себя функции, запрошенные различными крупными AAA-студиями, талантливыми отдельными художниками и нашим стремлением к созданию передовых инструментов для построения миров.
В отличие от Разброса по поверхности, Разброс по пути расставляет объекты только вдоль кривых. Но вы можете дать ему меш, и если у него есть границы, он будет расставлять вдоль них, внутренне обрабатывая границы как кривые. И ещё одно важное отличие Разброса по пути в том, что он поддерживает расстановку акторов, то есть вы можете расставлять Decal, Blueprints и других акторов. Просто переключите Тип разброса с Instances на Actors и назначьте ваши акторы как Scatter Objects. Но для Decal у нас есть также отдельный инструмент — Decal Scatter -->
Разброс декалей делает ровно то, что и следует из названия: дайте ему поверхность для разброса и несколько декалей, и ваша поверхность будет покрыта декалями.
Сеточный разброс — практичный инструмент для более равномерных шаблонов. У вас есть полный контроль над размерами и делениями по XYZ и базовые функции маскирования по близости.
Объёмный разброс помогает заполнить любой меш экземплярами другого меша. В отличие от Разброса по поверхности, этот инструмент не расставляет на мешах, а внутри них. Типичный сценарий — создание уникальных форм, таких как пояса астероидов, или любые плавающие меши, которые вы хотите видеть в сцене.
Радиальный разброс позволяет создавать кольца инстансированных мешей вокруг центра. Затем вы можете создавать ряды, настраивать концентрические свойства так, чтобы элементы аккуратно складывались на каждом кольце, использовать маскирование по близости/объектам и т.д...
Обязательно прочитайте Начало работы страницу, чтобы проще усвоить информацию на этой странице. Раздел о создании окружения охватывает основы использования инструментов Dash, которые мы будем предполагать вы уже знаете на этой странице.
Помимо удобных специализированных инструментов для конкретных случаев, основная причина, по которой люди любят наши инструменты разброса, — их возможности маскирования. Большинство инструментов имеют некоторые базовые настройки маскирования, но Surface Scatter содержит практически все функции, поэтому давайте пройдёмся по ним по отдельности!
Функции маскирования
Инструменты разброса в Dash содержат различные функции маскирования, и хотя большинство из них расположено только в Surface Scatter, другие инструменты всё же имеют несколько опций, и мы активно расширяем функции маскирования для них. Давайте рассмотрим все основные функции маскирования, как они работают и что с их помощью можно сделать.
Прежде чем углубиться, здесь "маскирование" означает удаление расставленных экземпляров. Кроме того, большинство групп маскирования позволяет инвертировать результат маски. Вы заметите, что некоторые свойства имеют небольшой тёмный кружок в правом нижнем углу, что означает, что вы можете щёлкнуть правой кнопкой мыши по свойству и выбрать Инвертировать маску.

Маскирование по близости
Эта функция позволяет маскировать по кривым, мешам и экземплярам.
У неё есть Дистанция свойство, которое контролирует расстояние маскирования и использует нативные единицы UE. Другим свойством является Сэмплирование. Это значение контролирует качество маскирования. Большее значение означает более высокое качество, меньшее — ниже.
В примере выше мы используем меши и кривые для маскирования, но опираться на экземпляры так же просто: выберите их в вьюпорте и добавьте в объекты близости. В примере ниже мы расставили несколько сфер, затем диски и оставили только диски рядом со сферами.

Вы можете использовать маскирование по близости для построения реалистичных лесов. Сначала расставляете деревья, затем оставляете несколько папоротников и листьев под ними, затем используете кривую в качестве маски по близости, если нужен путь, затем расставляете камни по краям этого пути и т.д...
Начиная с Dash 1.8.5, Surface Scatter имеет возможность добавлять бесконечное количество масок близости через Таблицу близости (Proximity Table). Это заменило прежние 3 маски близости. В Таблице близости вы можете создавать группы, каждая из которых имеет свой объект, значение дистанции и ширины. Например, вы можете использовать первую группу, чтобы замаскировать некоторые объекты с определённой дистанцией, и сделать то же самое с другими группами.

Наконец, маскирование по близости отлично подходит для инверсии маски.
Маскирование по углу
Маскирование по углу довольно простое: оно опирается на базовую поверхность для определения угла и удаляет любые расставленные объекты в этой области. Это идеально подходит для того, чтобы держать склоны чистыми от деревьев и других объектов при расстановке на горах.
Маскирование по высоте
Такие инструменты, как Surface Scatter, имеют Минимальную маску по высоте и Максимальную маску по высоте свойства, которые позволяют отсекать расставленные объекты сверху или снизу.
Маскирование по объектам
В отличие от маскирования по близости, которое просто опирается на расстояния, маскирование по объектам использует трассировку лучей для определения того, находятся ли ваши экземпляры внутри, снаружи или рядом с объектом. Если вы хотите нарисовать кривую и оставить все экземпляры внутри этой кривой, эта функция идеально подойдёт. Вы также можете использовать её, чтобы сохранять экземпляры, находящиеся внутри/снаружи меша или объёма.
Этот метод маскирования также имеет Сохранять внутри булево свойство, которое можно переключать, чтобы гарантировать, что маскирование либо сохраняет экземпляры внутри, либо снаружи ваших входных объектов. Вы также можете использовать Дистанция свойство, чтобы сохранять экземпляры поблизости.
Маскирование шумом
Маскирование шумом позволяет быстро нарушить однородность ваших расставленных объектов. Вам предоставлен широкий набор параметров: от масштабирования до частоты, растяжения по осям, сглаживания шума, искажения и т.д...
Если вы расставляете траву, деревья или даже мусор, мы настоятельно рекомендуем использовать эту функцию, чтобы сделать результат более естественным.
Маскирование с комками
Маскирование с комками работает путём выбора случайных экземпляров и использования их в качестве центральной точки комка. Вам предоставлено значение для регулировки плотности выбираемых экземпляров и другое значение для контроля радиуса комков. В сочетании с шумом и другими масками это может быть очень мощным инструментом для реалистичных настроек разброса.
Маскирование по границе
Маскирование по границе обнаруживает граничные рёбра вашей поверхностной геометрии и маскирует все объекты рядом с этими границами.
Эта функция особенно полезна для рукотворных настроек разброса, таких как сады, где вы можете создать некоторую форму подложки, рассеять растения на ней, а затем скрыть эту геометрию. Каждая петля краёв вашей геометрии рассматривается отдельно, и Мини/Макс по границе свойства позволяют добавить некоторое рандомизирование в маскирование для каждой петли границы. Noise — это простой эффект шума, чтобы нарушить однородность границы.
Проекционное маскирование
Проекционное маскирование работает так, что точка каждого экземпляра испускает луч вверх, и любой меш, в который этот луч попадёт и который вы добавили в маску, гарантирует сохранение попавших в луч экземпляров. Вы также можете инвертировать эффект. Сценарии применения варьируются от сохранения экземпляров, находящихся под объектами, например растений или мусора под автомобилем, до удаления всех экземпляров, которые находятся под любым набором объектов в вашей сцене.
Маскирование по слоям ландшафта
Эта функция маскирования позволяет передать имя слоя покраски в Surface Scatter, и инструмент затем использует этот слой как маску. Вы можете передать до трёх слоёв.
Маскирование по текстуре
Маскирование по текстуре довольно простое: выберите текстуру в браузере контента UE, укажите её в Путь текстуры свойстве в группе Маскирование по текстуре, и вуаля. Вы можете выбрать, какой канал использовать как маску, отрегулировать порог цвета для помощи с градиентными пикселями и повторять (tile) текстурную маску. Всё, что нужно — убедиться, что ваша текстура содержит белые на чёрном пиксели, и белые пиксели будут использоваться как маска. Если вы пытаетесь создать структуру, например маленький украшенный сад с очень специфическими формами, мы рекомендуем этот подход: вы можете рассыпать на плоскости, скрыть плоскость, затем дать ей текстуру, представляющую форму вашего цветочного сада.
Маскирование по цвету вершин
Цвета вершин можно применять к статическим мешам, и затем все RGB-каналы доступны в этой группе маскирования. Кроме того, у вас есть контроль порога пикселя, чтобы настроить поведение маски на градиентных пикселях, а также Режимы смешивания выпадающее меню, из которого вы можете выбрать, как цвет вершин влияет на логику маскирования.
Направленное маскирование
В отличие от маскирования по углу, направленное маскирование позволяет использовать ваш актор солнца (или любой другой актор) для маскировки объектов на основе вращения солнца. Это можно использовать для удаления объектов, чувствительных к солнцу, наиболее частый пример — мох.
Добавить / Удалить маскирование
Это простой трюк маскирования, который позволяет нам случайным образом добавлять или удалять экземпляры. Например, вы можете использовать маскирование по близости, чтобы очистить путь от растений, но затем воспользоваться добавляющей маской с низким значением, чтобы оставить несколько растений здесь и там.
Ссылки на свойства
При создании сложной настройки, например леса с Surface Scatter для деревьев, другим для кустарника, ещё одним для травы и т.д., затем Path Scatter для нескольких деревянных столбов вдоль леса и дороги и т.д., такая сложность может быстро стать непосильной, и мы используем ссылки, чтобы упорядочить это. У вашей дороги будет ширина, и вы захотите, чтобы деревянные столбы уважали эту ширину, даже если у них есть небольшой оффсет. То же с лесной растительностью — вы не захотите, чтобы она появлялась на дороге, и так далее.
Способ сделать это — создать ссылочные свойства. Мы рассматриваем их на Начало работы странице, но рабочий процесс достаточно прост: вы создаёте свойство Distance или Width, которое определяет ширину дороги, и все эти инструменты будут его использовать. Когда свойство использует ссылку, мы даём ему вес, который позволяет расширить значение вашего свойства сверх того, что даёт ссылка. Например, если ваша Width равна 320, деревянные столбы могут иметь вес 0.1, что сделает их слегка больше ширины, поскольку вес действует как процентный множитель.
Таблица расстановки
В более поздних версиях (с Dash 1.8.5) мы начали добавлять таблицы данных в некоторые инструменты. Основная — это таблица расстановки в Surface Scatter. Вместо простого назначения нескольких объектов разброса с помощью иконки + в свойстве разброса, вы можете открыть таблицу расстановки, нажав кнопку Редактировать таблицу.
Здесь вы можете создать несколько строк свойств, назначить одной или нескольким строкам один или несколько объектов разброса, и затем у вас появится возможность контролировать смещение плотности и смещение масштаба для каждой строки свойств. Это значит, что вы можете иметь один Surface Scatter с очень специфичным контролем расставленных объектов, вместо того чтобы создавать несколько Surface Scatter.
Эта логика таблиц данных постепенно расширяется на другие инструменты и настройки, чтобы дать вам ту самую детализированную степень контроля, которая иногда необходима.
Последнее обновление
Это было полезно?