1. 포스트 프로세스 볼륨 (Post-Process Volume)

(1) 프로젝트 세팅

에셋에 주어진 메테리얼은 커스텀 스텐실이 적용되어 있으므로, 올바르게 사용하기 위해 프로젝트 세팅을 변경한다.

기본값은 Enabled이며 변경할 값은 Enabled with Stencil 이다.

 

(2) 포스트 프로세스 볼륨 배치

상단의 액터 배치 패널에서 포스트 프로세스 볼륨을 찾아 배치한다.

이후 무한 공간을 체크하여 전 맵이 볼륨에 포함되도록 한다.

이제 PP_Highlight 메테리얼을 볼륨에 적용한다.

적을 선택하여 CustomDepth 스텐실 값을 250으로 설정하면 외곽선에 빨간색이 표시되는 것을 볼 수 있다.

 

이제 Render CustomDepth Pass를 액터에서 켜주면 Highlight, 꺼주면 UnHighlight가 되는 식으로 작동한다.

 

2. 코드

(1) AuraEnemy.cpp

#include "Aura/Aura.h"
#include "Character/AuraEnemy.h"

AAuraEnemy::AAuraEnemy()
{
    GetMesh()->SetCollisionResponseToChannel(ECC_Visibility, ECR_Block);
}

void AAuraEnemy::HighlightActor()
{
    GetMesh()->SetRenderCustomDepth(true);
    GetMesh()->SetCustomDepthStencilValue(CUSTOM_DEPTH_RED);
    Weapon->SetRenderCustomDepth(true);
    Weapon->SetCustomDepthStencilValue(CUSTOM_DEPTH_RED);
}

void AAuraEnemy::UnHighlightActor()
{
    GetMesh()->SetRenderCustomDepth(false);
    Weapon->SetRenderCustomDepth(false);
}

- CUSTOM_DEPTH_RED는 Aura.h에서 250으로 define 되어 있다.

이제 적 액터의 블루프린트 콜리전 프리셋의 Visiblity가 Block으로 설정되어 있는지 확인하면 올바르게 작동한다.

 

위와 같이 포스트 프로세스 볼륨에 메테리얼을 적용하고 커스텀 스텐실 값을 적용하면 외곽선이 빨간색으로 드러나도록 설정했다.

해당 코드를 사용하면 적 뿐만 아니라, 상호작용이 가능한 물체나 문에 적용시킬 수 있다.