<--! 수학 기호 --> [Unity] 빌트인 파티클 시스템(Built-in Particle System) : 메인 모듈(Main Module)

새소식

반응형
Game Engine/Unity

[Unity] 빌트인 파티클 시스템(Built-in Particle System) : 메인 모듈(Main Module)

  • -

 

파티클 시스템 (Particle System)

 

<사진 출처 : https://docs.unity3d.com/kr/2019.4/Manual/ParticleSystems.html >

 

  • 파티클(Particle, 입자)을 활용하여 불꽃, 연기, 액체 등과 같은 동적 오브젝트를 구현할 때 유용하게 사용됨
  • 파티클 시스템은 파티클이라 부르는 매우 작은 이미지나 메시를 시뮬레이션하고 렌더링하여 시각 효과를 생성
  • 이때, 파티클들을 개별적으로 하나 하나 시뮬레이션 하는 것이 아니라, 모든 파티클들을 종합적으로 시뮬레이션하여 완성된 효과를 구현함
  • Unity에서는 구현할 효과에 대해 더 효과적인 것을 유연하게 선택할 수 있도록, 빌트인 파티클 시스템(Built-in Particle System), 비주얼 이펙트 그래프(Visual Effect Graph), 이렇게 2가지를 제공함
    • 프로젝트가 컴퓨트 셰이더(Compute Shader)를 지원하는 플랫폼을 목표로 하는 경우에는 두 가지 모두 사용할 수 있다.

 

빌트인 파티클 시스템 (Built-in Particle System)

 

<사진 출처 : https://docs.unity3d.com/kr/2019.4/Manual/Built-inParticleSystem.html >

 

  • CPU에서 파티클 동작을 시뮬레이션함
  • C# 스크립트를 통해 파티클 시스템과 해당 시스템 내의 개별 파티클들과 상호 작용이 가능
  • 파티클 시스템 API를 사용하여, 파티클 시스템에 대한 커스텀 동작(사용자 설정)을 구현할 수 있음
    • 재생 컨트롤이 가능한 API 제공  →  스크립트를 통해 효과를 재생하거나 일시 중지, 사용자가 설정한 입자 간 거리로 효과를 시뮬레이션 하는 것도 가능. 시스템의 각 파티클 시스템을 읽거나 쓰고, 충돌 이벤트에 응답 또한 가능
  • 가능한 파티클 수는 천 개 정도이다.
  • 빌트인 렌더 파이프라인, 유니버설 렌더 파이프라인, 고해상도 렌더 파이프라인과 호환이 가능
  • 인스펙터에서 Particle System 컴포넌트를 추가하여 사용하는 간단한 사용법. 게임 실행 전, 사전에 정의해놓은 대로 동작을 진행한다.
  • Unity의 기본 물리 시스템과 상호작용이 가능 → 콜라이더와 상호 작용 가능
  • 프레임 버퍼는 지원하지 않는다.

 

비주얼 이펙트 그래프 (Visual Effect Graph)

 

<사진 출처 : https://docs.unity3d.com/kr/2019.4/Manual/VFXGraph.html>

  • GPU에서 수백만 개의 파티클들을 시뮬레이션하고, 대규모의 시각 효과 구현 가능
  • 더욱 더 높은 레벨의 커스터마이즈까지 가능하여, 시각 효과를 쉽게 만들 수 있도록 비주얼 그래프 에디터도 제공
  • 유니버설 렌더 파이프라인, 고해상도 렌더 파이프라인과 호환 가능
  • 가능한 파티클 수는 백 만개 정도이다.
  • 그래프 뷰를 사용하는 High-Level의 커스터마이즈가 가능한 프로세스
  • 물리 효과 측면에서, 비주얼 이펙트 그래프에 정의된 특정 요소와 상호 작용이 가능
  • C# 스크립트에서 그래프 프로퍼티를 표시하고 접근하여, 그 효과를 표현하는 객체를 커스터마이즈 가능
  • 이벤트 인터페이스를 사용하여 그래프가 처리할 수 있는 데이터가 첨부된 커스텀 이벤트 전송이 가능
  • Visual Effect 컴포넌트 또한 재생 컨트롤이 가능한 API 기능 제공 (효과 재생, 일시 중지 등)
  • 고해상도 렌더 파이프라인에 대해서는 컬러 및 뎁스 버퍼에 대한 접근을 제공한다고 함

 

 

