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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «== Making Full Screen Effect with Flow Graph== === Basics=== It is possible to use the flowgraph functionality to create full screen effects. This document is aime...»)
 
(2 промежуточные версии не показаны)
Строка 1: Строка 1:
-
== 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''' ====
+
-
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''' ====
+
Функциональность потокового графа можно использовать для создания полноэкранных эффектов. Этот документ предназначен для объяснения нодов и функций, для создания этих эффекты.
-
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''' ====
+
-
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''' ====
+
-
You can copy and paste multiple nodes at once by select nodes and right click/copy, paste.
+
-
=== Nodes for Effects===
+
=== '''Включение дополнительных нодов''' ===
-
====  Camera Nodes====
+
-
Found in '''Add Node > Camera''' . These nodes can make camera effects.
+
-
*'''ViewShake: '''Generate random shake animation of the camera. It is effective to connect with explosive effects.
+
-
*'''Trigger:''' Triggers effect.
+
-
*'''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:'''  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:'''  When it's on, only apply the shake when the player is standing on the ground.
+
-
*'''Angle:''' Controls the angle of the camera shake movement.
+
-
*'''Shift:''' Controls the shift distance of the camera shake movement.
+
-
*'''Duration:'''  Controls duration from start to end of the effect.
+
-
*'''Frequency:''' Controls frequency of the shake movement.
+
-
*'''Randomness:''' Controls the randomness of the shake movement.
+
-
==== '''CrysisFX nodes''' ====
+
По умолчанию, ноды для эффектов не видны в потоковом графе. Чтобы увидеть их, перейдите в меню '''View/Components/WorkInProgress''' и отметьте этот элемент.
-
<br> [Depreciated - use Image nodes instead] <br>
+
-
==== Image nodes====
+
-
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.
+
-
'''ColorCorrection'''  
+
=== '''Добавление нового нода''' ===
-
Sets the final image color changes for gameplay/cutscenes. For final image color grading use the &#8220;Time of Day&#8221; controls instead.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Cyan:''' Controls Cyan value of the whole screen.
+
-
*'''Magenta:''' Controls Magenta value of the whole screen.
+
-
*'''Yellow:''' Controls Yellow value of the whole screen.
+
-
*'''Luminance:''' Controls Luminance of the whole screen.
+
-
*'''Brightness:''' Controls Brightness of the whole screen.
+
-
*'''Contrast:''' Controls Contrast of the whole screen.
+
-
*'''Saturation:''' Controls Saturation of the whole screen.
+
-
*'''Hue:''' Hue of the whole screen.
+
-
'''DepthOfField''' '''(*expensive)''' Simulates camera depth of field.
+
Чтобы добавить нод в '''Flow Graph''', щелкните правой кнопкой мыши в любом месте основного окна, затем перейдите в '''Add Node''', и там выберите нужный вам нод.
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''EnableDof:''' Enables / Disables effect.
+
-
*'''FocusDistance:''' Controls focus distance of the camera.
+
-
*'''FocusRange:''' Controls focus range of the camera
+
-
*'''BlurAmount:''' Controls intensity of the blur effect.
+
-
'''FilterBlur'''  
+
=== '''Удаление нодов''' ===
-
Applies blur filter to screen.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Type:''' Selects type of the filter (only 1 type supported at the moment).
+
-
*'''Amount:''' Controls intensity of the effect. 0 disables.
+
-
'''FilterRadialBlur'''  
+
Чтобы удалить нодвы, выберите их и нажмите клавишу '''Delete'''.
-
Applies radial blur effect to screen.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
-
*'''ScreenPosX,Y:'''  Screen space position of radial center
+
-
*'''BluringRadius:''' Radial distance attenuation
+
-
'''FilterGrain'''  
+
=== '''Соединение нодов''' ===
-
Applies grain filter to screen.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Amount:''' Controls intensity of the effect. 0 Disables
+
-
'''FilterSharpen'''
+
Чтобы соединить или разъединить ноды, то перетащите стрелку от нода.
-
Applies an unsharp mask to the whole screen.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Type:''' Selects type of the filter (only 1 type at the moment).
+
-
*'''Amount:''' Controls intensity of the effect. 1 disables, values bellow 1 blur screen, above 1 sharpen screen.
+
-
'''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.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Direction:''' Controls direction vector.
+
-
'''ChromaShift'''  
+
Вы можете скопировать, либо вставить, несколько нодов за один раз выбрав ноды, нажав правой кнопкой, и выбрав '''Copy''', либо '''Paste'''.
-
Applies chroma dispersion (multiple RBG sampling instead of single sample) effect to the whole screen.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
-
'''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.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
-
'''EffectWaterFlow'''
+
=== Ноды «Camera» ===
-
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.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
-
'''AlienInterference'''
+
Находятся в '''Add Node -> Camera'''. Эти ноды создают эффекты камеры.
-
Specially designed to generate alien noise/interference effect, when the player gets close to a specific source.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
-
'''DistantRain'''  
+
'''ViewShake''' — генерирует случайную тряску камеры. Эффективно для соединения с эффектами взрывов.
-
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.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Amount: ''' Controls intensity of the effect. 0 disables
+
-
*'''Speed:''' Controls rain shift speed
+
-
*'''DistanceScale:''' Set how far rain layers are.
+
-
*'''Color:''' Set rain layers color multiplier.
+
-
'''EffectBloodSplats'''  
+
* '''Trigger:''' Запускает эффект.
-
Game specific effect, renders blood splats onscreen.  
+
* '''Restrict:''' Условия для '''ViewShake'''. Можно выбрать «None» — чтобы никаких условий не было, «NoVehicle» — если тряска должна быть применена только в том случае, когда игрок не находится в транспорте, или «VehicleOnly» — если эффект должен быть применён только в том случае, когда игрок находится в транспорте.
-
*'''Enabled:''' Enables / Disables node.
+
* '''View:''' Камера для применения эффекта. Может быть «FirstPerson» — для игрока, либо «Current» — если вы хотите применить ViewShake для, например, кат-сцены.
-
*'''Type:''' Selects type of the blood splat. 0 is human, 1 is alien
+
* '''GroundOnly:''' Если выбрано, то тряска применяется только тогда, когда игрок стоит на земле.
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
* '''Angle:''' Управляет углом перемещения тряски.
-
*'''Spawn:''' Enable when wanting to spawn blood (but disable after spawning).
+
* '''Shift:''' Управляет сдвигом расстояния перемещения тряски.
 +
