Unity 6.0버전 HDRP / VFX Graph 17버전
패키지 매니저 VFX Graph 샘플 추가
총 32개의 VFX Graph 샘플
1.Context&Flow


위로 파티클들이 뿜어져 나오고 중력으로 인해 밑으로 떨어지는 단순한 형태
Initialize 단계에서 Sphere 영역에서 생성되고 Y축 방향으로 4.8~7.5의 스피드로 0.85로 지정된 각도로 발사되는 파티클
이후 Update 단계에서 -9.81(중력 가속도)의 Y축 값을 가지고 밑으로 떨어짐.
2.Spawn Context

1~8까지 숫자가 하나씩 늘어나면서 개수가 증가하는 형태
숫자는 1~8까지 나오지만 없는 상태(0)까지 총 9가지를 반복해서 표현한다.

Spawn 단계
Spawn Sate에서 LoopIndex의 값은 새로운 스폰 루프가 반복할 때마다 증가하며 이 값을 Module(나누기 해서 나온 나머지 값) B를 9로 지정해서 결과값이 0~8사이의 값(총9가지)가 반복해서 나오게 한다.

VFX에 사용하는 타일 텍스쳐
Output 단계에서 FlipBook으로 5x2로 설정해서 사용한다(그치만 결과적으로 9는 아예 쓰지 않고 0은 시각적으로 표현되지 않음)
3.Capacity Count

구조적으로는 매우 단순하게 Unlit Quad를 생성하는 형태
Capacity와 Memory 할당을 설명하기 위해 간단하게 넣은 샘플인듯.
4.Multiple Outputs



Initialize 단계에서 색상은 2개 중에 하나가 랜덤으로 설정되게 하고
Output 단계에서 Mesh Lit, Quad Unlit, Quad Lit 총 3개를 생성한다.
그저 단순하게 하나의 Initialize 값을 받아서 여러개를 생성할 수 있다는 것을 보여주기 위해 넣은 샘플인듯.
5.Bounds

이거도 단순한 VFX이지만 Bounds를 설명하기 위한 VFX Graph

보통 Bounds Mode는 Automatic으로 설정해서 자동으로 영역을 만들지만 Manual로 직접 영역을 지정할 수 있음
VFX가 생성되는 영역이 아니라, 이 영역이 카메라 Frustum에 들어와야지 렌더를 하게 됨.

y축으로 좀 위로 Bounds를 설정하고 카메라 Frustum 영역에 들어오면 VFX가 렌더 된다.

그러나 Bounds가 카메라 Frustum영역에 들어오지 않게 카메라 앵글을 낮추면 VFX는 렌더되지 않고 그림자만 보인다.
6.Orient Face Camera

VFX Graph에서 Body와 Eye로 나눠서 구조를 만들어 뒀음.


Body는 Mesh Lit을 사용했으며 이 Mesh가 약간씩 일렁이는 효과를 주기 위해서 별도의 Shader Graph를 지정하고
Shader Graph에서 Vertex 쉐이더로 Vertex가 움직이게 함.


눈도 Mesh Lit을 사용했으며 동공의 커지고 작아지는 부분은 Shader로 구현
그리고 카메라 각도에 따라서 눈이 계속 따라오게 하기 위해 Orient를 Face Camera Position으로 설정
7.Orient Fixed Axis

눈알을 감싸고 있는 깃털이 하나씩 퍼지는 이펙트
Body, Eye, Feather로 나눠진 VFX Graph 구조

Body는 이전과 같은 Mesh를 사용하였고
Eye의 경우 이전과 같은 Shader를 썼지만 Shader Graph에서 지정된 변수인 Eye_Dilate를 1로 고정해놔서 이전처럼 동공이 커지고 줄어드는 모션은 없음.



깃털은 Quad로 되어 있으며 Base Color Map과 Normal Map만 사용
FlipBook으로 4개 중에 1개를 랜덤으로 선택하게 해서 4종류 랜덤하게 사용
8.Orient Advanced

화살표들이 구 위로 떠다니며 일정한 방향으로 움직이는 효과