일단 이 글에서는 빌트인 파티클 시스템에 대해서 공부한 내용들만 다뤄보려고 한다.

 

 

 

빌트인 파티클 시스템 살펴보기

파티클 시스템 추가하기

 

  • Hierarchy에서 우클릭 → Effects → Particle System

 

빌트인 파티클 시스템 오브젝트 생성하기

 

파티클 효과 패널

 

  • 생성한 파티클 시스템 오브젝트를 클릭하면, 씬 뷰 내부에 다음과 같은 패널이 뜸

 

파티클 효과 패널

 

 

 

파티클 시스템 컴포넌트 프로퍼티

 

  • Transform의 Position, Rotation, Scale 값을 수정하여 파티클 개별의 위치, 회전각, 크기 변경이 가능

 

파티클 시스템 컴포넌트

 

 

 

 

시간 경과에 따른 프로퍼티의 다양화

 

  • 파티클 시스템 컴포넌트에서 시간 경과에 따른 입자의 모양 변화를 설정하기 위한 프로퍼티 옵션이 존재함
    • ex) Start Delay, Start Lifetime, Start Speed 등
  • Constant  :  입자가 수명 시간동안 고정된 프로퍼티 값을 가짐
  • Curve  :  해당 프로퍼티 값은 커브/그래프로 규정됨
  • Random Between Two Constants  :  해당 프로퍼티 값의 상한선 값과 하한선 값을 지정하고, 이 사이의 값 중 랜덤으로 적용됨
  • Random Between Two Curves  :  두 곡선을 정의하고, 이 값의 상한값과 하한값 사이에서 랜덤하게 적용됨

 

프로퍼티를 CurveRandom Between Two Curves로 설정하면 인스펙터 하단에 파티클 시스템 커브 에디터가 표시된다.

 

파티클 시스템 커브 에디터

 

  • Optimize  :  4개 이하의 키에 커브를 맞추어 빠르게 읽을 수 있는 다항식으로 빌드. 최적화되지 않는 커브를 읽는 것보다 효율적
  • Remove  :  선택한 커브 삭제

 

또한, 파티클 시스템이 커브를 재생하는 방식을 편집할 수도 있다.

톱니바퀴 아이콘을 클릭하면, 다음 셋 중 하나로 선택할 수 있다.

  • Loop  :  입자의 수명 시간동안 커브를 지정된 횟수만큼 재생함
    • 예를 들어, 입자의 크기를 확대하거나 축소하는 커브를 만든 후, 여러 번 반복하도록 명령하여 입자의 수명이 다할 때까지 해당 애니메이션이 여러 번 발생하게 할 수도 있음
  • Ping Pong  :  Loop와 유사하나, 커브를 앞뒤로 재생하는 차이점이 있음
  • Clamp  :  커브의 값을 벗어나는 값들을 해당 영역 안의 값만 가지도록 제한

 

 

컬러(Color)에 대한 프로퍼티 옵션들

 

  • Color  :  파티클 시스템의 수명 주기에 걸쳐, 모든 입자가 이 컬러로 시작. 입자는 여전히 수명 주기동안 컬러를 바꿀 수 있음
  • Gradient  :  시작 컬러와 종료 컬러를 가진 입자 설정. 불꽃 같은 효과에 적합할 듯함
  • Random Between Two Colors  :  두 개의 특정 컬러 사이에서 선형 보간법으로 시작 입자 컬러를 임의 선택
  • Random Between Two Gradients  :  선택된 두 개의 컬러 사이에서 선형보간법으로 시작 컬러가 임의로 선택되고, 파티클 시스템이 현재 나이에 해당하는 시점의 각 그래디언트에서 컬러를 선택
  • Random Color  :  그냥 랜덤으로 무작위 샘플 채취

 

Gradient Editor

 

  • Mode  :  입자의 컬러 혼합 여부 설정
  • Color  :  현재 선택한 키의 컬러 표시
  • Location  :  현재 선택한 키가 얼마나 먼 지점에 있는지 나타냄
  • Presets :  현재 값을 프리셋으로 설정하여 저장 가능

 

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.