* '''Duration:''' Управляет продолжительностью эффекта от начала до конца.
 +
* '''Frequency:''' Управляет частотой перемещения тряски.
 +
* '''Randomness:''' Управляет случайностью перемещения тряски.
-
'''EffectCondensation'''  
+
=== Ноды '''CrysisFX''' ===
-
Game specific effect, simulates condensation on screen.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Amount:''' Controls intensity of the effect. 0 disables.
+
-
*'''CenterAmount:''' Control the visibility amount of effect at the center of screen.
+
-
'''EffectFrost'''
+
[Устарели — вместо них используйте ноды Image]
-
Game specific effect, simulates frost accumulation on screen.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
-
*'''CenterAmount:''' Control the visibility amount of effect at the center of screen.
+
-
'''RainDrops'''  
+
=== Ноды '''Image''' ===
-
Game specific effect, simulates rain drops falling on screen.
+
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Amount:''' Multiplier to amount of rain drops visible on screen. 0 disables
+
-
*'''Spawn Time Distance:''' Time between another drop spawning.
+
-
*'''Size:''' Rain drop size.
+
-
*'''Size Variation:''' Rain drop size variation.
+
-
'''VolumetricScattering'''
+
Могут быть найдены в '''Add Node/Image'''. Ноды '''Image''' используются для создания эффектов пост-обработки, которые могут быть использованы для игрового процесса или кат-сцены.
-
Game specific effect, simulates nearby volumetric foggy environment.
+
{{Примечание|title=Важное примечание|Одновременно можно использовать несколько нодов для получения других эффектов путём смешивания, но знайте, что каждый из этих нодов добавляет дополнительные проходы рендеринга, поэтому убедитесь, что предельное число использованных одновременно нодов имеет разумные пределы. Эффекты, наиболее нагружающие GPU, помечены примечанием '''*нагружающий''' рядом с их названием.}}
-
*'''Enabled:''' Enables / Disables node.
+
-
*'''Amount:''' Controls intensity of the effect. 0 disables
+
-
*'''Tiling:''' Sets effect tile amount.
+
-
*'''Speed:''' Sets effect animation speed.
+
-
*'''Color:''' Color multiplier.
+
-
*'''Type:''' only one type supported at the moment.
+
-
=== '''MaterialFX''' nodes===
+
'''ColorCorrection''' — задаёт изменение цвета конечного изображения для игрового процесса, либо кат-сцена. Для цветокоррекции конечного изображения, вместо этого нода, используйте «Time of Day».
-
To implement full screen effect to the particle effect, its flow graph has to use these nodes. Found in '''Add Node/MaterialFX''' .
+
 +
