CryENGINE

Русское сообщество

Настройка и расстановка растений

Настройка и расстановка растений


В этом уроке мы рассмотрим базовые настройки растительности, а также узнаем как разместить все это на вашем уровне.
Естественно, что лучшие результаты достигаются путем ручного размещения флоры (и уж тем более фауны :D). 
Тем не менее, путем создания интересных категорий растительности, вы можете создать хорошо смотрящуюся базу требующую минимальной переработки. 
Чтобы создать приятные глазу пресеты, вы можете настраивать значения описываемые в конце этого урока.

[ Выбор режима работы с растительностью ]

На RollupBar-е кликните Vegetation



[ Добавление категорий растительности ]

Нажмите на кнопку Add Vegetation Category



Наберите имя для группы (например - Forest) и нажмите ОК.



В списке объектов появилась наша категория - Forest. Выберем ее.



Галочки слева от названия активируют категории которые вы хотите использовать инструментом Paint Objects.
На данный момент в категории нет добавленных объектов, поэтому она не активна.
Кроме того, нажав серый треугольник вы можете увидеть объекты хранящиеся в категории.

[ Добавление объектов растительности ]

Нажмите кнопку Add Vegetation Object



Видим список ресурсов



Заходим в папку game/Objects/natural/trees/jungle_tree_large и выбираем какой нибудь объект, например jungle_tree_large_med_grey_green.cgf
Внизу окна видим превью нашего объекта. Жмем Open. 
Посмотрим на окно выше: там содержиться много полезной информации об объекте который вы хотетие разместить на уровне. 
Размер файла, число полигонов и вертексов, кол-во LOD-ов, а также материалы которые использует наш объект.
После нажатия кнопки Open, объект jungle_tree_large_med_grey_green появиться внутри созданной нами категории (Forest).

[ Размещаем растительность ] 

Выберите jungle_tree_large_med_grey_green в списке объектов. Текст будет выделен чтобы указать, что объект был выбран и может быть размещен.



[ Ручное размещение отдельных объектов ]

Вы можете вручную разместить выбранные в RollupBar-е объекты зажав Shift и шелкнув левой кнопкой мыши куда нибудь во вьюпорте.
На изображении ниже, дерево выбранно, о чем свдетельствуют зеленое и синее кольца вокруг него.



Удерживая нажатой клавишу Alt, нажмите левую кнопку мыши и перемещайте курсор для изменения масштабов объекта.
Чтобы вращать выбранный объект, перемещайте курсор при зажатых Ctrl, Alt и левой кнопки мыши. 

[ Размещение объектов с помощью Paint Objects ]


Теперь давайте кликнем на Paint Objects, увеличим радиус кисти передвигая ползунок влево/право.



Перемещая указатель мыши во вьюпорте, вы увидите кисть отображаемую зеленым кругом.
Зажмите левую кнопку и двигайте мышью чтобы разместить растительность. На вашем ландшафте вы увидите деревья.
Можно настроить опции кисти на панели объектов.



Удерживая Ctrl и левую кнопку мыши вы можете удалить лишние деревья.
 
[ Настройка параметров объекта ]

При выборе jungle_tree_large_med_grey_green в панели объектов, ниже появяться список параметров. 
Давайте рассмотрим наиболее важные параметры.

[ Size и SizeVar ]
Для начала вы должны решить насколько большими будут деревья в вашем лесу, а также определить разницу в размере между самым маленьким и самым большим деревом.
Size (размер) - собственно размер дерева, значение 1 соответствует 100%, значение 1,5 = 150% и т.д.
SizeVar - как раз разница между самым маленьким и самым большим деревом.
Оптимально выставлять в графу Size значение 1, а в графу SizeVar - значение 0,2. Естественно вы можете поэксперементировать с этими значениями и подобрать для себя лучший вариант.

[ Random Rotation ]

Если поставить галку рядом с этим параметром, деревья будут ставиться на ландшафт под случайным углом. Это придаст реалистичности и разнообразия вашей лесопосадке.
Не забывайте что эта функция работает только с Paint Object!

[ Bending ]
Эта величина задает изгиб деревьев. 0 - отсутствие изгиба, 1 - максимальный изгиб. Это глобальная переменная работающая для всех растений данного типа.
Попробуйте установить ее в значении 0.8 и оцените эффект изгиба ствола деревьев и движение листьев.

