11. 외곽선 연출 - Elysia-ff/UE4-Custom_Stencil_Tutorial GitHub Wiki
외곽선 검출
적캐릭터를 발견하면 시야에서 벗어나더라도 일정시간동안 외곽선을 통해 위치를 확인할 수 있게 할 것이다.
원리는 시야연출과 동일하게 스텐실 버퍼에 캐릭터를 따로 렌더링하고 외곽선을 검출하면 된다.
먼저 BP_Enemy
-> Mesh의 스텐실옵션을 Second bit (2), ignore depth
, 2
로 지정한다.
그리고 EnemyMaterial
의 Allow Custom Depth Writes
와 Opacity Mask Clip Value
를 다음과 같이 수정한다.
이제 외곽선 Post Process를 위한 마테리얼을 구현할 차례다.
아래 조건을 만족하면 외곽선이라고 할 수 있다.
- 오브젝트의 외부에 존재한다.
- 주변 8개 UV 중 한개 이상이 오브젝트의 내부에 위치해 있다.
즉 점 A는 2번 조건을 만족하지 않고 점 B는 1번 조건을 만족하지 않으므로 탈락, 점 C는 외곽선이다.
주변 UV를 샘플링하는 Material Function MF_SampleNeighbourUV
를 추가한다.
입력으로 UV 와 Offset을 받고 UV 에서 Offset만큼 떨어진 UV 8개를 반환한다.
새 마테리얼을 생성하고 다음 코드를 추가한다.
Is Masked?
노드
이제 생성한 마테리얼을 Post Process Volume
에 등록한다.
(순서에 주의)
실행하면 외곽선과 시야 모두 적용된다.