Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Вы можете нарисовать деревья на местностиландшафте вашей сцены. Игровой объект Terrain добавляет в вашу сцену большую плоскую плоскость, и вы можете использовать окно Terrain Inspector для создания подробного ландшафта. Подробнее
Посмотреть в Словарь
так же, как рисовать карты высотТекстура в оттенках серого, в которой хранятся данные о высоте объекта. Каждый пиксель хранит разницу высот перпендикулярно лицу, которое представляет пиксель.
См. в Словарь
и Текстуры. Однако деревья представляют собой твердые трехмерные объектытрехмерные игровые объекты, такие как куб, ландшафт или тряпичная кукла. Подробнее
См. в Словарь
, которые растут с поверхности. Unity использует такие оптимизации, как рекламные щиты для удаленных деревьев, для поддержания хорошего рендерингапроцесса рисования графики на экране (или в текстуре рендеринга). . По умолчанию основная камера в Unity отображает изображение на экране. Подробнее
Посмотреть в Словарь
производительность. Это означает, что вы можете иметь густые леса с тысячами деревьев и при этом поддерживать приемлемую частоту кадров.

Местность с деревьями
Местность с деревьями

Рисование деревьев

Кнопка Рисовать деревья на панели инструментовряд кнопок и основных элементов управления вверху редактора Unity, который позволяет вам взаимодействовать с редактором различными способами (например, масштабирование, перевод). Подробнее
См. в Словарь
включает рисование дерева:

Кнопка «Раскрасить деревья»
Кнопка «Раскрасить деревья»

Изначально в Terrain не было доступных прототипов деревьев. Чтобы начать рисовать на Terrain, вам нужно добавить прототип дерева. Нажмите кнопку Редактировать деревья и выберите Добавить дерево. Отсюда вы можете выбрать объект дерева из своего проекта и добавить его в качестве префаба дерева для использования с кистью:

Окно добавления дерева
Окно добавления дерева

Чтобы помочь в создании прототипов, SpeedTree предоставляет четыре модели SpeedTree в бесплатный пакет SpeedTrees в Asset StoreРасширяющаяся библиотека бесплатных и коммерческих ресурсов, созданная Unity и членами сообщество. Предлагает широкий спектр ресурсов, от текстур, моделей и анимации до целых примеров проектов, руководств и расширений редактора. Подробнее
См. в Словарь
. Кроме того, вы можете создавать свои собственные деревья.

Если дерево PrefabТип ресурса, который позволяет хранить GameObject вместе с компонентами и свойствами. Префаб действует как шаблон, из которого вы можете создавать новые экземпляры объектов в сцене. Подробнее
Посмотрите в Словарь
, что вы импортируете поддержку Коэффициент изгиба в окне Добавить дерево отображается свойство Коэффициент изгиба для настройки чувствительности к ветру. Деревья, созданные с помощью SpeedTree Modeler, не имеют коэффициента изгиба; только те, которые созданы с помощью редактора деревьев. См. раздел Как заставить деревья гнуться на ветру ниже.

Когда вы настроили свои Настройки (описанные ниже), вы можете рисовать деревья на ландшафте так же, как вы рисуете текстуры или карты высот. Чтобы удалить деревья из области, удерживайте клавишу Shift во время рисования. Чтобы удалить только текущий выбранный тип дерева, удерживайте нажатой клавишу Control во время рисования.

Настройки

После того, как вы выберете, какое дерево разместить, настройте его параметры, чтобы настроить размещение и характеристики дерева.

