2020. 11. 2. 17:34ㆍunreal/Unreal Niagara
.
We have been asked to require a world map in 3D with an open area covered by fog.
We had to use a very large amount of particles to represent the rich cloud volume.
it was can't guaranteed the game frame in case Using cascade
So we tried to use the Niagara system.
The movie only solves technical issues, Anyway we figured out that a large number of particles can be used.
This world map has three visual directing parts.
1. Cloud of edge
This part include a material expression that fades out on the inside to represent the clouds formed on the outer part
of the earth.
Fade Out material exprss using DotPruduct + Depth Fade
2. Cloud vortex
vortex module is already prepared in niagara's base asset
but we crafting new module, reason is team need another(can not be express) vortex motions
It was a motion that reversed the normal vortex motion that gathered while rotating around a point.
This module was created exclusively to create this type of motion, and the idea was taken from the method used to create the material that was scattered upon death.
참고영상
영상에서 구현된 것처럼 특정지점을 중심으로 회전하는 모션을 갖고 있는 부분을 제작합니다.
it is base vortex motion
particles rotation around center(0, 0, 0)(this module worked on local space)
parameter name "DistanceDecrese" is distance between center & particle
decrese that value passed by normaized particle age
result is rotating and Gathered to a point(center)
specific, "vortex acceleration" is received random float from particle spawn stage it was not update data
Rotation Motion
it was based on my death material
link -bigflash0913.tistory.com/18
in the image above, I is same as "distance decrease"
now set material look like cloud, we got cloud or dust vortex
- CustomRotation Nodeversion
3. inner cloud
The special part of my cloud is that it acts open.
We didn't consider using collisions in the first place, because we were trying to use a huge number of particles.
(Particle collisions use some computing power.)
Also, it is difficult to control the movement of particles after collision.
beforehand we write location of area because opening event's location is static
therefore if we have 6 events attach 6 modules
i know it was awful system , but no ather choice in base on 'hlsl' to not support loop (even can't use array)
In summary, because the calculated in gpu
anyway, we need 6 point area calculate module, so ...
area calculate module's parameter name of "AreaStatus_01" is receive data from blue print or game system(C++)
those parameter actually act lerp function(0 to 1)
target point is open event location
another parameters is prepared to visual expression
'areastatue_01' parameter's value is move to 1 when triggered event(for example click ui or something,,)
it meaning about increasing particle negative area
it will pushing particles at vector direction if particles located in the area
look like the ground is gradually discovered under the clouds.
my distance < max distance true -->apply new motion
false --> none
According to the above conditional
Each tick increases the'maximum distance' value, increasing the area the particle is pushed in the vector direction.
Others, such as blending between a value and a value, fade out in a push motion, etc., were not functionally important for visual effects.
And when the cloud goes out of the area, it stops naturally and gather, giving you a feeling of being pushed.
All that's left is to use Blueprints to control camera walking or ui.
'unreal > Unreal Niagara' 카테고리의 다른 글
[Unreal]언리얼 나이아가라 몰프 / Niagara Morph Effect(Fake) (0) | 2022.02.10 |
---|