스켈레탈에 소켓붙이는건 기본적으로 안다는 가정하에...
모르면
https://monggus.tistory.com/659
ㄱㄱ
먼저 ribbon renderer를 추가한다.
그리고 frame단위로 파티클을 생성하는 spawn particle per frame을 emitter update에 추가한다.

그리고 initialize particle 에서 ribbon값을 적절히 세팅해주면...

이런 trail이 생김!
근데 칼날이랑 rotation이 일치하지 않음....
그럴때도 방법이 있음

ribbon renderer의 facing mode를 custom side vector로 변경

그리고 initialize particles에서 ribbon facing mode를 direct set으로 변경한다음 이 ribbon을 사용하는 owner의 X,Y,Z중 원하는 축으로 바라보게 만들면....

잘 정렬됨!
이미터(Emitter)가 이동한 거리를 기반으로 파티클을 스폰하여, 속도와 관계없이 일정한 간격의 트레일(Trail) 효과를 만듬


spawn spacing옵션에 따라 얼마만큼의 거리마다 파티클이 생성될지 정하는거!
먼저
원하는 텍스쳐와, 텍스쳐의 normal map을 구해야함
먼저 머터리얼을 masked롸 unlit으로 ㄱㄱㅎ
bump offset을 이용해서 일반 텍스쳐의 uv에 연결하고 height를 양수,음수로 변화시키면

이랬던 텍스쳐가

이제 검은색 안쪽부분을 칠할 차례임
먼저 탄젠트 공간을 알아야함
transform vector는

탄젠트 공간을 월드공간으로 변화시키는 노드임
탄젠트 공간은 곡률이 있는 선이 있을때, 해당 선의 한꼭짓점에서 로컬 공간으로 접하는 평평한 벡터 공간을 의미함

이런식의 노드를 짜게되면
one minus적용전

one minus적용후

카메라 방향에서 수직인 공간이 검은색이 될건지
카메라 방향에서 평면인 공간이 검은색이 될건지 결정!
디테일쪽에 더 가까운 영역이 시작됨

fresnel은 외곽선을 보여주기 위해 사용 ㅇㅇ
bump offset으로 반사가 된 텍스쳐를 desaturation을 통해 색을 뺀 회색조로 만들어줌

이걸 하는 이유는

이런 얼음큐브가 있을때,
위쪽은 무채색, 안쪽은 반사, 카메라 정면은 검은색, 아래 중앙은 옅은 파란색으로 표현된다.
desaturation은 아래 중앙부분을 제외하고 모든 부분에서 색을 빼기위해서 사용함

그래서 이런식으로 색을 같이 사용하여 desaturation된 곳에 더해주면

이렇게 됨
bump offset은 깊이감을 더해주는 노드임

Unreal의 Bump Offset 노드 출력 UV에서:
Height 정보가 V채널(G)에 인코딩되어 나오기 때문임
즉, Bump Offset 노드의 출력 구조상 G채널에 변위(물체의 위치 변화량을 나타내는 물리량) 정보가 담겨있어서 G를 쓰는 거야
그래서 Texture coordinate를 나눠서 R은 U가 되고, G는 V가 되는데, R을 연결하게되면
bump offset의 깊이감과 매핑되지 않아서 효과가 없어지게 되는거임
그래서

이렇게 노드를 완성하면

이런 머터리얼이 만들어지게됨
erode를 위해서 단순하게 완성된 텍스쳐의 alpha를
노이즈와 결합해서 빼면 됨

마지막 saturate는 clamp역할인데,
clamp는 사용자 지정 범위에서 오버플로우를 막는 역할이고
saturate는 0~1사이에서 오버플로우를 막는 역할임


이 모듈은 나이아가라 시스템이 viewport위치된 곳에서 시작되는 모듈임

이런식으로 커브의 적용을 파티클단위가 아니라 이미터단위로 설정하면 이미터가 진행됨에 따라 curve가 적용되어 앞으로 쭉 지정한 방향으로 쭉 뻗어나가는 파티클이 됨
파티클 위치에 무작위성을 추가하는거임
노이즈라고 보면 됨

system location을 이용해서 x와 y로 sine, cosine을 했을때 위처럼 원형으로 파티클이 생성된다.

이렇게 jitter position 모듈을 추가하묜

요로코롬 됨
component renderer에서 component를 skeletal mesh 로 하면


만약 뷰포트에서 안된다면
모델과 애니메이션을 블렌더로 가져와서
애니메이션을 한번 구운다음 alembic으로 추출,
언리얼에서 geometry cache로 임포트 하면 됨

언리얼은 기본적으로 이런 parallax occlusion을 지원함
위에서부터 순서대로
아래부터는 그림자 관련 옵션
