Empty 이미터 생성하기
일단 우유를 만들자. (SpawnRate = 1: 1초에 하나씩 생성한다.)
Emitter Spawn 공장이 태어났을 때 begin 나이아가라 시스템이 시작됐을 때
Emitter Update 공장이 가동중일 때 tick 가동되면서 만들어
Emitter Update - Spawn Rate - 1 설정: 1초에 하나씩 생성해
Particle Spawn - ex)우유를 처음 한번 던져서 옮길 때
Particle Update - ex)우유를 계속 들고 다니면서 옮길 때
평면화된 이미지를 Sprite 라고 한다.
기본적으로 파티클은 Sprite다.
일반적으로 빌보드를 이용해서 입자 하나하나가 카메라를 바라보게 한다.
생성된 불꽃이 아래에서 위로 움직임
Particle Spawn - Add Velocity 모듈 추가: 파티클에 어떠한 힘을 추가한다.
Fix issue 누르면 solve Forces and Velocity 모듈이 생성된다.
z값 50: z방향으로 50의 힘을 준다.
이미터는 생성만 하고 그 후로는 파티클이 다 알아서 한다.
색깔이 올라갈수록 바뀌니까 파티클이 살아있을 때 하는 일.
Particle Update - Scale Color - RGB Linear Color Curve
왼쪽)태어났을때 부터 (오른쪽)죽을 때까지
위에 마커에 생명주기동안의 색상 지정
밑에 마커는 알파, 하얀색(1)은 보이고 검은색(0)은 안보인다.색을 정확하게 보기 위해서
window - preview scene setting - show environment 체크 해제 및 색깔 적절하게 조정
넓은 타원 동그란 영역에서 부터 위로 올라간다.
- 높이
같은 속도라도 생명주기가 길면 더 멀리
Initialize particle 모듈: 파티클의 속성들을 정의
Lifetime=5: 파티클이 5초의 생명주기를 가진다.
같은 생명주기라도 속도(Velocity)가 빠르면 더 멀리 이동한다.
*1unit=1cm
생명주기 or 속도(Velocity) 둘 중에 하나 선택해서 높이를 조절하면 된다.
- 폭
파티클이 태어날 때 어느 위치에 생성될지
Particle Spawn - Shape Location
ex) Sphere 구 안에서 1초에 Spawn Rate 갯수만큼 생성
Cylinder로 설정
Height(높이), Radius(범위) 조절
속도 늘리는 대신 생명주기 낮춰보자
Scale Sprite Size 모듈: 생명주기동안의 파티클 입자의 크기를 변화시킬 수 있는 모듈
x축: 생명주기
y축: Scale
기본사이즈는 initialize particle 보면 알 수 있음 (기본 unset)
단순 반복 연산은 CPU 보다 GPU 가 더 뛰어나다.
Properties - Sim Target을 GPUCompute Sim으로 바꿔준다.
위에 경고뜨는데 Fixed Bounds 체크 후 카메라 기준 범위를 정해주면 된다.
Iinitialize Particle 수치 옆에 화살표 Random Range Float
입자의 크기와 생명주기의 최소값과 최대값을 주어 그 사이에서 랜덤하게 생성된다.
Particle Update - Curl Noise Force
이동 경로가 약간 휘어지게 한다.
Sprite Renderer에서 머티리얼을 바꿀 수 있다.
입자 크기는 128x128 사이즈여도 충분 512는 너무 크다.
Blend Mode 블랜딩 방식 설정
translucent (반투명)로 설정 *머티리얼이 겹칠수록 밝아지게 Additive 어두워지게 modulate
Shading Model 조명의 계산 방식 설정
Unlit 라이트를 받지 않는다 가볍지만 이질감이 생길수도 있다.
Default Lit 실사 느낌
색깔이 시간이 지날수록 변해야 하기 때문에, 외부에서 색깔을 받아오는 노드를 추가해야함
Particle Color
RGB 텍스쳐가 Alpha처럼 흑백으로 잘 구분되어 있기 때문에 Particle Color의 Alpha 값과 합치기가 가능하다. 텍스쳐에 A(Alpha)가 따로 있으면 그걸 사용하면 됨.
입자 모양 완성
Sprite rotation rate 살아가면서(Particle Update) 회전하는 각도를 조절
좀 더 디테일하게 하려면 시작할 때의(Particle Spawn) 각도도 바꿔주면 좋다.
Initialize Particle - Sprite Rotation Mode – Random 으로 바꿔준다.
스프라이트를 단계적으로 보여줘서 움직이는 것처럼 보여주는 애니메이팅 방식
Sprite Renderer 에서 위와 같은 시퀀스 머티리얼로 변경
머티리얼 구조
Sprite Renderer - SubUV
위 사진과 같이 텍스쳐가 6x6 칸으로 구성되어 있으므로 6, 6 을 입력
Particle Update - Sub UVAnimation 추가
End Frame 0부터 시작해서 이미지 총 갯수 6x6=36 -1 -> 35 입력
SubUV Loop Count 생명주기동안 몇번을 반복할것인지 설정
Random Range Float 으로 랜덤 값을 설정
완성
Smoke 이미터 생성
모두 구동은 하지만 이 이미터 하나만 보이게 할 수 있음
아래에서 위로 움직임
검붉은 색 -> 시커먼 색 -> 회색
생성 위치를 바꾸는 방법 (실린더 자체가 이동)
생성 위치는 같지만, 보이는 파티클 입자의 위치를 바꾸는 방법
Cylinder Height Midpoint (실린더 안에서 위 중간 아래 위치값이 조정되는 것)
파티클 입자 크기를 랜덤하게 생성되도록 설정
파티클 생성률을 적당하게 조절
생명주기에 따른 파티클 크기 조절
파티클이 두 가지 각도로 회전하도록 설정
파티클이 자연스럽게 꺾이도록 설정
생명주기 끝에서 속도가 느려져서 파티클이 서로 뭉치는 느낌이 나도록 설정
연기가 불 위에 그려지도록 우선순위 설정
연기가 불이 생성되고 난 후에 생성되도록 딜레이를 설정