본문 바로가기
대학생활/수업

게임기획과비주얼스크립팅 11주차 - 기능 추가, AI, BT

by se.jeon 2023. 11. 23.
728x90
반응형

총알 관리 기능 추가

- 탄환이 없을 때 발사를 제한하는 기능 추가.

 

 

- 재장전하는 기능 추가.

 

총알을 제작 및 줍는 기능 추가

총알 탄창으로 사용하기 위한 액터 타입의 블루프린트를 생성한다.

Static Mesh를 추가하고, Moveable 옵션틀 선택 해 준다.

캐릭터와 충돌했을 때 동작하도록 만든다.

 

 

플레이어가 총알 아이템을 먹으면 소리를 내고, 아이템을 삭제하는 작업 추가.

아이템을 먹으면 폭발하고 HP를 감소시키는 아이템을 생성.

일시적으로 이동속도를 높여주는 아이템도 생각 해 볼 수 있다.

 

Nav Mesh

AI가 맵(레벨)을 돌아다니려면 맵에서 어느 부분을 갈 수 있고 못 가는 곳인지 알려주는 정보가 필요하다.

모드탭 > 배치 > 볼륨 > 내비 메시 바운드 볼륨 선택

맵에 배치하고 크기를 맵의 크기에 맞게 변경하여 잠시 기다리면 생성(베이킹)이 된다.

P 버튼을 누르면 이동할 수 있는 영역은 녹색으로 표시된다.

 

AI 캐릭터를 위한 블루프린트 만들기

적 캐릭터의 행동로직을 정의하기 위한 블루프린트 생성

콘텐츠 브라우저에서 폴더 생성 > 빈 공간 우클릭 > 블루프린트 선택

부모 클래스에서 모든 클래스를 선택하고 ASP 검색 > Ue4ASP_Character

 

 

블랙보드, 비헤이비어트리, AICntroller 추가

 

 

BT (Behavior Tree, 행동 트리)

AI의 의사결정에 필요한 로직을 관리한다.

의사결정은 어떤 조건에서 어떠한 행동을 행할지 결정하는 것을 의미한다.

행동트리의 노드들은 차례대로 실행된다.

 

Blackboard (블랙보드)

AI의 기억저장소. AI가 상황을 판단하고 행동을 결정하기 위해 사용하는 모든 데이터를 담고 있는 컨테이너

행동트리는 블랙보드가 가진 데이터를 토대로 의사결정을 내리고 이를 실행에 옮기는 역할

 

 

Animation Retargeting 기능을 사용하여 애니메이션을 변경할 수 있다.

 

정찰 기능 제작

A지점과 B지점을 왔다갔다 하게 하려면 위치값과 목표지점이 필요하다.

타깃 포인트를 사용하여 목표 지점 지정

 

 

정찰 기능 제작하기


ActorBeginOverlap 이벤트에서 충돌이 일어났을 때 분기를 만들어 타겟포인트 1인지 2인지 비교하고

Current Point를 바꿔주는 기능을 구현한다.

 

 

BT의 노드 유형 5가지

- Root (루트) : 시작점, 하나의 연결만 가질 수 있으며 서비스를 덧붙일 수 없다.

- Composite (컴포짓) : 분기가 실행되는 기본 규칙을 정의

- Selector (셀렉터, 선택기 노드) : 왼쪽에서 오른쪽 순서로 실행하며, 자손 노드 중 하나가 실행에 성공하면 자손의 실행을 멈춘다. 셀렉터의 자손이 실행에 성공하면 셀렉터의 작동은 성공한 것이 되고, 모든 자손의 실행이 실패하면 셀렉터의 작동은 실패한 것이 된다.

- Sequence (시퀀스) : 자손 노드를 왼쪽에서 오른쪽 순서로 실행하며, 자손 중 하나가 실패하면 자손의 실행을 멈춘다. 자손 노드가 실행에 실패하면 시퀀스는 실패하며, 모든 자손 노드가 실행에 성공해야 시퀀스가 성공한다.

- Task (태스크) : AI의 이동이나 블랙보드의 값 조정과 같은 작업을 하는 노드. 이 노드에도 데코레이터가 붙을 수 있다.

- Decorator (데코레이터, 조건절) : 컴포짓이나 태스크에 붙여서 분기나 노드가 실행될 것인지를 정의한다.

728x90
반응형