Update 단계에서 Attractor Shape Sphere(이전 버전에서 Force-Conform to Sphere)로 구 위에 인력으로 끌어당기는 역할과
Turbulence로 난류를 표현

그리고 Output 단계에서 현재 Velocity값을 반영해서 이동하는 방향대로 화살표 방향이 회전하게 설정
9.Rotation & Angle

회전하는 동전들


3개의 동전이 하나의 VFX Graph에서 각각 다른 회전 방향을 가질 수 있게 하기 위해서
Update 단계에서 Set Angle.XYZ 노드를 사용하고
Spawn Index를 받아와서 Switch노드에서 3개 Index가 서로 다른 xyz축 값을 가질 수 있게 해서 각각 Angle에 지정
10.Rotation & Angular Velocity


위에서 쏟아지는 동전들
Falling Coins, Sliding Coins, Coin's Pile, Pile's Body 4개 구조로 나눠짐.

Falling Coins에는 Collision을 사용해서 부딪히고 튕겨져 나가게 함.
11.TexIndex Attribute

Flipbook과 UV 예시를 보여주기 위한 VFX Graph 샘플
12.Flipbook Mode

Flipbook 애니메이션에서 Blend 모드와 비교해서 보여주는 VFX Graph 샘플


4x4인 16프레임 Flipbook을 30FPS로 재생한다.

하나는 Blend 옵션이 체크 되어있어서 2개를 비교해서 보여준다.
13.Flipbook Blending

둘다 Flipbook Blending을 하지만 Motion Vector를 사용한 블렌딩 방식과 비교해서 보여준다.



위 아래 둘다 6x6 36프레임 Flipbook 애니메이션이지만
위(파란색)는 Motion Vectors 옵션이 체크되어 있고 Vector Map을 받아서
블렌딩 될때 모션 벡터값을 사용해서 더 정교한 블렌딩 효과를 만들어낸다.
14.TexIndex Advanced

- Brush Strokes
- Background Pattern
- Unity Font
- Cubes
- Lightning
- Dot
- Floating Shapes
총 7개 구조로 나뉘어져 있다.
화려하고 복잡하고 많아보이지만 구조 하나하나 뜯어보면 거의다 Quad에 Texture 입혀서 띄우는 방식으로 단순함.
15.Pivot Attribute

중앙에 X표시를 Pivot으로 삼고 돌고 있는 Quad 나뭇잎
VFX Graph에서 Pivot을 설명하기 위한 샘플
16.Pivot Advanced

마찬가지로 Pivot 활용을 보여주기 위한 샘플

VFX Graph를 없애면 꽃병과 줄기만 있는 형태로 나머지 꽃잎, 녹색 이파리, 줄기 가시가 VFX Graph로 표현된 부분
Flower Blossom, Green Leaf, Spines 3개 구조




줄기 Mesh를 그대로 가져와서 Position 정보로 사용하고
줄기 따라 녹색 Triangle 생성
녹색 이파리도 같은 방식으로 생성

3개의 줄기 끝에서 꽃잎이 생성되는데 DCC툴에서 3개의 줄기끝이 첫번째가(Mesh 면 혹은 점의 순서인듯) 되도록 설정해 두었다는 설명이 있다.
17.Sample Mesh

VFX 연산을 시작하면 50000개의 파티클의 Lion 형태로 생성되고
잠시 뒤 위에서 부터 차례대로 흩뿌려지며 사라지는 Dissolve 효과가 되며
이 과정은 6초로 반복 된다.



위에서부터 사라지게 하기 위해서 Y축을 기준으로 파티클들의 Lifetime을 다르게 설정한다.
Sample Mesh노드로 Mesh의 Vertex 데이터를 가져오고 Distance(Plane) 노드로 평면을 기준으로 거리값을 받아온다.
그래서 지면으로 부터 파티클의 거리 즉, 파티클 높이에 따라 다른 값이 지정되고 이를 기반으로 Lifetime이 다르게 설정된다.
그래서 위에서부터 순차적으로 Dissolve 효과를 만들 수 있다.
18.Sample Texture2D

Unity 로고 형태로 파티클들이 나오고 중앙으로 뭉치는 효과




