CryENGINE

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

Настройка погодных эффектов

После завершения этого урока вы сможете настроить следующие погодные эффекты с помощью редактора Sandbox:

  • Облака
  • Дождь
  • Снег
  • Молния
  • Ветер
  • Ттуман
  • Землетрясения
  • Торнадо

Облака

Есть 3 типа облаков:

  •      3D-Облака (простое затенение)
  •     Объемные облака (лучший оттенок)
  •      Облака в плоскости (не 3D) 

3D-Облака (простое затенение)

Разместите Cloud entity на уровене:



Поместите его на высоте более 1000 метров (значение по оси Z = 1000). 



Убедитесь, что Cloud entity выбран, так что его свойства отображаются в RollupBar, а затем нажмите MTL <No Custom Material>. 



Это открывает Material Editor, где вы можете выбрать желаемый материал для облаков. Убедитесь, что шейдер Common.Cloud выбран в свойствах материала.



Масштабируйте облака с помощью Scale tool, при этом не забудьте выбрать все три оси!  



Для движения облаков, установите True в поле AutoMove, а также установите расстояние исчезновения (FadeDistance) = 100, чтобы сделать их исчезающими когда они достигают края поля в котором они движутся.



Затем необходимо решить, насколько большим будет SpaceLoopBox в котором они движутся от одного конца до другого. 2000 - значение по умолчанию для всех трех осей.

Наконец, вам нужно установить скорость, с которой они будут двигаться. Для обычных облаков оптимально использовать 5, а для грозовых облаков - около 15. Экспериментируйте, но помните, что если вы хотите выбрать облако, то будет целесообразно выключить AutoMove; Если этого не сделать - выбрать облако будет затруднительно.

Cloud Creation Tool

