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

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

(Различия между версиями)
Перейти к: навигация, поиск
 
(1 промежуточная версия не показана)
Строка 1: Строка 1:
-
{{В_процессе_перевода}}<br>
+
= Создание полноэкранного эффекта с помощью потокового графа =
-
== Making Full Screen Effect with Flow Graph ==
+
== Основы ==
-
=== Basics ===
+
Функциональность потокового графа можно использовать для создания полноэкранных эффектов. Этот документ предназначен для объяснения нодов и функций, для создания этих эффекты.
-
It is possible to use the flowgraph functionality to create full screen effects. This document is aimed to explain the nodes and functions to making these effects.
+
=== '''Включение дополнительных нодов''' ===
-
==== '''Show Additional Nodes''' ====
+
По умолчанию, ноды для эффектов не видны в потоковом графе. Чтобы увидеть их, перейдите в меню '''View/Components/WorkInProgress''' и отметьте этот элемент.
-
By default, the nodes for effect can not be seen in Flow Graph. To see them, go to the Flow Graph menu '''View/Components/WorkInProgress''' and check it on.
+
=== '''Добавление нового нода''' ===
-
==== '''Add New Node''' ====
+
Чтобы добавить нод в '''Flow Graph''', щелкните правой кнопкой мыши в любом месте основного окна, затем перейдите в '''Add Node''', и там выберите нужный вам нод.
-
To add a new node on '''Flow Graph''' , Right Click any space in the main window, then go to '''Add Node''' , then select the node you want.
+
=== '''Удаление нодов''' ===
-
==== '''Delete Nodes''' ====
+
Чтобы удалить нодвы, выберите их и нажмите клавишу '''Delete'''.
-
To delete nodes, select nodes and then press delete.
+
=== '''Соединение нодов''' ===
-
==== '''Connect Nodes'''  ====
+
Чтобы соединить или разъединить ноды, то перетащите стрелку от нода.
-
To connect or disconnect nodes, drag and drop the arrows among the nodes.
+
=== '''Копирование и вставка''' ===
-
==== '''Copy and Paste''' ====
+
Вы можете скопировать, либо вставить, несколько нодов за один раз выбрав ноды, нажав правой кнопкой, и выбрав '''Copy''', либо '''Paste'''.
-
You can copy and paste multiple nodes at once by select nodes and right click/copy, paste.
+
== Ноды для эффектов ==
-
=== Nodes for Effects ===
+
=== Ноды «Camera» ===
-
==== Camera Nodes ====
+
Находятся в '''Add Node -> Camera'''. Эти ноды создают эффекты камеры.
-
Found in '''Add Node &gt; Camera''' . These nodes can make camera effects.  
+
'''ViewShake''' — генерирует случайную тряску камеры. Эффективно для соединения с эффектами взрывов.
-
*'''ViewShake: '''Generate random shake animation of the camera. It is effective to connect with explosive effects.  
+
* '''Trigger:''' Запускает эффект.
-
*'''Trigger:''' Triggers effect.
+
* '''Restrict:''' Условия для '''ViewShake'''. Можно выбрать «None» — чтобы никаких условий не было, «NoVehicle» — если тряска должна быть применена только в том случае, когда игрок не находится в транспорте, или «VehicleOnly» — если эффект должен быть применён только в том случае, когда игрок находится в транспорте.
-
*'''Restrict:''' Select a condition for the ViewShake. This can be set to "None"" for no condition, "NoVehicle" if the shake should be applied only if the player is not in a vehicle, or "VehicleOnly" if the effect should be applied only if the player is inside a vehicle.  
+
* '''View:''' Камера для применения эффекта. Может быть «FirstPerson» — для игрока, либо «Current» — если вы хотите применить ViewShake для, например, кат-сцены.
-
*'''View:''' Selects camera to apply effect. Can be "FirstPerson"; for the Player, or ";Current" if you want to apply a ViewShake for a trackview sequence for example.  
+
* '''GroundOnly:''' Если выбрано, то тряска применяется только тогда, когда игрок стоит на земле.
-
*'''GroundOnly:''' When it's on, only apply the shake when the player is standing on the ground.  
+
* '''Angle:''' Управляет углом перемещения тряски.
-
*'''Angle:''' Controls the angle of the camera shake movement.  
+
* '''Shift:''' Управляет сдвигом расстояния перемещения тряски.
-
*'''Shift:''' Controls the shift distance of the camera shake movement.  
+
* '''Duration:''' Управляет продолжительностью эффекта от начала до конца.
-
*'''Duration:''' Controls duration from start to end of the effect.  
+
* '''Frequency:''' Управляет частотой перемещения тряски.
-
*'''Frequency:''' Controls frequency of the shake movement.  
+
* '''Randomness:''' Управляет случайностью перемещения тряски.
-
*'''Randomness:''' Controls the randomness of the shake movement.
+
-
==== '''CrysisFX nodes''' ====
+
=== Ноды '''CrysisFX''' ===
-
<br> [Depreciated - use Image nodes instead] <br>
+
[Устарели — вместо них используйте ноды Image]
-
==== Image nodes ====
+
=== Ноды '''Image''' ===
-
This can be found in Add '''Node/Image''' . Image nodes are used to expose post process effects that can be used for gameplay or cutscenes purposes. <br> <br> '''Important note:''' Multiple nodes can be used at same time to mix their results for different effects, but be aware that each of these nodes adds an extra rendering pass over the screen, so make sure to limit amount of nodes usage at same time to a reasonable amount. Most gpu expensive effects are marked with an *expensive note on them on this document.  
+
Могут быть найдены в '''Add Node/Image'''. Ноды '''Image''' используются для создания эффектов пост-обработки, которые могут быть использованы для игрового процесса или кат-сцены.
 +
{{Примечание|title=Важное примечание|Одновременно можно использовать несколько нодов для получения других эффектов путём смешивания, но знайте, что каждый из этих нодов добавляет дополнительные проходы рендеринга, поэтому убедитесь, что предельное число использованных одновременно нодов имеет разумные пределы. Эффекты, наиболее нагружающие GPU, помечены примечанием '''*нагружающий''' рядом с их названием.}}
-
'''ColorCorrection''' Sets the final image color changes for gameplay/cutscenes. For final image color grading use the “Time of Day” controls instead.  
+
'''ColorCorrection''' — задаёт изменение цвета конечного изображения для игрового процесса, либо кат-сцена. Для цветокоррекции конечного изображения, вместо этого нода, используйте «Time of Day».
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Cyan:''' Controls Cyan value of the whole screen.  
+
* '''Cyan:''' Управляет голубого оттенка всего экрана.
-
*'''Magenta:''' Controls Magenta value of the whole screen.  
+
* '''Magenta:''' Управляет пурпурного оттенка всего экрана.
-
*'''Yellow:''' Controls Yellow value of the whole screen.  
+
* '''Yellow:''' Управляет желтого оттенка всего экрана.
-
*'''Luminance:''' Controls Luminance of the whole screen.  
+
* '''Luminance:''' Управляет свечением всего экрана.
-
*'''Brightness:''' Controls Brightness of the whole screen.  
+
* '''Brightness:''' Управляет яркостью всего экрана.
-
*'''Contrast:''' Controls Contrast of the whole screen.  
+
* '''Contrast:''' Управляет контрастностью всего экрана.
-
*'''Saturation:''' Controls Saturation of the whole screen.  
+
* '''Saturation:''' Управляет насыщенность всего экрана.
-
*'''Hue:''' Hue of the whole screen.
+
* '''Hue:''' Оттенок всего экрана.
-
'''DepthOfField''' '''(*expensive)''' Simulates camera depth of field.  
+
'''DepthOfField''' '''(*нагружающий)''' — имитирует глубину резкости камеры.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''EnableDof:''' Enables / Disables effect.  
+
* '''EnableDof:''' Включает/отключает эффект.
-
*'''FocusDistance:''' Controls focus distance of the camera.  
+
* '''FocusDistance:''' Управляет фокусным расстоянием камеры.
-
*'''FocusRange:''' Controls focus range of the camera
+
* '''FocusRange:''' Управляет диапазоном фокусировки камеры.
-
*'''BlurAmount:''' Controls intensity of the blur effect.
+
* '''BlurAmount:''' Управляет интенсивностью размытия.
-
'''FilterBlur''' Applies blur filter to screen.  
+
'''FilterBlur''' — применяет фильтр размытия.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Type:''' Selects type of the filter (only 1 type supported at the moment).  
+
* '''Type:''' Тип фильтра (на данный момент поддерживает 1 тип).
-
*'''Amount:''' Controls intensity of the effect. 0 disables.
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
'''FilterRadialBlur''' Applies radial blur effect to screen.  
+
'''FilterRadialBlur''' — применяет эффект радиального размытия.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
*'''ScreenPosX,Y:''' Screen space position of radial center
+
* '''ScreenPosX,Y:''' Положение радиального центра экрана.
-
*'''BluringRadius:''' Radial distance attenuation
+
* '''BluringRadius:''' Расстояние ослабления радиального размытия.
-
'''FilterGrain''' Applies grain filter to screen.  
+
'''FilterGrain''' — применяет фильтр зернистости.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Amount:''' Controls intensity of the effect. 0 Disables
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
'''FilterSharpen''' Applies an unsharp mask to the whole screen.  
+
'''FilterSharpen''' — применяет маску нерезкости (иначе говоря, контурную резкость).
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Type:''' Selects type of the filter (only 1 type at the moment).  
+
* '''Type:''' Тип фильтра (на данный момент поддерживает 1 тип).
-
*'''Amount:''' Controls intensity of the effect. 1 disables, values bellow 1 blur screen, above 1 sharpen screen.
+
* '''Amount:''' Управляет интенсивностью эффекта. 1 отключает, значения ниже 1 — размытость экрана, выше 1 — резкость экрана.
-
'''DirectionalBlur''' Applies directional blur effect to the whole screen. Can be used for example for hit effects. Depends on motion blur, if it is enabled.  
+
'''DirectionalBlur''' — применяет эффект направленного размытия. Может быть использован, например, для эффектов удара/попадания. Зависит от размытия движения, если второе включено.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Direction:''' Controls direction vector.
+
* '''Direction:''' Управляет направлением вектора.
-
'''ChromaShift''' Applies chroma dispersion (multiple RBG sampling instead of single sample) effect to the whole screen.  
+
'''ChromaShift''' — применяет эффект дисперсии цветности (несколько выборок RBG вместо одного образца).
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
'''EffectWaterDroplets''' Game specific effect, applies water flowing over the screen. This was made to be used when camera comes out of a water volume and is usually done automatically by the game engine.  
+
'''EffectWaterDroplets''' — специфичный эффект, применяет воду, текущею по экрану. Это было сделано для использования при выходе камеры из объема воды и, как правило, происходит автоматически с помощью игрового движка.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
'''EffectWaterFlow''' Another game specific effect, applies water flowing through screen. This was made to be used when camera is receiving any kind of water flow (e.g.: sprinkles, waterfalls). Should be used subtly.  
+
'''EffectWaterFlow''' — специфичный эффект, применяет воду, текущею через экран. Для использования, при попадании в камеру любой вида потока воды (например: брызги, водопады).
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
'''AlienInterference''' Specially designed to generate alien noise/interference effect, when the player gets close to a specific source.  
+
'''AlienInterference''' — специально разработан для создания инопланетного шума/эффекта интерференции, при приближении игрока к конкретному источнику.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
'''DistantRain''' Game specific effect, renders multiple volumetric layers at distance. Should be used in conjunction with some rain particles as a mean to decrease amount of particles required.  
+
'''DistantRain''' — специфичный эффект, рендерирует несколько объёмных слоёв находящихся на расстоянии. Должно быть использован вкупе с частицами дождя, чтобы сократить число требуемых частиц.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Amount: ''' Controls intensity of the effect. 0 disables
+
* '''Amount: ''' Управляет интенсивностью эффекта. 0 отключает.
-
*'''Speed:''' Controls rain shift speed
+
* '''Speed:''' Управляет скоростью смещения дождя.
-
*'''DistanceScale:''' Set how far rain layers are.  
+
* '''DistanceScale:''' Указывает, насколько далеки слоя.
-
*'''Color:''' Set rain layers color multiplier.
+
* '''Color:''' Указывает множитель цвета слоёв дождя.
-
'''EffectBloodSplats''' Game specific effect, renders blood splats onscreen.  
+
'''EffectBloodSplats''' — специфичный эффект, отображает пятна крови на экране.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Type:''' Selects type of the blood splat. 0 is human, 1 is alien
+
* '''Type:''' Тип пятен крови. 0 — человечьи, 1 — инопланетные.
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
*'''Spawn:''' Enable when wanting to spawn blood (but disable after spawning).
+
* '''Spawn:''' Включайте, когда требуется породить пятна крови (но отключайте после порождения).
-
'''EffectCondensation''' Game specific effect, simulates condensation on screen.  
+
'''EffectCondensation''' — специфичный эффект, имитирует конденсат на экране.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Amount:''' Controls intensity of the effect. 0 disables.  
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
*'''CenterAmount:''' Control the visibility amount of effect at the center of screen.
+
* '''CenterAmount:''' Управляет видимым количеством эффекта в центре экрана.
-
'''EffectFrost''' Game specific effect, simulates frost accumulation on screen.  
+
'''EffectFrost''' — специфичный эффект, имитирует скопление заморозки на экране.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
*'''CenterAmount:''' Control the visibility amount of effect at the center of screen.
+
* '''CenterAmount:''' Управляет видимым количеством эффекта в центре экрана.
-
'''RainDrops''' Game specific effect, simulates rain drops falling on screen.  
+
'''RainDrops''' — специфичный эффект, имитирует капли дождя, падающие на экран.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Amount:''' Multiplier to amount of rain drops visible on screen. 0 disables
+
* '''Amount:''' Множитель количества капель на экране. 0 отключает их.
-
*'''Spawn Time Distance:''' Time between another drop spawning.  
+
* '''Spawn Time Distance:''' Время, перед порождением следующей капли.
-
*'''Size:''' Rain drop size.  
+
* '''Size:''' Размер капель дождя.
-
*'''Size Variation:''' Rain drop size variation.
+
* '''Size Variation:''' Вариация размера капель дождя.
-
'''VolumetricScattering''' Game specific effect, simulates nearby volumetric foggy environment.  
+
'''VolumetricScattering''' — специфичный эффект, имитирует объемный туман ближайшего окружения.
-
*'''Enabled:''' Enables / Disables node.  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
*'''Tiling:''' Sets effect tile amount.  
+
* '''Tiling:''' Устанавливает плиточность эффекта.
-
*'''Speed:''' Sets effect animation speed.  
+
* '''Speed:''' Устанавливает скорость анимации эффекта.
-
*'''Color:''' Color multiplier.  
+
* '''Color:''' Множитель цвета.
-
*'''Type:''' only one type supported at the moment.
+
* '''Type:''' Доступен только один тип.
-
=== '''MaterialFX''' nodes ===
+
== Ноды '''MaterialFX''' ==
-
To implement full screen effect to the particle effect, its flow graph has to use these nodes. Found in '''Add Node/MaterialFX''' .  
+
Для реализации полноэкранного эффекта для эффекта частиц, в его потоковом графе могут использоваться эти ноды. Находятся в '''Add Node/MaterialFX''' .
-
<br>
+
=== '''HUDStartFX''' ===
-
==== '''HUDstartFX'''  ====
+
Указывает движку начало полноэкранного эффекта.
-
Decline the start of the full screen effect to the engine.
+
'''Вводный порт'''
-
'''Input Port'''  
+
* '''Start:''' Запускается автоматически системами MaterialEffects.
-
*'''Start:''' Triggered automatically by the MaterialEffects systems
+
'''Выводные порты'''
-
'''Output Ports'''  
+
* '''Started:''' Срабатывает, когда эффект начанается.
 +
