[Niagara] 불 이펙트 만들기

Woogle·2022년 9월 29일
0

언리얼 그래픽

목록 보기
5/7
post-thumbnail

언리얼 Niagara로 불 이펙트를 만들어보았다.

💡 Naiagara VFX Workflow

  • Emitter Spawn : 이미터가 처음 스폰할 때 발생하는 것을 정의하는 모듈을 배치
  • Emitter Update : 시간이 지남에 따라 이미터에 영향을 미치는 모듈을 배치
  • Particle Spawn : 이미터에서 파티클이 스폰할 때 발생하는 것을 정의하는 모듈을 배치
  • Particle Update : 시간이 지남에 따라 파티클에 영향을 미치는 모듈을 배치

레퍼런스 이미지

💡 분석
1. 운동 : 아래에서 위로 운동
2. 색상 : 아래는 흰색, 중간은 노랑, 위는 빨강, 최상단은 검붉음
3. 형태 : 원형 영역에서 생성되고 점점 작아짐
4. 랜덤 : 랜덤 크기로 생성되고, 이동 경로도 랜덤하게 흔들리게


📄 운동성 구현

  • 이미터에서 파티클이 스폰된 후, 아래에서 위로 운동하는 것을 구현
  1. Empty Emitter 생성
    NS_Fire

  2. Emitter Update ➔ Spawn Rate 모듈 추가
    초당 생성하고 싶은 파티클 갯수를 입력

  3. Particle Spawn ➔ Initialize Particle
    파티클의 수명(Life Time)을 조절할 수 있음
    파티클 크기는 Sprite Size Mode에서 조절할 수 있음

  4. Particle Spawn ➔ Add Velocity 모듈 추가
    파티클의 이동속도와 방향(Velocity, XYZ)를 입력

  5. Particle Update ➔ Vertax Velocity 모듈 추가

중간 모습

📄 색상 구현

  • 파티클의 수명에 따라 색깔을 업데이트
  1. Particle Update ➔ Scale Color 모듈 추가
    Scale Mode를 Linear Color Curve로 설정하고 색깔을 골라줌

중간 모습

📄 형태 구현

  • 파티클이 원형 영역에서 스폰되고, 파티클이 점점 작아지게 업데이트
  1. Particle Spawn ➔ Shape Location 모듈 추가
    Shape를 Cylinder로 바꾸고 스폰 영역 크기를 입력

  2. Particle Update ➔ Scale Sprite Size 모듈 추가
    Sprite Size를 원하는 Curve로 조절할 수 있음

중간 모습

📄 랜덤 추가

  • 파티클의 수명, 사이즈, 이동 경로를 랜덤하게 만들어서 리얼한 느낌을 줌
  1. Particle Spawn ➔ Initialize Particle
    파티클 수명(Life Time) 옆의 버튼을 펼쳐서 Random Range Float으로 변경
    파티클 사이즈(Sprite Size) 옆의 버튼을 펼쳐서 Random Range Float으로 변경
  2. Particle Update ➔ Curl Noise Force 모듈 추가
    원하는 수준의 Noise Strength와 Noise Frequency 설정

중간 모습

📄 머터리얼 변경

  • 적절하게 이쁘게 다듬어준다.
  1. 파티클 머터리얼 제작
    M_VFX_Fire 생성
    Blend Mode는 Additive(가산혼합), Shading Model은 Unlit으로 바꿈
    준비한 파티클 Texture를 적절히 계산하여 Emissive Color와 Opacity에 연결해줌
  1. Render ➔ Sprite Renderer
    Material을 M_VFX_Fire로 변경

  2. Particle Update ➔ Sprite Rotation Rate 모듈 추가
    Random Range Float 값으로 회전하게 만듦

  3. Particle Spawn ➔ Initialize Particle
    Sprite Rotation Mode를 Random으로 설정

  4. 시퀀스 머터리얼 제작

  5. Particle Update ➔ SubUVAnimation 모듈 추가
    Sequence Texture를 사용하면 영화처럼 생동감 넘치는 이펙트 표현이 가능

최종 모습


기타

  • GPU 연산
    Properties에서 GPUCompute Sim 설정, Fixed Bounds 체크하면 해당 카메라 영역 내에서 GPU 연산으로 계산함

  • Solve Force and Velocity
    Force 또는 Velocity 관련된 연산을 처리하는 모듈
    아래 사진에서 Fix issue 클릭 시 자동 배치됨


참고 자료

  • 인생 언리얼 교과서 - 파티클 시스템
profile
노력하는 게임 개발자

0개의 댓글