언리얼 5

231011 포스트 프로세스 외곽선 효과 / 나이아가라

슬뷔 2023. 10. 11. 10:37

PostProcess - Outline

ScreenPosition -> 현재 위치 

이걸 이용해서 중심위치 UV 

주변의 깊이를 가져와서 평균값을 가져와서 중앙과 비교해서 비슷하다면 => 평평한 면

외곽선과 걸친다면 평균값이 중앙과 비교하여 이질적인 ? 느낌이 나기 때문에 경계선인지 아닌지 판단할 수 있다.

 

SceneDepth -> 깊이값 추출

 

BlurSampleOffsets 를 이용해서 위, 아래, 좌, 우로 살짝씩 이동한 위치의 깊이값을 알아낸다.

하지만, UV 로 1 이동은 살짝이 아니라 엄청난 거리이다..

살짝만 옆으로만 가려면 (픽셀 단위로) ?

SceneTexelSize 를 이용해서 픽셀 한 칸만 이동한 값을 Multiply 해서 넘겨준다.

 

특정 오브젝트에게만 아웃라인 적용

편집 -> 프로젝트셋팅 -> 렌더링 -> 포스트 프로세스 -> 커스텀 뎁스-스텐실 패스 -> Enabled with Stencil

특정 액터에게만 적용한다면?

커스텀 검색하여 커스텀 뎁스 패스 랜더 체크하고 스텐실 값 1 적용

 

SceneTexture 에서 CustomStencil 로 변경

특정 액터에 임의로 정한 Stencil 값이 10이라면, 그 특정 액터만 아웃라인이 생기게 된다.

https://unrealstudy.tistory.com/8

 

UE4 - 포스트 프로세스로 외곽선(OutLine)효과 내기

참조:https://www.youtube.com/watch?v=YVTcH6da32Y 포스트 프로세스의 세팅은 https://unrealstudy.tistory.com/7에 기재했다. 우선 먼저 Custom Stencil을 사용해서 외곽선을 만들어본다. 스텐실 수치를 올리려면 Render Cus

unrealstudy.tistory.com


나이아가라

https://docs.unrealengine.com/4.27/ko/RenderingAndGraphics/Niagara/QuickStart/

 

나이아가라 퀵스타트

언리얼 엔진 4에서 나이아가라 비주얼 이펙트 시스템을 사용하는 방법을 빠르게 익히도록 도와드리는 가이드입니다.

docs.unrealengine.com

https://youtu.be/ldUd0oHgMBs?si=NC-sdRhiNyJIEi_u 

 

1. (예시) FX -> 나이아가라 이미터 -> 기본 이미터 복사 -> Fountain

이미터 => 여러 모듈의 집합체

파티클

시스템

파라미터

=> 나이아가라 이펙트 시스템은 하위 컴포넌트와 이미터들을 컨트롤하기위해 여러 변수를 가지고있는데, 이러한 변수 또한 스크래치 패드나, 모듈 스크립트에서 컨트롤이 가능해 캐스케이드와는 차원이 다른 확장성을 준다.

 

2. FX -> 나이아가라 시스템 -> 빈 시스템 생성 -> NS_TEST

시스템 안에는 여러 개의 이미터가 있을 수 있다.

이미터 안에는 여러 개의 모듈이 있다.

 

오른쪽 마우스 -> 이미터 추가 -> Empty

(1) 프로퍼티

시뮬레이션 타깃 ->GPUCompute Sim

 

cpu sim -> culling -> render

 

gpu -> cpu 로 갈 때 엄청 많은 연산이 필요함.

 

culling -> gpu sim -> render 

gpu sim 을 사용 할 때는 바운드 계산 모드를 Fixed 로 해준다.

 

(2) Emitter State

Life Cycle Mode -> Self 로 변경

Loof Behavior (반복 횟수) -> Infinite (Loof Duration(반복 횟수에 따른 이미터의 생명 주기) 마다 계속 생성)

* Once -> 한 번만 생성

 

(3) 이미터 업데이트 -> + -> Spawn Rate -> 10.0

(4) 이미터 업데이트 -> + -> Spawn Burst Instantaneous -> Count 500

* 순간적으로 한 번에 생성

 

(5) 파티클 스폰 -> + -> Shape Location

* 입자들이 생성되는 범위를 정할 수 있다

 

(6) 파티클 스폰 -> Initialize Particle -> Life Mode -> Random ( 2 ~ 4 )

(7) 파티클 스폰 -> Initialize Particle -> Sprite Attributes -> Random Uniform ( 5 ~ 20 )

(8) 파티클 스폰 -> + -> Add Velocity -> Velocity Mode -> From Point  -> Speed 500

(9) 파티클 업데이트 -> + -> Solve Forces and Velocity

(10) 파티클 업데이트 -> + -> Drag

* 속도에 저항을 줘서 움직임을 느리게 하는 모듈

* Drag 모듈 보다 Solve Forces and Velocity 가 무조건 하단에 있어야 한다.

* 저항력이 클수록 퍼지는 정도가 더 적어진다. ( 원 모양이면 반지름이 줄어드는 느낌 ? )

아래 화살표를 눌러서 Float from Curve 선택한다

커브 키 데이터를 처음꺼는 0, 0 그 다음은 1, 5 로 설정한다

* 막 생성했을 때는 저항이 약하다가 파티클이 죽을 때 쯤에는 쎄지도록 설정

 

CurveIndex -> 파티클 NormalizedAge 선택

* NormalizedAge 는 전체 대비 life spawn 을 의미 

* NormalizedAge 를 가로로 두면 좋은 점?

1에 도달  했다는 것은 모든 파티클이 죽었다는 의미

 

(11)  파티클 업데이트 -> + -> Curl Noise Force -> Strength 100, Frequency 50

(12)  파티클 업데이트 -> + -> Scale Sprite Size -> 키데이터 세팅 0, 0 / 0.5, 2 / 1, 0

* 시간에 따라 스케일 값 변화

(13)  파티클 업데이트 -> + -> Scale Sprite Size by Speed -> Max Scale Factor x 1 , y 10

* 속도가 있으면 y 축으로 최대 10배 잡아 늘린다

* Solve 보다 하단에 있어야 한다

 

(14) 렌더 -> 스프라이트 렌더러 -> 정렬 -> Velocity Aligned

* 속도에 따라 속도 방향으로 회전시켜서 랜더링

 

(15) 파티클 업데이트 -> + - Scale Color

아래 화살표를 눌러서 Multiply Vector by Float 선택

* Color 랑 Emissive 를 분리하기 위해서 사용 

아래 화살표를 눌러서 Make Vector from Linear Color RGB

아래 화살표를 눌러서 Color from Curve

* 시간에 따른 컬러 변화

https://blog.naver.com/greatone55/222803708936

 

20220707 나이아가라 기초 다지기 다지기

ㅋㅋㅋㅋㅋ 출략 !!! ● https://youtu.be/ldUd0oHgMBs 설명 너무 간결하고 깔끔하게 이해 잘 되게 잘 ...

blog.naver.com