* '''Enabled:''' Включает/отключает нод.
 +
* '''Cyan:''' Управляет голубого оттенка всего экрана.
 +
* '''Magenta:''' Управляет пурпурного оттенка всего экрана.
 +
* '''Yellow:''' Управляет желтого оттенка всего экрана.
 +
* '''Luminance:''' Управляет свечением всего экрана.
 +
* '''Brightness:''' Управляет яркостью всего экрана.
 +
* '''Contrast:''' Управляет контрастностью всего экрана.
 +
* '''Saturation:''' Управляет насыщенность всего экрана.
 +
* '''Hue:''' Оттенок всего экрана.
-
====  '''HUDstartFX''' ====
+
'''DepthOfField''' '''(*нагружающий)''' — имитирует глубину резкости камеры.
-
Decline the start of the full screen effect to the engine.
+
-
'''Input Port'''  
+
* '''Enabled:''' Включает/отключает нод.
-
*'''Start:''' Triggered automatically by the Material<b></b>Effects systems
+
* '''EnableDof:''' Включает/отключает эффект.
 +
* '''FocusDistance:''' Управляет фокусным расстоянием камеры.
 +
* '''FocusRange:''' Управляет диапазоном фокусировки камеры.
 +
* '''BlurAmount:''' Управляет интенсивностью размытия.
-
'''Output Ports'''  
+
'''FilterBlur''' — применяет фильтр размытия.
-
*'''Started:''' Triggered when the effect is started
+
-
*'''Distance:''' Distance to player
+
-
*'''Param1-4:''' Custom float parameters which can be set in the XML description of the effect
+
 +
* '''Enabled:''' Включает/отключает нод.
 +
* '''Type:''' Тип фильтра (на данный момент поддерживает 1 тип).
 +
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
====  '''HUDEndFX''' ====
+
'''FilterRadialBlur''' — применяет эффект радиального размытия.
-
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.  
+
-
Implement full screen effect to the game
+
* '''Enabled:''' Включает/отключает нод.
-
To implement a full screen effect into the game, you have to save Flow Graph and call it in game.
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
*Make an Effect";s Flow Graph.
+
* '''ScreenPosX,Y:''' Положение радиального центра экрана.
-
*Make a '''HUDstartFX''' and '''HUDendFX''' node.
+
* '''BluringRadius:''' Расстояние ослабления радиального размытия.
-
*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''' ====
+
'''FilterGrain''' — применяет фильтр зернистости.
-
This is an example Flow Graph of the impact effect of nuclear weapon. <br> <br>
+
-
[[Image:Sandbox_FullscreenEffects_image001.jpg]]
+
-
*Use a '''HUDstartFX''' and a '''HUDendFX''' node, connected to a '''Delay''' node, so the effect lasts the whole duration of the Flow Graph.  
+
* '''Enabled:''' Включает/отключает нод.
-
*Use a '''Delay''' node just previous of the every effect nodes. This node is often used to adjust each node";s activation timing.
+
* '''Amount:''' Управляет интенсивностью эффекта. 0 отключает.
-
*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''' ====
+
'''FilterSharpen''' — применяет маску нерезкости (иначе говоря, контурную резкость).
-
This is an example Flow Graph of the dirt effect on the screen, when player was near to explosion.
+
-
[[Image:Sandbox_FullscreenEffects_image002.jpg]]
+
* '''Enabled:''' Включает/отключает нод.
 +
* '''Type:''' Тип фильтра (на данный момент поддерживает 1 тип).
 +
* '''Amount:''' Управляет интенсивностью эффекта. 1 отключает, значения ниже 1 — размытость экрана, выше 1 — резкость экрана.
-
*Use a '''RandomSelect''' node ( '''Add Node/Logic/RandomSelect''' ) to randomly pick a texture from the three available.  
+
'''DirectionalBlur''' — применяет эффект направленного размытия. Может быть использован, например, для эффектов удара/попадания. Зависит от размытия движения, если второе включено.
-
*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.
+
-
[[Category:Official:Advanced - SFX]]
+
* '''Enabled:''' Включает/отключает нод.
 +
* '''Direction:''' Управляет направлением вектора.
-
== See Also ==
+
'''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'''), чтобы получить выводную текстуру и выбрать одну для отображения.
 +
 
 +
= См. также =
 +
 
 +
[[Категория:Официальная документация:Продвинутое - 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), чтобы получить выводную текстуру и выбрать одну для отображения.

См. также