Настройки для деревьев
Настройки для деревьев
Свойства Функции
Mass Place Trees Создайте общее покрытие деревьев, не закрашивая весь пейзаж. После массового размещения вы все еще можете использовать рисование, чтобы добавить или удалить деревья, чтобы создать более плотные или разреженные области..
Brush Size Управляет размером области, в которую вы можете добавлять деревья.
Tree Density Плотность деревьев определяет среднее количество деревьев, нарисованных в области, определяемой параметром Размер кисти.
Tree Height Управляйте минимальной и максимальной высотой Дерева с помощью ползунка. Перетащите ползунок влево для низких деревьев и вправо для высоких деревьев. Если вы снимите флажок Случайно, вы сможете указать точную шкалу высоты всех вновь нарисованных деревьев в диапазоне от 0,01 до 2..
Lock Width to Height По умолчанию ширина дерева привязана к его высоте, поэтому деревья всегда масштабируются одинаково. Однако вы можете отключить параметр Привязать ширину к высоте и указать ширину отдельно.
Tree Width Если ширина Дерева не привязана к его высоте, вы можете управлять минимальной и максимальной шириной Дерева с помощью ползунка. Перетащите ползунок влево для тонких деревьев и вправо для широких деревьев. Если вы снимите флажок Случайно, вы сможете указать точный масштаб ширины всех вновь нарисованных деревьев в диапазоне от 0,01 до 2.
Random Tree Rotation Если вы настраиваете Дерево с группой LOD, используйте параметр Случайное вращение дерева, чтобы создать впечатление случайного, естественно выглядящего леса, а не искусственной плантации идентичных деревьев. Снимите этот флажок, если вы хотите размещать деревья с фиксированным одинаковым поворотом.
Color Variation Количество случайного затенения, применяемого к деревьям. Это работает только в том случае, если ваш шейдерпрограмма работает на графическом процессоре. Подробнее
См. в Словарь
читает _TreeInstanceColor свойство. Например, шейдеры для всех деревьев, которые вы создаете с помощью редактора деревьев, считывают свойство _TreeInstanceColor.
Tree Contribute Global Illumination Установите этот флажок, чтобы указать Unity, что Дерево влияет на Global Illuminationгруппу методов, которые моделируют как прямое, так и непрямое освещение для обеспечения реалистичные результаты освещения. В Unity есть две системы глобального освещения, сочетающие прямое и непрямое освещение: запеченное глобальное освещение и глобальное освещение в реальном времени.
См. в Словарь
расчеты.

Создание деревьев

Есть два способа создания новых моделей дерева. Используйте SpeedTree Modeler от IDV, Inc. для создания деревьев с расширенными визуальными эффектами, такими как плавный переход уровня детализации. , быстрый рекламный щит и естественная анимация ветра. Для получения более подробной информации см. документацию SpeedTree Modeler. Или используйте Редактор дерева для создания моделей дерева.

Внутренне Terrain Engine различает два типа моделей, определяя, является ли группой LODКомпонент для управления уровнем детализации (LOD) для игровых объектов. Подробнее
См. в Словарь
присутствует в корне префаба дерева GameObjectФундаментальный объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь
. Префаб SpeedTree имеет компонент LODGroup, а префаб редактора дерева — нет.

При создании деревьев поместите опорную точку у основания дерева, где оно выходит из-под земли. Производительность зависит от количества полигонов в вашей модели дерева, поэтому обязательно протестируйте ее на своей платформе и при необходимости создайте более простые деревья. Кроме того, для деревьев редактора деревьев каждый Meshосновной графический примитив Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
See in Словарь
всегда имеет ровно два материала: один для тела дерева и другой для листьев.

Деревья, которые вы создаете с помощью редактора дерева, должны использовать шейдеры Nature/Soft Occlusion Leaves и Nature/Soft Occlusion Bark. Чтобы использовать эти шейдеры, вы должны поместить деревья в определенную папку с именем Ambient-Occlusion, иначе деревья не будут отображаться правильно. Когда вы помещаете модель в эту папку и повторно импортируете ее, Unity вычисляет мягкую ambient occlusionA, чтобы приблизить количество окружающего света (свет, исходящий не с определенного направления) может попасть в точку на поверхности.
Просмотрите в Словарь
способом, специально разработанным для деревьев.

Если вы изменяете импортированный объект дерева в отдельном приложении для 3D-моделирования, вам нужно нажать кнопку Обновить в редакторе, чтобы увидеть обновленные деревья на вашем ландшафте:

Обновить расположение кнопки
Обновить расположение кнопки

Примечание. Когда вы импортируете и изменяете модель SpeedTree в программе 3D-моделирования, затем повторно экспортируйте ее (как .fbx или .obj), вы можете потерять естественную функциональность анимации ветра, которая поставляется с моделями SpeedTree.

