본문 바로가기

Unity/제로부터 Effect

Shader Graph - Fire+smoke

728x90

Particle System을 이용한 연기를 내뿜는 불을 만들어 볼 것 입니다.

unlit으로 shader graph 를 만들어 줍니다.

 

두가지의 png 스프라이트를 사용할 것인데, 인터넷에 치면 연기 texture 들이 많이 있는데 그중 여러개의 연기 모양을 모아놓은 텍스쳐 시트를 사용하고 그레디언트 텍스쳐를 사용할 것인데, 이것 또한 인터넷에 black gradiant texture을 치시면 많이 나옵니다.

 

1. 연기 만들기.

  • 연기 텍스쳐 셈플링 하기. 연기를 표현할것이기 때문에 알파값만 사용할 것 입니다.
  • 연기의 투명도를 조절하기위해 변수를 추가하고 multiply로 곱해준뒤 gradiant texture 셈플링한것에 연결해줍니다.

 

 

이제 particle System을 추가해 위 그래프로 만든 material을 적용 시켜봅니다.

material 적용은 particle System inspector 창에 Renderer에 보면 material에 추가하면 됩니다.

 

 

 Start LifeTime(생성부터 소멸까지의 시간) 과 Start Speed(파티클생성 초기속도),Start Size를 Random Between Two Constants로 시작 수명과 시작 속도를 두 값 사이 랜덤하게 만들어 줍니다.

 

다음으로 건드릴 속성은 Shape, Velocity over Lifetime,  Texture Sheet Animation 입니다.

 

1. Shape

  • 파티클이 발사되는 영역을 지정하는 데 사용되는 속성으로 Angle과 Radius값을 조정해줍니다.

2.Velocity over Lifetime

  • 파티클의 수명에 따라 속도가 어떻게 변화하는지를 제어하는 속성입니다. 이를 통해 파티클이 시간에 따라 다른 속도로 이동하거나 방향을 변경할 수 있습니다. space를 world(전역 좌표 공간에서 속도를 계산)로 바꿔주고 Linear 의 xyz 축으로 이동방향을 변경해줍니다.

3.Texture Sheet Animation

  • Texture Sheet Animation은 텍스처 시트를 사용하여 파티클 애니메이션을 만드는 기능입니다. 이 기능을 사용하면 단일 텍스처에 여러 개의 이미지 프레임이 포함된 텍스처 시트를 사용하여 파티클의 애니메이션을 제어할 수 있습니다.
    • 예를 들어, 텍스처 시트가 4x4 그리드로 구성되어 있고, 전체 애니메이션의 길이가 1초라고 가정해봅시다. 이 경우 16개의 프레임이 텍스처 시트에 포함되어 있으며, 각각의 프레임은 0.25초씩 표시됩니다.
  • Tiles에  사용한 텍스처 시트의 행과 열값을 넣어줍니다. ex) 가로 10, 세로 9 == x : 10, y : 9
  • Frame over Time은 진행 시간에 따라 어느 시점에서 어떤 프레임이 표시되어야 하는지를 조절 할 수 있습니다.

 

728x90

'Unity > 제로부터 Effect' 카테고리의 다른 글

Electricity (Shader + Visual Effect)  (0) 2023.12.28
VFX, 전류 Trail 구현하기  (0) 2023.11.29
TrailShader 만들기  (1) 2023.11.23
VFX Graph - Arrow Projectile  (0) 2023.11.20
Shader Graph - fire flames  (0) 2023.11.14