▶ PawnSensing
ㆍ 기본적인 이벤트 외에 추가적인 이벤트 트리거를 제공하는 컴포넌트
ㆍ 폰의 감각 컴포넌트라고 불리며 액터의 감각 설정과 기능을 담은 집합체라고 할 수 있다.
※ EQS?
ㆍ 언리얼에서는 실험단계로 폰에게 심어두는것이 아닌 환경에 심어두는 케이스 따라서 매우무겁다
ㆍ 환경에 심어둔 노드에 플레이어가 들어오면 시야에 들어왔다고 판단.
▶ 이 폰센싱을 이용해 플레이어를 감지해 보자
ㆍ 먼저 플레이어 컨트롤러로 들어간다.
ㆍ 컴포넌트 탭에 추가를눌러 pawn을 검색하면 폰 감지 컴포넌트가 들어온다. 추가해주자
ㆍ 추가한 폰 감지 컴포넌트를 클릭한 후 노드에 on see pawn을 검색하면 폰 보기 시 라는 이벤트가 들어온다.
ㆍ 위와같이 연결해주자. 플레이어가 필요하니 BP_FirstPersonCharacter를 추가해주고 블랙보드와 연결해주었다.
ㆍ 추후 블랙보드(뇌)에 만들 PlayerActor를 리터럴네임으로 미리 추가해주자
ㆍ 블랙보드로 와서 PlayerActor키를 추가해주고 베이스클래스를 Actor로 설정해주었다.
ㆍ 이제 뇌에다 추가해주었으니 행동트리에 알려줘야 할 것 같다.
ㆍ 스퀀스를 제일 왼쪽에 준 이유는 플레이어를 감지했을 경우 하던 행동을 멈추고 플레이어를 추적해야한다.
ㆍ 따라서 제일 왼쪽에 두고 아래쪽 테스크 노드는 감지가 풀렸을경우 다시 정찰을 하게 하기 위함이다.
ㆍ 하던 행동을 멈추게 하기위해 우클릭을 눌러 데코레이터 추가 Blackboard를 해줫다
ㆍ 만든 블랙보드를 보면 디테일탭에 옵션이 들어오는걸 볼 수 있다.
ㆍ 관찰자 중단을 Lower Priorty로 바꿔주고 블랙보드 키를 PlayerActor로 바꿔준다
ㆍ 이렇게하면 플레이어를 감지했을 경우 이 노드만 실행된다.
ㆍ 클릭해보면 옆의 시퀀스들이 파란색으로 들어오면서 플레이어를 감지했을때는 발동하지 않는다.
ㆍ 플레이어가 시야에서 사라졌을땐 감지를 풀고 다시 패트롤 하기 위해선 커스텀노드가 필요하다.
ㆍ새 태스크노드를 만들고 아래와같이 노드를 연결해주자.
ㆍ Key변수는 블랙보드 키 선택 타입이다.
ㆍ 최종적으로 플레이어가 시야에 들어오면 감지해서 추적하는 모습을 볼 수 있다.
※ 가까히 왔을때 공격하는것과 소리로 감지하는것 또한 추가해 봐야겠다.
※ 행동트리랑 애너미 컨트롤러에 소리에 대한 값을 설정해주고 적 캐릭터 블루프린터에 별도의 노드를 연결해줘야 할 것 같다.
'언리얼엔진 > 블루프린트' 카테고리의 다른 글
델리게이트 (0) | 2023.10.12 |
---|---|
언리얼 엔진 AI (2) | 2023.10.10 |
UI를 이용한 플레이어 스탯 연동 (0) | 2023.10.08 |
보간과 타임라인을 이용한 움직이는 발판 (0) | 2023.10.08 |
엑터 패트롤 시키기 (0) | 2023.10.08 |