[UE5] Assassin20 - Stealth Mode

윤정민·2023년 7월 5일
0

[Unreal Project]Assassin

목록 보기
21/26

1. 개요

이전에 AI에 시각 감각을 추가해 플레이어를 볼 수 있었다. 이번 시간에는 플레이어가 있는 환경에 따라 AI가 볼 수 없게 만들어 볼것이다. 예시를 들자면 풀숲에 들어가면 은신을 할 수 있는 기능을 생각하면 된다.

2. 아이디어

2.1. 덤불에 들어가면 은신 상태

2.1.1. Movement State

  • Movement State enum에 stealth를 추가해 풀숲에 들어가면 CurrentMovementState = E_Stealth로 설정
UENUM(BlueprintType)	
enum class EMovementState : uint8
{
	E_Walking = 0   UMETA(DisplayName = "Walking"),	
	E_OnLedge		UMETA(DisplayName = "OnLedge"),
	E_Hanging		UMETA(DisplayName = "Hanging"),
	E_Covering		UMETA(DisplayName = "Covering"),
	E_Stealthing	UMETA(DisplayName = "Stealthing"),	//추가
	E_Falling		UMETA(DisplayName = "Falling"),
};

2.1.2. 덤불을 감지

  • 은신 가능한 덤불을 선택
    • 적당한 덤불을 찾기 힘들어 그냥 아무거나 씀

  • 덤불 Collision의 Object Channel과 Collision Preset을 설정
    • Bush들 끼리 Overlap감지 가능

  • 덤불을 감지할 Collision을 플레이어 캐릭터에 추가

  • overlap을 시작하면 BushNum을 증가 종료 되면 감소를 하여 BushNum이 자연수일때 StealthState로 설정

2.2. Stealth Mode

AI의 sight Perception은visible Trace Type에 Block 된다. 따라서 플레이어에 visible trace가 도달하지 못한다면 AI는 플레이어를 보지 못한다.

  • 감지하는 경우

  • 감지하지 못하는 경우

결론적으로 Stealth State일 때 Player 주변에 visible trace를 block하는 object를 활성화시켜 AI의 sight를 막으면 된다.

3. 결과

profile
그냥 하자

0개의 댓글