Cloud Creation tool позволяет создавать файлы с описаниями и настройками облаков (Libs/Clouds/*. XML), которые могут быть размещнны с помощью Entity Render/Cloud. Этот инструмент использeтся только для создания файлов-описаний. После экспорта этих файлов, примеры облаков могут быть размещенны с помощью Cloud Entity.

При использовании Cloud Creation Tool легко настроить сочетание спрайтов которые похожи на облака. Инструмент может быть найден в Clouds Menu в главной панели инструментов.

 


Для того чтобы создать Cloud template (шаблон) нам нужен какойто объект, из которого будут браться такие данные как как положение в пространстве. Нам нужен Area Box чтобы определить пределы нашего облака. Теперь мы можем создать новый шаблон облака.



Для создания облака, необходимо выбрать материал. Для обычного облака мы должны назначить один из commom.cloud shader materials.  



Есть несколько свойств в Cloud tool , которые позволяют настроить размер и внешний вид нашего облака. Поиграйтесь с настройками, создайте подходящее вам облако. Поставьте галку рядом с Preview Cloud, и нажмите кнопку Generate Clouds чтобы посмотреть на ваше облако. 

 


Number of Rows - Кол-во рядов (строк) спрайтов (?) в текстуре (Оставить 4 при использовании дефолтной cumulus_01.dds)
Number of Columns - Количество стлбцов спрайтов в текстуре (Оставить 4 при использовании дефолтной cumulus_01.dds)
Sprites Row - Задаёт ряд в текстуре для рендеринга
Number of Sprites - Колличество спрайтов которые будут сгенерированны для облака
Size of Sprites - Задаёт размер спрайтов
Size Variation - Определяет границы значений на которые случайно будут меняться размеры спрайтов в облаке
Angle Variations - Оперделяет рандомный угол поворота спрайтов в облаке
Minimal Distance between Sprites - Задаёт минимальную дистанцию между сгенерированными спрайтами в облаке between Sprites
Show Particles like Spheres - Для каждого спрайта генерируется дополнительная сфера.
Preview Cloud - Предварительный просмотр сгенерированного облака
Auto Update - Автоматическое обновление облака после изменения какого либо параметра.

Примечание: Cloud Texture Layout

Текстура облака разделена на столбцы и строки. При использовании дефолтного материала облака, присваивается текстура cumulus_01.dds (внизу). Эта текстура имеет 4 строки (0,1,2,4). 


Чтобы создать .XML-файл с настройками облака нужно просто экспортировать эти самые настройки облака в .XML-файл. Нажмите кнопку экспорта, она вызовет диалоговое окно Save As. Здесь вы можете перейти к папке Game\Libs\Clouds и сохранить файл туда.



Теперь, если вы создаете новое облако, вы должны установить новый шаблон (Cloud File) для вашего облака.



Если вы довольны получившимся облаком, вы должны удалить наш предыдущий объект "облако", который первоначально был использован для создания нашего файла с настройками. 

Объемные облака  

Для размещения такого облака, перетащите Volume entity на уровень.



С VolumeObjectFile установленным в Libs/Облака/default.xml, выберите материал облака в Material Editor-е. Убедитесь, что выставлен шейдер VolumeObject. Теперь размер облака может быть изменён.
 


Пример VolumeObject с материалом облака и VolumeObject шейдером.

Разница между обычным 3D облаком и VolumeObject заключается в том, что volume object-облака имеют правильное затенение. Не ставьте слишком много volume object-облаков, так как они сильно влияют на производительность.

Примечание: Если вы назначили новый материал, убедитесь в том применили ли вы правильный шейдер. Для volume-облака, вы должны назначить VolumeObject шейдер.

Distance Clouds

В отличие от других типов облаков distance clouds это горизонтальные плоскости размещённые в небе которые не могут быть перемещаться, таким образом они, в основном, подходит для заполнения неба на большом расстоянии (горизонт) или на больших высотах.

Инструмент Distance Cloud позволяет размещать плоскости похожие на облака в небе, конечно если присваивается правильная текстура. Они прекрасно подходят для создания реалистичного неба на вашем уровне, не вызывая огромные проблемы с замедлением визуализации.


Перетащите DistanceCloud на уровень.


Растяните его спомощью Scale-tool до 100, а затем назначьте однин из материалов distancecloud (все материалы с Distanceclouds шейдером в папке materials/clouds могут быть использованы). Distance clouds находятся в 2D, так что они должны быть размещенывысоко, чтобы игрок не видел того что они плоские: 


Cloud Shadows

Облака не отбрасывают тени в реальном времени, но может быть (подвижная) текстура, которая проецируется на весь уровень и создает иллюзию, наличия тени от облаков. 


Есть три переменные которые нужно выставить чтобы использовать этот тип теней от облаков.
1. В enviropment вкладке на rollup bar имеется переменная cloud shadow texture. Тут вы должны выбрать текстуру для теней от облаков. Можно использовать textures/clouds/cloud_pattern.dds или создать свою в Photoshop, закрашивая белым области в которых тени быть не должно.
2. Также, на enviropment tab-e есть <b>Extend Last Shadow LOD Min Spec</b>variable. 0=отключенно, 1=низк. 2=средн. 3=выс.
3. Наконец вы должны выставить для консольной переменной e_GsmCastFromTerrain значение 1 (True).

С такими настройками вы сможете увидеть тени на террейне.



Также вы можете установить Cloud Shadow Speed до 0,001 для быстро движущихся облаков и 0,0005 для обычных облаков.

Дождь

Есть два основных способа создать дождь в CryENGINE. Можно создать партикл со своей конфигурацией (это позволит получить вам больший контроль над эффектом). Также можно использовать Rain entity, это тоже даёт свои преимущества.

Rain Enity

Rain entity находится в Environment group в Entity Rollup Bar.

 

Amount - Определяет плотность дождя. Увеличить/Уменьшить для усиления или уменьшения дождя.
Color - Цвет дождя
Enabled - Включает\отключает эффект дождя.
FakeGlossiness - Установить блеск/влажность, применямые к поверхностям.
Puddles Amount - Устанавливает кол-во луж.
Radius - Радиус дождя.
RainDrops - Вкл\откл капли. Если это выключить, будут отображаться только лужи.
ReflectionAmount - Сила отражений на поверхностях от дождя.
UmbrellaRadius - Может быть использован для создания зонтика вокруг игрока/камеры ограждая их от дождя.

 

Rain PFX

Перетащите ParticleEffect entity в ваш уровень:

 

Партиклы называются так:

rain.rain.space_loop = (название-библиотеки). (название подпапки). (название эффекта)

Параметры rain.rain.space_loop могут быть настроены через его настройки на Particle tab в DataBase View. Отрегулируйте Count, Emitter Life Time, Spawn Delay и другие свойства для настройки размера и скорости у партиклов дождя.

 Примечание: не рекомендуется перетаскивать партиклы с RollupBar, т.к. они не поворачиваются лицевой стороной вверх. Перетаскивайте их непосредственно из Particle Editor.

Чтобы ограничить влияние партикла на определенные части вашего уровня просто сделайте форму в которой будет отключен или включенн какой либо партикл.

 

Некоторые старые версии SDK не имеют rain.rain.space_loop партиклы!

 Снег

Перетащите particle effect на уровень из Particle tab в DataBase View.

Чтобы добавить этот эффект, скопируйте имя (Weather.snow.heavy_snow_sheets), и вставьте его в слот партиклов. Отрегулируйте scale, чтобы получить больше снега.
Включить\отключить снег в опр. зонах на уровне можно также как и в предидущем случае с дождём.

Молния

Перетащите lightning entity на уровень.



Включите его и измените параметры, такие как задержка (в секундах), чтобы получить нужный вам тип молнии.

Active - Активирует\деактивирует молнию
Distance - Отступ от точки где в которой стоит entity на котором будет спауниться молния
Distance Variation - Регулирует расстояние на котором рандомно появляются молнии
Relative To Player - Молния появляется всегда над игроком
Light Intensity - Яркость вспышки создаваемой молнией
Light Radius - Расстояние, на которое рассеивается свет от молнии
Particle Effect - Партикл используемый для молнии
Particle Scale - Ключает случайный выбор величины партикла Variation
Particle Scale Variation - Позволяет рандомизации размера молнии
Sky Highlight Color - Цвет света генерируемого эффекта молнии
Sky Highlight Multiplier - Это умножается на цвет подсветки для получения окончательного цвета света, генерируемого эффекта молнии
Sky Highlight Vertical Offset - Позволяет добавить дополнительные вертикальные смещения на должность света, генерируемого эффекта молнии
Sound - Звук от эффекта (гром)
Timing Delay - Время (в секундах) между ударами молний
Delay Variation - Включает рандомные перерывы между ударами молний
Lightning Duration - Длительность эффекта освещения, не влияет на партикл (это надо делать в PFX файле)
Thunder Delay - Задержка между молнией и громом (звуком)
Thunder Delay Variation - Случайная задержка молнией и громом (звуком)

Ветер

 Глобальная скорость ветра может быть скорректирована вводом чисел (значения в м/сек) в Environment settings/wind vector. (положительнjе значениt у определяет быстрый ветер с севера, отрицательный у c юга, с востока - положительный х, отрицательный х - запад):


Вы также можете изменить глобальные значения ветра в игре с помощью обычных триггеров, например, если вы хотите изменить глобальную переменную ветра, когда игрок вошел в определенную область, вы можете создать Wind Entity в AreaBox. Wind Entity можно найти в папке Others в Entity Rollup Bar.


 Выберите AreaBox и прикрепите Attached Entities к Wind Entity. Вы должны быть в игровом режиме и зайдите в область, чтобы иметь возможность увидеть эффект.

Туман
Объемный туман в CryENGINE позволяет моделировать практически все аспекты воздушного пространства окружающего игрока. Рассеивание света, разнообразные частицы в воздухе и т.д.

 

 Объемный туман в CryENGINE.

Объемный туман на уровне может быть настроен в time of day диалоге.

Пользование

Большинство параметров тумана редактируются непосредственно в time of day диалоге. Есть также несколько параметров в других подразделах. Далее они также будут приведены здесь для ясности.
  • SunColor и SunColorMultiplier в Sky подразделе. Определяют высокий динамический диапазон цветов для солнечного света.
  •  SkyColor и SkyColorMultiplier в Sky подразделе. Определяет высокий динамический диапазон цветов неба.
  • GlobalDensity в Fog подразделе. Определяет глобальную плотность тумана. Чем выше значение, тем плотней туман.
  • AtmosphereHeight в Fog подразделе. Определяет на какой высоте над уровнем моря изменяется плотность тумана
  
Атмосфера: высота 1000,0 и 5000,0 (слева направо).

Fog Volumes

Смотрите Render Entities документацию для получения дополнительной информации. Если вы хотите, чтобы туман был в специальных зонах, которые не совпадают с туманом на уровне, пожалуйста, используйте Fog Volumes или Fog (Entity).

 

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

Настройте плотность и цвет так, как вам нравиться. Используйте fog volumes для имитации тумана ниже дождевых облаков:

Без fog volumes дождевые облака будут выглядеть не так:

Землетрясения

Активировать землетрясения можно с помощью среды Environment entity. Environment Entities можно найти RollupBar > Enity > Environment.

Перетащите shake entity на ваш уровень (сам entity виден только в режиме редактирования).  

 

Настройте значения силы "тряски" и радиуса, в котором собственно и будет шатать трубу и всё остальное :)

 

Включите shake entity добавив его в Flowgraph: 

 

В Flow Graph Editor-e, добавьте Start-узел выбрав его в Misc>Start. Затем добавьте Shake entity и присоедините два узла:

 Свойства

Radius - Определяет радиус, в котором будет землятресение.
Shake - Определяет мощность тряски.

Торнадо

Активируйте Tornadoes с помощью Environment entity. Environment Entities можно найти: RollupBar > Enity > Environment.

Добавить Tornado Entity на уровень.


В Tornado properties можно изменить скорость, чтобы сделать его быстрее.



Свойства:

Property

Описание

AttractionImpulse

Определяет импульс притяжения.

CloudHeight

Определяет высоту облака вокруг торнадо

FunnelEffect

Тут может быть указанн партикл

Radius

Радиус торнадо.

SpinImpulse

Определяет скорость вращения объектов, близких к торнадо (?)

UpImpulse

Определяет скорость подъема, объектов близких к торнадо (?)

WanderSpeed

Скорость движения торнадо может быть указан здесь.

Кроме того, можно настроить Flowgraph, где вы можете контролировать путь торнадо использованием tag points и MoveEntityTo нодов Flowgraph. 

 

FlowGraph. Простые уроки для новичков
Terrain Ambient Occlusion