Создание полноэкранного эффекта с помощью потокового графа

Материал из CryWiki Russia

Перейти к: навигация, поиск

Содержание

Создание полноэкранного эффекта с помощью потокового графа

Основы

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

Включение дополнительных нодов

По умолчанию, ноды для эффектов не видны в потоковом графе. Чтобы увидеть их, перейдите в меню View/Components/WorkInProgress и отметьте этот элемент.

Добавление нового нода

Чтобы добавить нод в Flow Graph, щелкните правой кнопкой мыши в любом месте основного окна, затем перейдите в Add Node, и там выберите нужный вам нод.

Удаление нодов

Чтобы удалить нодвы, выберите их и нажмите клавишу Delete.

Соединение нодов

Чтобы соединить или разъединить ноды, то перетащите стрелку от нода.

Копирование и вставка

Вы можете скопировать, либо вставить, несколько нодов за один раз выбрав ноды, нажав правой кнопкой, и выбрав Copy, либо Paste.

Ноды для эффектов

Ноды «Camera»

Находятся в Add Node -> Camera. Эти ноды создают эффекты камеры.

ViewShake — генерирует случайную тряску камеры. Эффективно для соединения с эффектами взрывов.

  • Trigger: Запускает эффект.
  • Restrict: Условия для ViewShake. Можно выбрать «None» — чтобы никаких условий не было, «NoVehicle» — если тряска должна быть применена только в том случае, когда игрок не находится в транспорте, или «VehicleOnly» — если эффект должен быть применён только в том случае, когда игрок находится в транспорте.
  • View: Камера для применения эффекта. Может быть «FirstPerson» — для игрока, либо «Current» — если вы хотите применить ViewShake для, например, кат-сцены.
  • GroundOnly: Если выбрано, то тряска применяется только тогда, когда игрок стоит на земле.
  • Angle: Управляет углом перемещения тряски.
  • Shift: Управляет сдвигом расстояния перемещения тряски.
  • Duration: Управляет продолжительностью эффекта от начала до конца.
  • Frequency: Управляет частотой перемещения тряски.
  • Randomness: Управляет случайностью перемещения тряски.

Ноды CrysisFX

[Устарели — вместо них используйте ноды Image]

Ноды Image

Могут быть найдены в Add Node/Image. Ноды Image используются для создания эффектов пост-обработки, которые могут быть использованы для игрового процесса или кат-сцены.

Важное примечание:
Одновременно можно использовать несколько нодов для получения других эффектов путём смешивания, но знайте, что каждый из этих нодов добавляет дополнительные проходы рендеринга, поэтому убедитесь, что предельное число использованных одновременно нодов имеет разумные пределы. Эффекты, наиболее нагружающие GPU, помечены примечанием *нагружающий рядом с их названием.

ColorCorrection — задаёт изменение цвета конечного изображения для игрового процесса, либо кат-сцена. Для цветокоррекции конечного изображения, вместо этого нода, используйте «Time of Day».

  • Enabled: Включает/отключает нод.
  • Cyan: Управляет голубого оттенка всего экрана.
  • Magenta: Управляет пурпурного оттенка всего экрана.
  • Yellow: Управляет желтого оттенка всего экрана.
  • Luminance: Управляет свечением всего экрана.
  • Brightness: Управляет яркостью всего экрана.
  • Contrast: Управляет контрастностью всего экрана.
  • Saturation: Управляет насыщенность всего экрана.
  • Hue: Оттенок всего экрана.

DepthOfField (*нагружающий) — имитирует глубину резкости камеры.

  • Enabled: Включает/отключает нод.
  • EnableDof: Включает/отключает эффект.
  • FocusDistance: Управляет фокусным расстоянием камеры.
  • FocusRange: Управляет диапазоном фокусировки камеры.
  • BlurAmount: Управляет интенсивностью размытия.

FilterBlur — применяет фильтр размытия.

  • Enabled: Включает/отключает нод.
  • Type: Тип фильтра (на данный момент поддерживает 1 тип).
  • Amount: Управляет интенсивностью эффекта. 0 отключает.

