이제 파티클의 탭에 대해 분석해봤으니, 상용화되는 가장 많이 쓰는 파티클을 그 파티클의 메인 기능을 강조하는 형식으로 구분하면서 모작 형식으로 공부를 진행해보려 한다
저작권에 꽤나 중대한 침해를 하는 듯 해보이는 방법이라 비공개로..
에셋 자체는 자주 쓰이는 이 에셋을 기반으로 진행해보려 한다
https://assetstore.unity.com/packages/vfx/particles/cartoon-fx-remaster-free-109565

먼저 단일 이미지를 사용하는 비교적 쉬운 파티클인 이 파티클을 한번 분석해보고자 한다
우선 에셋에서 주어진 렌더러 설정부터 적용하자면

Renderer
- Billboard로 기본적인 모양을 쓴다
Material
- 머터리얼을 주어진 해골 모양으로 깔아둔다
Sorting Fudge
- 파티클을 정렬한다
Min, Max Particle Size
- 단일 파티클이고 커졌다 사라지는 구조기 때문에 0 ~ 2로 해둔다
Render Alignment
- View로 해 파티클이 평면 앞을 보게 설정한다
Flip
- X을 0.5 넣어 일부를 Flip시킨다
Allow Roll
- Z축 이동을 허용한다
Pivot
- 피벗은 고정
Masking
- No Masking으로 해놓아 씬의 스프라이트 마스크와 대응하지 않게 함
Apply Active Color Space
- 활성화해놓는다, 상황에 따라 색감이 달라지는게 자연스럽기 때문
Custom Vertex Streams
- 저번에 못 붙인 설명을 덧붙이자면 Custom Vertex Streams는 이 파티클의 정보를 쉐이더, GPU에 보내는 통로 같은 개념이다
- 현재 머터리얼에 담겨 있는 셰이더와 상호작용해 작동하는 구조로 이루어진다
그렇다면 지금 이 에셋이 사용하고 있는
Particle UberShader라는 쉐이더를 열어보겠다
쉐이더 코드 전문을 다 올리기엔 무리가 있으니 간단한 설명과 함께 핵심 코드와 그에 따른 쉐이더 탭 결과물과 비교하며 찍어보도록 하겠다
에셋을 분석하는게 의미가 있을까 싶지만 꽤나 범용적인 여러 설정들이 보여서 한번 해보려 한다
원문 코드가 필요하다면 직접 에셋을 깔아서 보는게 편할지도..?
Blending / Depth

Blending
- 지금 그리는 픽셀 (Src)과 이미 화면에 있는 픽셀 (Dst)를 어떤 공식으로 섞을지 정하는 규칙
- 이때 쓰는 수식 중 Blend Source / Blend Destination 탭이 있다
- 아주 단순화한 수식으로 진짜 섞어서 나올 색을 구하자면
- Src x Blend Source + Dst x Blend Destination
- 이런 식으로 정리할 수 있겠다Source : 지금 그리고 있는 파티클
Destination : 이미 그려진 배경 혹은 오브젝트를 뜻함
결론적으로 얼마나 파티클 고유색을 쓸지, 그리고 얼마나 배경을 남길지를 적용하는 것이다
- 탭 중 Src---이런 느낌의 탭은 Src의 요소를 쓰겠다는 의미이다
- Ex) SrcAlpha = 파티클의 알파값을 기준으로 섞는다
- 마찬가지로 반대도 그런 의미- One = 그대로 100퍼센트 더함
- OneMinus--- 은 100에서 저 값 요소를 빼는 개념으로 보면 된다
- 이런 식으로 여러 탭으로 이 값을 정리해두는 개념
Blending Type
이 에셋에서 섞는 타입을 이런 식으로 나눠둔다
- Alpha Blending
- 가장 기본적인 투명
- 색이 섞이게 적용한다- Premultiplied Alpha
- 색에 이미 알파를 곱하는 형식
- 경계가 깨끗해짐- Additive
- 색을 그냥 더함
- 겹칠수록 밝아지는 개념- Multiplicative
- 배경을 어둡게 곱하는 개념Depth Write
깊이를 기록할지에 대해 물어보는 탭
- 체크하면 깊이에 기록되며 파티클끼리 겹치는 부분들이 정리된다
- 끄면 기록하지 않고 기본적인 투명으로 처리된다
Alpha Clipping
알파값이 일정 값 이하면 버려버리고, 그 이상이면 100프로 그리는 설정
- 부드러운 투명을 제외해 경계를 또렷히 할 수 있음
- 그러나 계단 현상이 생기고 말 그대로 부드러움이 좀 줄 수 있다
Soft Particles
파티클이 벽, 바닥을 뚫고 들어갈 때 경계가 잘리는 문제를 해결 가능
- 카메라 깊이 텍스쳐를 인식하고 너무 가까워지면 알파를 줄이며 사라지게 하는 기능
- Near Fade : 언제부터 사라질지
- Far : 언제부터 완전히 사라질지
- 값이 클수록 더 멀리서부터 부드럽게 페이드된다
- Edge Fade : 가장자리 알파를 줄일 수 있는 기능

Enable Dissolve
디졸브 기능 온오프 탭
- 켜면 아래 탭 작동, 끄면 일반 파티클 취급
Dissolve Texture
어디서부터 사라질 지 정하는 지도의 개념
- 보여줄 이미지가 아님
- 어두운 곳 -> 먼저 사라짐 / 밝은 곳 -> 나중에 사라지는 개념으로 적용
Tiling
- 디졸브 패턴 반복 횟수, 값 높아질수록 패턴 촘촘해짐
Offset
- 디졸브 패턴의 위치 이동
Dissolve Smoothing
사라지는 경계가 얼마나 부드러운가에 대한 수치 조정
- 낮음 -> 경계가 날카롭고 조각조각 잘리는 느낌
- 높음 -> 경계가 흐릿하고 연기처럼 보임
- 속도를 잡는게 아닌 경계의 폭을 조정하는 부분이다
Invert Dissolve Texture
밝고 어두운 기준 뒤집음
- 켜면 위 이미지의 밝은 곳이 먼저 사라짐, 반대로 적용시킬수 있는 구조
Double Dissolve
디졸브 경계를 두 겹으로 만든다
- 쓰면 단일 경계가 아닌 바깥, 안쪽 두 단계의 경계가 생긴다
Dissolve offest along X
디졸브를 한 방향으로 진행시키는 탭
- 디졸브를 X축 방향으로 미는 개념으로 흐르거나 밀리는 효과를 주는 개념
Enable UV Distortion
- 다음에 쓸 때 한번 더 설명해보겠다
일단은 요기까지
유익해요