첫번째로, AI를 사용하기 위해서 모듈추가를 해준다.

 

Character 클래스를 상속받아 Enemy cpp 파일을 생성한다.

이 클래스를 이용하여 Enemy 블루프린트를 생성하고 사용할 에니메이션을 넣는다.

 

다음은 AIController를 상속받아 EnemyController CPP파일을 생성한다.

이젠 EnemyController를 EnemyCharacter에 적용시킬 수 있다.

 

다음은 AI가 돌아다딜수 있는 지역을 지정하기 위한 작업이다.

Nav Mesh Bounds Volume을 드레그하여 뷰포트에 생성하여 크기 조절을 한다.

P를 클릭하면 적용되는 지역을 볼 수 있다.

 

 

다음은 캐릭터의 Patrol을 위한 소스코드를 작성한다.

 

EnemyController 클래스를 다음과 같이 추가하자.

 

EnemyCharacter 클래스에 다음과 같이 추가하자.

빌드후, Enemy 블루프린트를 뷰포트에 생성하여 Patrol 포인트를 적용시키자.

 

여기까지 적용하면 Enemy가 특정 페트롤 포인트를 랜덤으로 돌아다니게 된다.

 

다음은 Enemy가 점프를 해서 높은곳으로 올라갈 수 있도록 적용해보자.

 

뷰포트에 점프할 박스를 생성한다.

NavMeshBoundsVolume을 알맞게 조정하여 모든 박스가 적용되게하자.

 

 

다음은 점프를 띌수 있도록 다음과 같이 적용한다.

 

우선 NavLinkProxy를 부모로 블루프린트 파일을 생성한다.

그후 BP_JumpingNavLink를 드래그하여 생성한후, Link를 절절하게 연결해준다.

 

점프를 위해서는 SmartLink를 사용해야한다 다음과 같이 클릭한다.

SimpleLink를 카피 하여 기존 위치 그대로 SmartLink를 사용하고,

SmartLinkIsRelevant를 클릭하여 SmartLink를 사용하도록 하자.

 

위와같이 각 점프할곳마다 적용시킨다.

 

다음은 앞서 생성한 BP_JumpingNavLink블루프린트를 다음과 같이 수정한다.

 

 

이젠 EnemyCharacter가 점프를 뛰는것을 확인할 수 있다.

 

+ Recent posts