FilterRadialBlur — применяет эффект радиального размытия.

  • Enabled: Включает/отключает нод.
  • Amount: Управляет интенсивностью эффекта. 0 отключает.
  • ScreenPosX,Y: Положение радиального центра экрана.
  • BluringRadius: Расстояние ослабления радиального размытия.

FilterGrain — применяет фильтр зернистости.

  • Enabled: Включает/отключает нод.
  • Amount: Управляет интенсивностью эффекта. 0 отключает.

FilterSharpen — применяет маску нерезкости (иначе говоря, контурную резкость).

  • Enabled: Включает/отключает нод.
  • Type: Тип фильтра (на данный момент поддерживает 1 тип).
  • Amount: Управляет интенсивностью эффекта. 1 отключает, значения ниже 1 — размытость экрана, выше 1 — резкость экрана.

DirectionalBlur — применяет эффект направленного размытия. Может быть использован, например, для эффектов удара/попадания. Зависит от размытия движения, если второе включено.

  • Enabled: Включает/отключает нод.
  • Direction: Управляет направлением вектора.

ChromaShift — применяет эффект дисперсии цветности (несколько выборок RBG вместо одного образца).

  • Enabled: Включает/отключает нод.
  • Amount: Управляет интенсивностью эффекта. 0 отключает.

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

  • Enabled: Включает/отключает нод.
  • Amount: Управляет интенсивностью эффекта. 0 отключает.

EffectWaterFlow — специфичный эффект, применяет воду, текущею через экран. Для использования, при попадании в камеру любой вида потока воды (например: брызги, водопады).

  • Enabled: Включает/отключает нод.
  • Amount: Управляет интенсивностью эффекта. 0 отключает.

AlienInterference — специально разработан для создания инопланетного шума/эффекта интерференции, при приближении игрока к конкретному источнику.

  • Enabled: Включает/отключает нод.
  • Amount: Управляет интенсивностью эффекта. 0 отключает.

DistantRain — специфичный эффект, рендерирует несколько объёмных слоёв находящихся на расстоянии. Должно быть использован вкупе с частицами дождя, чтобы сократить число требуемых частиц.

  • Enabled: Включает/отключает нод.
  • Amount: Управляет интенсивностью эффекта. 0 отключает.
  • Speed: Управляет скоростью смещения дождя.
  • DistanceScale: Указывает, насколько далеки слоя.
  • Color: Указывает множитель цвета слоёв дождя.

EffectBloodSplats — специфичный эффект, отображает пятна крови на экране.

  • Enabled: Включает/отключает нод.
  • Type: Тип пятен крови. 0 — человечьи, 1 — инопланетные.
  • Amount: Управляет интенсивностью эффекта. 0 отключает.
  • Spawn: Включайте, когда требуется породить пятна крови (но отключайте после порождения).

EffectCondensation — специфичный эффект, имитирует конденсат на экране.

  • Enabled: Включает/отключает нод.
  • Amount: Управляет интенсивностью эффекта. 0 отключает.
  • CenterAmount: Управляет видимым количеством эффекта в центре экрана.

EffectFrost — специфичный эффект, имитирует скопление заморозки на экране.

  • Enabled: Включает/отключает нод.
  • Amount: Управляет интенсивностью эффекта. 0 отключает.
  • CenterAmount: Управляет видимым количеством эффекта в центре экрана.

RainDrops — специфичный эффект, имитирует капли дождя, падающие на экран.

  • Enabled: Включает/отключает нод.
  • Amount: Множитель количества капель на экране. 0 отключает их.
  • Spawn Time Distance: Время, перед порождением следующей капли.
  • Size: Размер капель дождя.
  • Size Variation: Вариация размера капель дождя.

VolumetricScattering — специфичный эффект, имитирует объемный туман ближайшего окружения.

  • Enabled: Включает/отключает нод.
  • Amount: Управляет интенсивностью эффекта. 0 отключает.
  • Tiling: Устанавливает плиточность эффекта.
  • Speed: Устанавливает скорость анимации эффекта.
  • Color: Множитель цвета.
  • Type: Доступен только один тип.

