11. FindPlayer EQS 생성

레벨에 플레이어의 TopDownCharacter 모든 인스턴스를 찾는 인바이런먼트 쿼리를 만듭니다.

Windows
MacOS
Linux
목차

앞의 두 인바이런먼트 쿼리 보다 간단한데, AI 주변 1500 유닛 내 TopDownCharacter 전체 목록을 반환한 뒤, AI 가 그 캐릭터를 볼 수 있는지 검사하는 정도이기 때문입니다. 볼 수 있다면, 비헤이비어 트리에서 쓸 ActorToFleeFrom 을 구합니다.

이 프로세스 처리 방법은 여러가지 있으며, 각기 장단점이 있습니다. EQS 를 사용하면 나중에 도망칠 최선의 적(TopDownCharacter) 선택을 위한 추가 테스트를 추가할 수 있습니다.

먼저 간단히 용어 정리부터 하자면:

  • Generator (제너레이터)는 Context (컨텍스트)에 관계된 Item (아이템)을 생성합니다.

  • 아이템은 종종 컨텍스트에 관계되서 테스트에 사용됩니다 (X 아이템이 Y 컨텍스트에서 얼마나 멀리 있는지)

  • 아이템은 테스트 결과에 따라 버리거나(cull) 기록하거나(score) 합니다.

단계

  1. 먼저 콘텐츠 브라우저 에서 FindPlayer 인바이런먼트 쿼리 애셋을 더블클릭합니다.

    findPlayerAsset.png

    그러면 다음과 같은 인바이런먼트 쿼리 에디터 가 열립니다.:

    startingEQ.png

    인바이런먼트 쿼리 에디터는 비헤이비어 트리 에디터와 거의 똑같이 작동합니다.

  2. 그래프 업데이트 영역에 우클릭, 컨텍스트 메뉴에서 ActorsOfClass 를 선택합니다:

    createGetActors.png

    다음과 같이 ActorsOfClass Generator 를 생성합니다:

    cga_made.png

  3. 인바이런먼트 쿼리 에디터에서 노드를 연결하려면, 그냥 루트 노드 하단을 끌어 ActorsOfClass 노드 상단에 놓으면 됩니다. 비헤이비어 트리 에디터에서와 똑같은 방식이지요.

    connected.png

    인바이런먼트 쿼리 당 제너레이터는 딱 하나만 가능합니다.

  4. 다음, ActorsOfClass 노드를 선택한 뒤 Search RadiusSearched Actor Class 프로퍼티를 다음과 같이 변경합니다:

    aoc_details.png

    • Search Radius = 1500

    • Searched Actor Class = TopDownCharacter.

    이 제너레이터는 반경 내 주어진 클래스의 액터를 전부 찾아, 거기서 아이템을 생성합니다.

  5. ActorsOfClass 노드에 Trace (트레이스) 테스트를 추가합니다.

    addTraceTest.png

    트레이스는 컨텍스트, 이 경우 AI 의 시야에 아이템(TopDownCharacters/Players)이 있는지 검사하는 데 좋습니다.

  6. 이제 ActorsOfClass 노드를 좌클릭한 뒤 디테일 패널에서 Bool Match 프로퍼티를 false (체크해제)로 바꾸어 트레이스 테스트를 선택합니다.

    aoc_TraceFinal.png

그러면 다 된 것입니다!

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