Использование коллайдеров с деревьями

Вы можете добавить капсульный коллайдеркомпонент коллайдера в форме капсулы который обрабатывает столкновения для игровых объектов, таких как бочки и конечности персонажей. Подробнее
См. в Словарь
объект дерева. Сначала нажмите > рядом с древовидным ресурсом, чтобы открыть префаб.

Затем выберите Добавить компонент > Физика > Капсульный коллайдер, чтобы добавить коллайдер. Чтобы вернуться к сцене, нажмите < рядом с названием префаба.

Необходимо также установить флажок Включить древовидные коллайдеры в Terrain Colliderкомпоненте коллайдера в форме ландшафта. который обрабатывает столкновения для поверхности столкновения той же формы, что и объект Terrain, к которому он прикреплен. Подробнее
См. в компоненте Словарь
.

Заставить деревья гнуться на ветру

Зоны ветраИгровой объект, добавляющий эффект ветра местность. Например, деревья в ветровой зоне будут изгибаться в реалистичной анимированной манере, а сам ветер будет двигаться импульсами, создавая естественные закономерности движения среди деревьев. Подробнее
См. в Словарь
может сгибать деревья для имитации прямого воздействия ветра. Эта функция доступна только для деревьев, которые вы размещаете через меню Terrain. Для этого выберите Terrain, нажмите кнопку Нарисовать деревья в Инспекторе, затем выберите Редактировать деревья > Добавить дерево и выберите префаб дерева. Если вы не создавали дерево в Unity, установите для параметра Коэффициент изгиба значение 1. Нажмите на ландшафт, чтобы разместить выбранное дерево.

Деревья на основе рельефа, имеющие Коэффициент изгиба, реагируют на зоны ветра, изгибаясь и раскачиваясь в соответствии со значениями Турбулентности и Main свойства. Параметр Турбулентность управляет трепетом листьев. Уменьшение этого значения сглаживает эффект мерцания. Значение Main определяет основную силу ветра. Чтобы создать ветровую зону, выберите GameObject > 3D Object > Wind Zone.

Если режим ветровой зоны установлен на направленный, то ее положение относительно дерева не имеет значения. Деревья будут качаться в направлении зоны ветра. Однако, если режим вашей ветровой зоны — сферический, то ее радиус должен перекрывать радиус дерева. Это приводит к разнонаправленным порывам ветра с ослаблением от центра к краям.

При настройках по умолчанию деревья, такие как префаб Broadleaf (предоставленный в пакете Standard Assets Environment), качаются плавно и реалистично. Однако, если вы используете свой собственный префаб дерева, вам может потребоваться настроить значения свойств Wind Zone. Если ствол вашего сборного дерева согнут полностью в одну сторону, попробуйте уменьшить значение Main. В качестве альтернативы, если ветви вашего сборного дерева чрезмерно изгибаются или растягиваются, уменьшите значение Turbulence.

Зона перехода уровня детализации дерева (LOD)

Для деревьев в редакторе деревьев система LOD Unity использует зону перехода от 2D к 3D, чтобы плавно смешивать 2D-рекламные щиты с моделями 3D-деревьев. Это предотвращает внезапное появление 2D- и 3D-деревьев, что жизненно важно в виртуальной реальности. Обратите внимание, что рекламный щиттекстурированный 2D-объект, который вращается таким образом, что всегда обращен к камере. Подробнее
См. в Словарь
Деревья не получают местного освещения, например как Point Lights и Spot Lights. Они работают с направленным освещением, но освещение на рекламных щитах обновляется только при повороте Камерыкомпонента, который создает изображение определенного точка обзора в вашей сцене. Вывод либо рисуется на экране, либо фиксируется в виде текстуры. Подробнее
См. в Словарь
.

Для деревьев SpeedTree см. LODУровень детализации (LOD) метод — это оптимизация, которая уменьшает количество треугольников, которые Unity должна отображать для GameObject, когда его расстояние от камеры увеличивается. Подробнее
См. в Словарь
и в Группе LOD документацию для получения дополнительной информации о настройке компонентов LOD.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3