[ Brightness ] 
Изменяя это значение от 0 до 1 вы можете подобрать оптимальную яркость объекта. 
Если установить 0 - объект будет полностью черным, если установить 1 - объект будет с обычной яркостью, выбранной художником.

[ Density ]
Для лучшего распределения деревьев вы можете настроить плотность их посадки. Параметр можно менять от 1 до 100, и он влияет на расстояние деревьев друг от друга.
Задайте для него значение 10 и с помощью Paint Objects поставьте на карту несколько деревьев.
Примечание: если значение плотности выше чем радиус вашей кисти, деревья не появяться, поэтому убедитесь что у вшей кисти подходящий радиус!

[ AlignToTerrain ]

Эта опция придаст большую реалестичность при размещении деревьев на холмах и склонах.

[ UseTerrainColor ] 
Эта опция используется для смешивания трав с основными цветами местности. 
Вы также можете использовать эту опцию, для других объектов, но лучше всего это работает с травой.
Этот эффект особенно полезен для маскировки травы, которая исчезает на расстоянии.

[ Создаем группу из нескольких растений ]


Для начала добавим еще два объекта точно также, как и jungle_tree_large_med_grey_green.cgf
Это будут 
        Objects/natural/ground_plants/grass/bigpatch_medium.cgf
        Objects/natural/bushes/cliffbush/cliff_bush_yellow_mini.cgf
Отрегулируем их размер, и другие свойства описанные выше.
Далее выберите созданную вами ранее категорию (в нашем случае - Forest), настройте радиус кисти, выберите Paint Objects и приступайте к посадке нашей группы растений.
Результат должен получиться примерно как на рисунке ниже. Можете поперемещаться камерой в получившихся джунглях, убрать лишние растения, и сделать так, как вам нравиться.



Кстати совершенно необязательно добавлять в группу много различных объектов. 
Достаточно добавить еще несколько тех же самых деревьев и кустов, поменять их яркость и другие параметры и вы получите огромное колличество разных вариаций этих объектов!

Примечание: для подводной растительности не забывайте выставлять ElevationMin значение. Установите его ниже чем уровень воды, 0 - безопасный вариант.


[ Описание параметров объектов ]


Опция Описание
Size Изменяет размер объекта
SizeVar Устанавливает значение случайного изменения размера объекта
RandomRotation Разворачивает объекты под случайным углом
AlignToTerrain Помогает размещать под правильным углом объекты на холмах и склонах
UseTerrainColor Подстраивает цвет объекта под цвет ландшафта
Allow Indoor Позволяет отображатся растениям в закрытых областях (индорах)?
Bending Задает изгибы для растительности. 0 - нут изгиба, 1 - максимальный эффект
Hideable Дает возможность AI использовать объект в качестве укрытия. Можно задать растение в качестве прочного или слабого укрытия.
PlayerHideable Дает игроку возможность использовать объект в качестве укрытия.
GrowOnVoxels Возможность ставить объект на воксели
GrowOnBrushes Возможность ставить объект на браши
Pickable Разрешает игроку подобрать объект
AIRadius Дает знать AI насколько объект большой
Brightness Изменяет яркость группы растений
Density Регулирует плотность расстановки объектов, то, насколько близко объекты размещаются друг к другу
ElevationMin Минимальная высота, на которой можно расставлять объекты
ElevationMax Ограничивает максимальную высоту на которой можно ставить объекты
SlopeMin Минимальный угол ландшафта на котором можно расставлять растения. 225 = 90 градусов (?)
SlopeMax Максимальный угол ландшафта на котором можно расставлять растения. 225 = 90 градусов
CastShadow Включение / выключение теней для объекта.
RecvShadow Включает / выключает еффект восприятия объектом теней
AlphaBlend Включает alpha blending для текстур с альфа-каналом.
SpriteDistRatio Регулирует расстояние на котором включается sprite rendering
LodDistRation Определяет расстояние до изменения LOD-a
MaxViewDistRatio Регулирует расстояние видимости через растительность (?)
Material Определяет материал для применения к растительности
UseSprites Включает / выключает использование спрайтового рендеринга
Layer_Frozen Включает настройки замороженного слоя материала
Layer_Wet  Включает настройки мокрого слоя материала
Use_OnTerrain_Layers Устанавливает группы растительности, которые будут использованны на различных поверхностях с отдельными параметрами
Создание дороги
Общие параметры Entity