Sample Texture2D 노드로 텍스쳐를 불러온다.
불러온 텍스쳐는 R채널에는 유니티 로고, G채널에는 Unity 텍스트가 있다.
이 2개 값을 Sample Gradient에 넣어서 각각 푸른색과 노란색으로 만들고
Set Alive 노드는 0이면 해당 파티클은 생성하지 않고 1이면 해당 파티클을 생성하는 노드로
이 과정을 통해 R채널은 노란색, G채널은 파란색으로 해당 영역에만 파티클이 생성되게 된다.
19.Sample Signed Distance Field (SDF)

손 Mesh 표면으로 선들이 움직이며 생기는 효과


손 Mesh로 부터 계산된 SDF 데이터를 사용해서 손 표면에서 파티클 생성


Update 단계에서도 SDF를 사용해서 계속 손 표면으로 파티클들이 다니게 하고 Turbulence로 랜덤하게 흐르게 만든다.
Set Direction으로 방향도 가지게 만들고 Trigger Event를 사용해서 선 형태로 표현되게 한다.
이후 과정은 일반적인 Particle Strip
20.Sample Skinned Mesh

등에 깃털 부분만 VFX Graph



깃털은 대략 20~30개 정도로 보이는데 Spawn Count는 45000으로 매우 많다.
Initialize에 있는 Set Alive 노드를 Off하면 Mesh의 표면 전체에 깃털이 생성된다.
즉 Set Alive로 기존 등에 깃털이 있는 부분 외에 다른 영역의 값은 0으로 지정되어서 깃털이 생성되지 않게 한것.

Set Alive에 연결된 노드를 보면 Sample Texture 2D에서 w값을 받아서 쓰고 있다.


Sample Texture2D 노드에서 사용된 텍스쳐는 Color Map이지만
Alpha 채널만 확인해보면 등 영역에 해당하는 부분만 흰색(1)으로 되어 있다.
그래서 Alpha(A채널)에 해당하는 W값을 받아서 Set Alive에 적용했기 때문에
등에만 깃털이 생기고 그 외에 영역은 생기지 않는 것.
21.Collision Properties

단순히 기본 도형만을 가지고 충돌체를 구현한 샘플
22.Collision Simple

오리 인형으로 충돌을 구현한 간단한 샘플
23.Collision Advanced


손 SDF를 Collision으로 사용한 샘플
24.Trigger Event on Collide

다트
Flying Darts, Collide Spring Darts, Score UI System 3개로 이루어진 구조

날아가는 다트의 Update 단계에서 점수판에 닿으면 바로 사라지고 Trigger Event on Collide 노드 2개 이벤트 발생
이 2개 노드는 점수 VFX 생성과 점수판에 꽂힌 다트 생성으로 이어짐.
점수판에 닿은 위치에 고정된 다트로 교체되고 점수 표기
25.Decal Particles




움직이는 애니메이션이 있는 후드에 Decal 효과가 있는 VFX를 적용한 샘플
Update 단계에서 Set Posiiton Mesh Skinned Mesh노드로 지정된 Skinned Mesh위에
Decal Output을 사용해서 텍스쳐를 입힐 수 있음.
26.Strip Properties

Particle Strip을 사용한 간단한 예시
다음 파티클 내용도 같은 Particle Strip 방식이라 생략
27.Strip Spawn Rate

28.Multi-Strip SpawnRate

29.Multi-Strip Single Burst

30.Multi-Strip Periodic Burst

31.Strip GPU-Event


32.Multi-Strips GPU-Event

'툴 > 유니티' 카테고리의 다른 글
| Unity 6.0 VR 프로젝트 기본 셋팅(Windows, MetaQuest) (2) | 2025.07.31 |
|---|---|
| NuGetForUnity - 유니티 에디터 닷넷 외부 라이브러리 설치 및 관리 (0) | 2025.07.31 |
| Unity6.0v Shader Graph 샘플 (0) | 2025.07.14 |
| Unity6.0v VFX Graph 업데이트 된 내용 요약 (2) | 2025.07.14 |
| 뇌파 센서 유니티 개발 기록 (Neurosky Mindwave Mobile2) (1) | 2024.11.27 |