Post Process Volume을 Level에 배치하고
해당 레벨에서 사용할 Material 을 Array에 추가한다. PP_Highlight는 외곽선을 표시할 Material이다.
그 다음 무기나 캐릭터 등 외곽선을 표시하고 싶은 오브젝트의 Rendering - Render CustomDepth Pass를 체크해주면 해당 액터는 PP_Highlight 효과를 받을 수 있다.
PP_Highlight
나는 아이템이 캐릭터의 Aim LineTrace에 충돌했을 때 외곽선 효과를 넣을 것이다. 그러기 위한 외곽선 효과 Material을 만들어주면 된다.
Material 선택 후 PP_Higlight 로 작명해준다. 그리고 픽셀에서 외곽과 내부를 구분하는 노드들을 연결해주면 된다.
경계 텍셀(Border Texel) 구하기
내부 텍셀(텍스처의 픽셀)은 1, 외부의 텍셀을 1000이라고 해보자 그림으로 그리면 이리 될 것이다.
텍셀 8칸의 합에서 100씩 뺀다면
외부 = 8000 - 100 = 7900
경계 = 3005 - 100 = 2905
내부 = 8 - 100 = -92
외부+경계: 위의 값을 0~1 범위로 Clamp 해주면 외부와 경계에 있는 값은 1이 되고, 내부의 값은 0이 된다.
내부+경계: 위의 값을 0~1 범위로 Clamp 하고 그 값을 1에서 뺀다면(1-x) 내부와 경계는 1이 되고, 외부의 값은 0이 된다.
경계: 위의 두 값을 곱하면 경계는 1, 내/외부는 0이 된다.
이 내용을 PP_Highlight에서 구현하면 된다. 먼저 텍셀의 각 좌표가 필요하다.
위의 과정대로 8칸 텍셀의 합에서 100(아래에선 1e+07)을 빼준 후 Clamp와 Clamp 후 1-x를 한 값을 곱하면 경계 텍셀이 나온다.
사용할 색상을 정해주고
적용할 액터(무기나 캐릭터 등)의 CustomDepth Stencil Value 값을 정해주면 된다.
'Unreal Engine' 카테고리의 다른 글
재장전 애니메이션 (0) | 2023.07.21 |
---|---|
프레넬 효과 (0) | 2023.07.13 |
총 쏘기 (0) | 2023.07.06 |
카메라 회전(+ 캐릭터 이동 수정) (0) | 2023.07.06 |
캐릭터 이동 (0) | 2023.07.06 |