본문 바로가기

게임프로그래밍/실습2

[실습2] 60. 환경 쿼리

1. Environment Query

 

환경 쿼리를 만들어 더 정교한 에너미의 행동을 만들어볼 것이다.

 

 

 

EQS의 경우 그냥은 테스트 하기가 힘든데 그렇기에 이를 위한 테스트 폰이 존재한다. 이를 만들어보자.

 

해당 폰을 살펴보면 쿼리를 설정할 수 있는 부분이 보인다.

 

이제 환경 쿼리를 설정해보자.

 

환경쿼리는 제너레이터를 통해 값을 계산할 수 있다.

 

 

제너레이터를 생성하면 테스트를 추가할 수 있는데 여기서 트레이스를 추가해보려고 한다. 트레이스는 목표에서 특정 목적지까지 가시성 채널을 추적하여 점수 매기는 방식이다.

 

 

컨텍스트를 통해 그러한 목표를 설정할 수 있다.

 

 

블루프린트 기반의 클래스를 생성하자.

 

 

플레이어 액터를 추적할 것이기 때문에 Provide Actors Set 함수를 오버라이드 하자.

 

 

플레이어 캐릭터를 가져오는 작업을 하면 된다.

 

 

이제 이렇게 설정해주면 된다.

 

 

이렇게 나오면 제대로 추적되고 있다는 것이다.

 

이제 무언가로 막아서 빨간색과 파란색은 어느것이 추적 성공인지 알아보자.

 

 

파란색이 추적이 되는 것으로 보인다. 물론 이부분은 원하는 설정으로 바꿀 수 있다.

Bool Match 설정을 바꾸면 된다.

 

 

이제 이 포인트 중에서 점수를 매겨 추적이 가능하면서 캐릭터로부터 가장 먼 거리를 찾는 법을 알아보자.

 

이를 통해 원거리 공격을 할때 벽에 막혀있으면 돌아가서 공격을 하게 될 것이다.

 

 

테스트에서 Distance를 추가하자.

 

 

목적은 스코어 온리일 것이다.

 

 

이제 거리가 멀 수록 점수가 높은 것을 볼 수 있다.

 

물론 이 부분은 바꿀 수 있다.

 

이제 이 쿼리를 실제 에너미에 적용 시킬일만 남았다.