icon안동민 개발노트

파티클 생성 및 기본 속성 설정


 나이아가라 시스템에서 파티클 생성과 기본 속성 설정은 시각적 효과의 기초를 형성합니다.

 이 과정을 통해 파티클의 외관과 동작을 정의하고, 원하는 효과를 달성할 수 있습니다.

파티클 생성 프로세스

  1. 스폰 모듈 설정
  • 'Particle Spawn' 섹션에서 스폰 관련 모듈 추가
  • 예 : 'Spawn Rate' 모듈로 초당 생성할 파티클 수 지정
  1. 초기화 모듈 추가
  • 'Initialize Particle' 섹션에서 초기 속성 설정 모듈 추가
  • 예 : 'Initialize Particle Position' 모듈로 시작 위치 설정
  1. 업데이트 모듈 설정
  • 'Update Particle' 섹션에서 파티클의 동적 변화를 제어하는 모듈 추가
  • 예 : 'Update Age' 모듈로 파티클의 수명 관리

주요 파티클 속성 설정

  1. 위치 (Position)
  • 초기화 : 'Initialize Particle Position' 모듈 사용
  • 설정 예
    Spawn Position: Box
    Box Min: (-50, -50, 0)
    Box Max: (50, 50, 100)
  • 효과 : 지정된 박스 영역 내에서 랜덤하게 파티클 생성
  1. 크기 (Size)
  • 초기화 : 'Initialize Particle Size' 모듈 사용
  • 설정 예
Size: Vector Distribution
Distribution: Uniform Vector
Min: (5, 5, 5)
Max: (10, 10, 10)
  • 효과 : 5~10 단위 크기의 랜덤한 파티클 생성
  1. 색상 (Color)
  • 초기화 : 'Set Particle Color' 모듈 사용
  • 설정 예
Color: Color Distribution
Distribution: Constant Curve
Curve: Red to Yellow gradient
  • 효과 : 빨간색에서 노란색으로 변화하는 파티클 생성
  1. 수명 (Lifetime)
  • 초기화 : 'Set Particle Lifetime' 모듈 사용
  • 설정 예
Lifetime: Float Distribution
Distribution: Uniform Float
Min: 1.0
Max: 3.0
  • 효과 : 1~3초 사이의 랜덤한 수명을 가진 파티클 생성
  1. 속도 (Velocity)
  • 초기화 : 'Initialize Particle Velocity' 모듈 사용
  • 설정 예
Velocity: Sphere
Speed: 100
Sphere Direction: Outward
  • 효과 : 중심에서 바깥쪽으로 초당 100 단위 속도로 퍼져나가는 파티클 생성

동적 파라미터 사용

 동적 파라미터를 사용하면 파티클 속성을 실시간으로 변경할 수 있습니다.

  1. 파라미터 생성
  • 'Parameters' 패널에서 새 파라미터 추가
  • 예 : "WindStrength" (Float)
  1. 모듈에 파라미터 연결
  • 원하는 모듈의 속성에 파라미터 연결
  • 예 : 'Add Velocity' 모듈의 'Strength' 속성에 "WindStrength" 연결
  1. 블루프린트에서 파라미터 제어
// 블루프린트 예시 (의사 코드)
SetNiagaraParameter(NiagaraSystem, "WindStrength", CurrentWindStrength);

시간에 따른 파티클 속성 변화

  1. 커브 사용
  • 'Curve Editor'를 사용하여 시간에 따른 속성 변화 정의
  • 예 : 크기 변화 커브
Module: Scale Size
Size Scale: Float Curve
Curve: Start at 1.0, peak at 1.5 at mid-life, end at 0.5
  1. Age 기반 변화
  • 'Particle Age' 모듈을 사용하여 수명 기반 변화 구현
  • 예 : 색상 변화
Module: Color over Life
Color: Color Curve
Curve: Start white, fade to transparent

랜덤화 기법

  1. 분포 사용
  • 'Distribution' 설정을 통해 속성의 랜덤 범위 지정
  • 예 : 랜덤 회전
Module: Initialize Particle Rotation
Rotation: Uniform Float Distribution
Min: 0
Max: 360
  1. 노이즈 함수 활용
  • 'Curl Noise Force' 모듈을 사용하여 자연스러운 랜덤 움직임 생성
  • 설정 예
Module: Curl Noise Force
Strength: 50
Frequency: 0.1
  1. 랜덤 시드 설정
  • 시스템 속성에서 'Random Seed' 설정
  • 매 실행마다 다른 결과 생성 가능

실제 적용 예시 : 불꽃 효과

1. 파티클 생성:
   - Spawn Rate: 100 per second
   - Initialize Position: Sphere (Radius: 10)
 
2. 기본 속성:
   - Size: Uniform (5 to 10)
   - Color: Gradient (Bright yellow to red)
   - Lifetime: 1 to 2 seconds
 
3. 동적 변화:
   - Velocity: Upward (Add Velocity: (0, 0, 100))
   - Size over Life: Start small, grow, then shrink
   - Color over Life: Fade to transparent
 
4. 랜덤화:
   - Initial Rotation: Random 0-360 degrees
   - Curl Noise: Subtle movement (Strength: 20)
 
5. 동적 파라미터:
   - "FlameIntensity": Controls Spawn Rate and initial Size

 이 설정으로 생동감 있는 불꽃 효과를 만들 수 있습니다. "FlameIntensity" 파라미터를 조절하여 실시간으로 불꽃의 강도를 변경할 수 있습니다.

추가 팁

  1.  모듈 조합 : 여러 모듈을 조합하여 복잡한 동작 구현 예 : 'Add Velocity' + 'Drag' + 'Gravity Force' 조합으로 물리적인 움직임 생성

  2.  데이터 인터페이스 활용 : 외부 데이터를 파티클 시스템에 연결 예 : 게임 로직의 피해량을 파티클의 크기나 색상에 반영

  3.  최적화 고려 :

  • 필요 이상의 파티클을 생성하지 않도록 주의
  • 복잡한 계산은 GPU 모듈 사용 고려
  1. 테스트와 반복 :
  • 다양한 설정을 실험하고 시각적 결과 확인
  • 성능과 시각적 품질의 균형 조정

 파티클 생성과 기본 속성 설정은 나이아가라 시스템의 핵심 과정입니다. 이를 통해 단순한 점들을 복잡하고 아름다운 시각 효과로 변환할 수 있습니다. 각 속성과 모듈의 상호작용을 이해하고 창의적으로 조합함으로써, 게임 환경을 더욱 생동감 있고 몰입도 높게 만들 수 있습니다. 지속적인 실험과 학습을 통해 나이아가라 시스템의 잠재력을 최대한 활용하세요.