본문 바로가기

3D 게임 개발이 처음이어도 언리얼 블루프린트로 쉽게 배우는 3D 게임

본 캠프 1일차 (AI에 규칙을 더 추가하기, 비헤이비어 트리의 특성)

3D 게임 개발이 처음이어도 언리얼 블루프린트로 쉽게 배우는 3D 게임 개발 강의 4-2

AI에 규칙을 더 추가하기

저번 강의에서 비헤이비어 트리를 만들었지만 AI캐릭터를 만들지 않았다.

AI캐릭터를 만들어보자.

AI의 시야를 원뿔 스태틱 메시를 이용하여 만든다.

안보이도록 디테일 - 렌더링에서 표시 체크 해제하고 콜리전 프리셋을 OverlapAll로 변경한다.

겹치는지만 판정하고 통과가 된다.

만들었던 데코레이터에서 인식 범위를 담당했던 Sphere Overlap Actors 노드를 삭제하고 Cast To BP_AICharacter를 연결한다.

Owner Actor가 BP_AICharacter로 변환이 가능할 때 실행되고 불가능하면 Failed가 실행된다.

Component Overlap Actors 노드에 AICharacter의 시야 컴포넌트인 Sight(원뿔 컴포넌트)를 연결하고 Sight의 트랜스폼을 연결하고 Object Types에는 전 강의에서 만든 Make Array - Pawn, Out Actors는 Find Item에 연결한다.

완성된 모습

하지만 위처럼 구현하게 되면 플레이어가 장애물 뒤에 숨어있을 때에도 AI의 시야(원뿔) 안에 들어와서 인식을 하게 되는데 이 때 라인 트레이스를 사용하여 해결할 수 있는데 라인 트레이스는 나중에 배울 내용이다.

비헤이비어 트리의 특성

비헤이비어 트리에서 노드의 오른쪽 위에 숫자가 있는데 이는 실행되는 우선순위를 뜻한다.

데코레이터와 서비스 모두 Task보다 우선순위가 높다.
데코레이터가 서비스보다 먼저 실행된다.
노드를 왼쪽으로 옮길 시 실행되는 우선순위가 바뀐다.

1. 실행 우선순위 : 데코레이터 > 서비스 > 태스크

2. 노드가 왼쪽에 있을 수록 먼저 실행된다.

3. 셀렉터(Selector)는 자손중 한 가지만 실행된다.

4. 시퀀스(Sequence)는 자손을 왼쪽에서 오른쪽으로 순서대로 실행한다.

5. 심플 패래럴(Simpel Parallel)은 여러 자손을 동시에 실행한다.