Ноды MaterialFX

Для реализации полноэкранного эффекта для эффекта частиц, в его потоковом графе могут использоваться эти ноды. Находятся в Add Node/MaterialFX .

HUDStartFX

Указывает движку начало полноэкранного эффекта.

Вводный порт

  • Start: Запускается автоматически системами MaterialEffects.

Выводные порты

  • Started: Срабатывает, когда эффект начанается.
  • Distance: Расстояние до игрока.
  • Param1-4: Пользовательские плавающие параметры, которые могут быть указаны в XML-описании эффекта.

HUDEndFX

Указывает движку конец полноэкранного эффекта.

  • Trigger: Запуск порта, для завершения эффекта. Это ДОЛЖНО быть сделано, если вы хотите вновь использовать эффект.

Для реализации полноэкранного эффекта в игре, вы должны сохранить потоковый граф.

  • Создайте потоковый граф эффекта.
  • Создайте ноды HUDstartFX и HUDendFX.
  • Создайте нод Delay (Add Node/Time/Delay).
  • В Delay укажите минимально-требуемую продолжительность чтобы ввести всю продолжительность эффекта потокового графа
  • Соедините порт Started нода HUDStartFX с каждой отправной точкой каждого нода эффекта, и порт In настроенного нода Delay.
  • Соедините порт Out нода Delay с портом Trigger нода HUDendFX.
  • Сохраните потоковый граф в Libs/MaterialEffects/Flowgraphs .
  • Если вы используете полноэкранный эффект, как эффект ударного воздействия пули или взрыва, то сохраните XML-файла таким образом: /MaterialEffects/Flowgraphs/название, и пропишите его в Libs/MaterialEffects/FXLibs/bulletimpacts.xml. Этот XML-файл авторизует требуемые элементы эффекта, такие как эффект частиц, звук, декали пули.

Примеры

Чтобы фактически сделать полноэкранный эффект потокового графа, нужно использовать более общие ноды. Ниже представлены пара примеров.

Настройка времени, анимация значения

Пример потокового графа ударного воздействия ядерного оружия.

Sandbox FullscreenEffects image001.jpg

  • Используйте ноды HUDStartFX и HUDendFX, соединённые нодом Delay, поэтому эффект будет продолжаться по всей длительности потокового графа.
  • Используйте нод Delay из предыдущих нодов эффекта. Этот нод часто используется для настройки времени активации каждого нода.
  • Используйте нод Float (Add Node/Interpol/Float) для «анимации» некоторых значений Color Correction. У него можно установить Time, StartValue и EndValue. Когда он получает вводное значение, он его интерполирует от StartValue до EndValue со скоростью указанной в Time, а затем передаёт выводное значение следующему ноду. Действенный способ создать анимированные значения.
  • Некоторые ноды получают одинаковые выводные значения выхода из того же нода. Как правило, выводное значение может соединяться с нескольким вводами. Это спасает от бесчисленного числа нодов.

Появление из текстуры

Пример потокового графа с эффектом грязи на экране, когда игрок находился рядом с взрывом.

Sandbox FullscreenEffects image002.jpg

  • Используйте нод RandomSelect (Add Node/Logic/RandomSelect) для случайного выбора текстуры из трех имеющихся.
  • Используйте нод ScreenFader для появления из каждой текстуры. Этот нод был первоначально разработан для исчезновения. Используя этот метод, вы можете показывать текстуру, а затем скрывать её через несколько секунд.
  • Всплывающая текстура: При получении вводного значения, нод ScreenFader начинает исчезновение и начинает отображать текстуру, со скоростью указанной в FadeOutTime. В данном случае, в качестве FadeOutTime указано 0, так текстура всплывёт сразу же.
  • Задержка появления: FadeIn задерживается на 4 секунды благодаря ноду Delay, так текстура остается на экране. Спутся 4 секунды, начинает появляться экран, со скоростью указанной в FadeInTime. Затем, текстура исчезает за 3 секунды.
  • Используйте нод Any (Add Node/Logic/Any), чтобы получить выводную текстуру и выбрать одну для отображения.

См. также