* '''Distance:''' Расстояние до игрока.
 +
* '''Param1-4:''' Пользовательские плавающие параметры, которые могут быть указаны в XML-описании эффекта.
-
*'''Started:''' Triggered when the effect is started
+
=== '''HUDEndFX''' ===
-
*'''Distance:''' Distance to player
+
-
*'''Param1-4:''' Custom float parameters which can be set in the XML description of the effect
+
-
<br>
+
Указывает движку конец полноэкранного эффекта.
-
==== '''HUDEndFX''' ====
+
* '''Trigger:''' Запуск порта, для завершения эффекта. Это ДОЛЖНО быть сделано, если вы хотите вновь использовать эффект.
-
Decline the end of a full screen effect to the engine.  
+
Для реализации полноэкранного эффекта в игре, вы должны сохранить потоковый граф.
-
*'''Trigger:''' Trigger this port when the effect is finished. This MUST be done to notify that the effect can be re-used again.
+
* Создайте потоковый граф эффекта.
 +
* Создайте ноды '''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-файл авторизует требуемые элементы эффекта, такие как эффект частиц, звук, декали пули.
-
Implement full screen effect to the game To implement a full screen effect into the game, you have to save Flow Graph and call it in game.
+
=== Примеры ===
-
*Make an Effect";s Flow Graph.
+
Чтобы фактически сделать полноэкранный эффект потокового графа, нужно использовать более общие ноды. Ниже представлены пара примеров.
-
*Make a '''HUDstartFX''' and '''HUDendFX''' node.
+
-
*Make a '''Delay''' node ( '''Add Node/Time/Delay''' ).
+
-
*Set the '''Delay''' value to minimum required duration to involve whole duration of the effect Flow Graph.
+
-
*Connect the '''Started''' of the '''HUDstartFX''' to every starting point of every effect node, and the '''In''' port of the tweaked '''Delay''' node.  
+
-
*Connect the '''Out''' of '''Delay''' node to the '''Trigger''' of the '''HUDendFX''' node.
+
-
*Save the Flow Graph in '''Libs/MaterialEffects/Flowgraphs''' .
+
-
*If you use full screen effect as an impact effect of the bullet or explosion, implement saved xml file";s name to '''/Effect/FlowGraph/name''' line of the appropriate effect, in '''Libs/MaterialEffects/FXLibs/bulletimpacts.xml''' . This xml authorizes the required elements of the effect, such as particle effect, sound, bullet decal.
+
-
==== Examples ====
+
==== '''Настройка времени, анимация значения''' ====
-
To actually make full screen effect Flow Graph, you have to use some more general nodes. Here are some examples.  
+
Пример потокового графа ударного воздействия ядерного оружия.
-
==== '''Adjust timing, animate value'''  ====
+
[[Файл:Sandbox FullscreenEffects image001.jpg]]
-
This is an example Flow Graph of the impact effect of nuclear weapon. <br> <br> [[Image:Sandbox FullscreenEffects image001.jpg]]
+
* Используйте ноды '''HUDStartFX''' и '''HUDendFX''', соединённые нодом '''Delay''', поэтому эффект будет продолжаться по всей длительности потокового графа.
 +
* Используйте нод '''Delay''' из предыдущих нодов эффекта. Этот нод часто используется для настройки времени активации каждого нода.
 +
* Используйте нод '''Float''' ('''Add Node/Interpol/Float''') для «анимации» некоторых значений '''Color Correction'''. У него можно установить '''Time''', '''StartValue''' и '''EndValue'''. Когда он получает вводное значение, он его интерполирует от '''StartValue''' до '''EndValue''' со скоростью указанной в '''Time''', а затем передаёт выводное значение следующему ноду. Действенный способ создать анимированные значения.
 +
* Некоторые ноды получают одинаковые выводные значения выхода из того же нода. Как правило, выводное значение может соединяться с нескольким вводами. Это спасает от бесчисленного числа нодов.
-
*Use a '''HUDstartFX''' and a '''HUDendFX''' node, connected to a '''Delay''' node, so the effect lasts the whole duration of the Flow Graph.
+
==== '''Появление из текстуры''' ====
-
*Use a '''Delay''' node just previous of the every effect nodes. This node is often used to adjust each node";s activation timing.
+
-
*Use a '''Float''' node ( '''Add Node/Interpol/Float''' ) to animate some values of '''Color Correction''' . It can set '''Time''' , '''StartValue''' and '''EndValue''' . When it gets input, it interpolates value between '''StartValue''' to '''EndValue''' in the duration of '''Time''' , and then gives output value to the next node. This is useful way to make animated values.
+
-
*Some nodes getting same output value from the same node. Usually, output value can connect to multiple inputs. This is the good point to decrease amount number of the nodes.
+
-
==== '''Fade in textures on screen'''  ====
+
Пример потокового графа с эффектом грязи на экране, когда игрок находился рядом с взрывом.
-
This is an example Flow Graph of the dirt effect on the screen, when player was near to explosion.  
+
[[Файл:Sandbox FullscreenEffects image002.jpg]]
-
[[Image: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'''), чтобы получить выводную текстуру и выбрать одну для отображения.
-
*Use a '''RandomSelect''' node ( '''Add Node/Logic/RandomSelect''' ) to randomly pick a texture from the three available.
+
= См. также =
-
*Use a '''ScreenFader''' node to fade in each texture. This node was originally designed for fade out whole screen. Using this method, you can pop up textures, and then fade them out after few seconds.
+
-
*'''Pop up texture:''' When gets input, '''ScreenFader''' node starts fade out whole screen and starts display texture, in duration of '''FadeOutTime''' . In this case, '''FadeOutTime''' is set to 0, so the texture pops up immediately.
+
-
*'''Delay the fade in:''' '''FadeIn''' is delayed 4 second by the '''Delay''' node, so texture remains on the screen for the while. 4 seconds later, whole screen starts fade in, in duration of the '''FadeInTime''' value. Then it seems texture is fading out in 3 seconds duration.
+
-
*Use an '''Any''' node ( '''Add Node/Logic/Any''' ), to gather the output textures and pick up the one to display.
+
-
== See Also  ==
+
[[Категория:Официальная документация:Продвинутое - SFX]]
-
 
+
-
[[Category:Official:Advanced_-_SFX]]
+

Текущая версия на 18:18, 3 июня 2011

Содержание

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

Основы

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

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

По умолчанию, ноды для эффектов не видны в потоковом графе. Чтобы увидеть их, перейдите в меню 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), чтобы получить выводную текстуру и выбрать одну для отображения.

См. также