커스텀 내비게이션 영역 및 쿼리 필터 준비 가이드

이 가이드에서는 커스텀 내비게이션 영역 및 쿼리 필터를 학습하기 위한 준비 단계를 다룹니다.

Choose your operating system:

Windows

macOS

Linux

개요

이 문서에서는 내비게이션 시스템(Navigation System)의 커스텀 영역(Custom Area)과 쿼리 필터(Query Filter)를 학습하기 위해 레벨과 AI 에이전트를 생성하는 준비 단계를 안내합니다.

이 가이드에서 다루는 머티리얼이 모두 포함된 전체 샘플 프로젝트를 다운로드할 수도 있습니다.

세부 목표

  • 새 레벨을 생성하고 레벨에 내비게이션 메시(Navigation Mesh) 액터를 배치하여 내비게이션을 구성합니다.

  • ThirdPersonCharacter 블루프린트를 수정하여 특정 쿼리 필터에 따라 타깃을 향해 이동하게 합니다.

1 - 필수 구성

  1. 언리얼 프로젝트 브라우저(Unreal Project Browser)의 새 프로젝트 카테고리(New Project Categories) 섹션에서 게임(Games) > 삼인칭(Third Person) 템플릿을 선택합니다.

    게임 카테고리를 선택하고 삼인칭을 클릭합니다

  2. 블루프린트(Blueprint)시작용 콘텐츠 없음(No Starter Content) 옵션을 선택한 뒤 생성(Create) 을 클릭합니다.

    블루프린트와 시작용 콘텐츠 없음 옵션을 선택한 뒤 생성을 클릭합니다

섹션 결과

새 삼인칭 프로젝트를 생성했으니 이제 영역 클래스와 내비게이션 쿼리 필터를 생성하는 방법을 학습할 준비가 되었습니다.

2 - 테스트 레벨 만들기

  1. 메뉴 바에서 파일(File) > 새 레벨(New Level) 을 클릭합니다.

    새 레벨을 클릭합니다

  2. 기본(Basic) 레벨을 선택하고 생성(Create) 을 클릭합니다.

    기본 레벨을 선택하고 생성을 클릭합니다

  3. 아웃라이너(Outliner) 에서 Floor 스태틱 메시 액터(Static Mesh Actor)를 선택하고 디테일(Details) 패널에서 스케일(Scale) 을 X = 10, Y = 10, Z = 1로 설정합니다.

    월드 아웃라이너에서 Floor 스태틱 메시 액터를 선택합니다

    스케일을 X = 10, Y = 10, Z = 1로 설정합니다

  4. 액터 배치(Place Actors) 패널에서 NavMeshBoundsVolume 을 검색합니다. 볼륨을 레벨로 드래그하여 바닥 메시 위에 배치합니다.

    내비메시 바운드 볼륨 액터를 레벨로 드래그합니다

  5. NavMeshBoundsVolume 을 선택한 채로 디테일(Details) 패널에서 스케일(Scale) 을 X = 5, Y = 10, Z = 1으로 설정합니다.

    스케일을 X = 5, Y = 10, Z = 1으로 설정합니다

  6. 액터 배치(Place Actors) 패널로 이동하고 셰이프(Shapes) 카테고리로 이동합니다. 스피어(Sphere ) 액터를 레벨로 드래그합니다.

    스피어 액터를 레벨로 드래그합니다

섹션 결과

이 섹션에서는 새 레벨을 생성하고 내비게이션 메시와 스피어 액터를 추가했습니다. 이제 스피어 목표를 향해 걸어갈 에이전트를 만들 준비가 되었습니다.

3 - 에이전트 만들기

이 섹션에서는 타깃 액터를 향해 이동할 에이전트를 만듭니다.

  1. 콘텐츠 드로어(Content Drawer) 에서 우클릭하고 새 폴더(New Folder) 를 선택하여 새 폴더를 생성합니다. 폴더를 NavigationSystem 으로 명명합니다.

  2. 콘텐츠 드로어 에서 ThirdPersonBP > Blueprints 폴더로 이동하여 BP_ThirdPersonCharacter 블루프린트를 선택합니다. NavigationSystem 폴더로 드래그하고 여기에 복사(Copy Here) 옵션을 선택합니다.

    ThirdPersonCharacter 블루프린트를 NavigationSystem 폴더로 드래그하고 여기에 복사를 선택합니다

  3. NavigationSystem 폴더로 이동하여 블루프린트 이름을 BP_NPC_CustomZone 으로 변경합니다. 블루프린트를 더블클릭하여 열고 이벤트 그래프(Event Graph) 로 이동합니다. 모든 입력 노드를 선택해서 지웁니다.

  4. 이벤트 그래프 를 우클릭한 뒤 커스텀 이벤트 추가(Add Custom Event) 를 검색하고 선택합니다. 이벤트를 MoveNPC 로 명명합니다.

    이벤트 그래프를 우클릭한 뒤 커스텀 이벤트 추가를 검색하고 선택합니다. 이벤트를 MoveNPC로 명명합니다

  5. 내 블루프린트(My Blueprint) 패널에서 변수(Variables) 옆의 추가(+) 버튼을 클릭하여 새 변수를 생성합니다. 변수를 Target 으로 명명합니다.

    변수 옆의 추가 버튼을 클릭하여 새 변수를 생성하고 Target으로 명명합니다

  6. 디테일(Details) 패널에서 변수 유형(Variable Type) 드롭다운을 클릭합니다. 액터(Actor) 를 검색하고 오브젝트 레퍼런스(Object Reference) 를 선택합니다. 인스턴스 편집가능(Instance Editable) 체크박스를 활성화합니다.

    변수 유형 드롭다운을 클릭하고 액터, 오브젝트 레퍼런스를 선택합니다

    인스턴스 편집가능 체크박스를 활성화합니다

  7. Target 변수를 이벤트 그래프(Event Graph) 로 드래그하고 Get Target 옵션을 선택합니다. Target 노드에서 드래그하여 아래와 같이 Is Valid 매크로를 검색하고 선택합니다.

    ![Target 노드에서 드래그하여 Is Valid 매크로를 검색하고 선택합니다](custom-npc-is-valid-a.png)(convert:false)

  8. 이벤트 그래프(Event Graph) 를 우클릭한 뒤 셀프 레퍼런스 가져오기(Get reference to self) 를 검색하고 선택합니다.

    이벤트 그래프를 우클릭한 뒤 셀프 레퍼런스 가져오기를 검색하고 선택합니다

  9. Self 노드에서 드래그하여 Get AIController 를 검색하고 선택합니다.

    Self 노드에서 드래그하여 Get AIController를 검색하고 선택합니다

  10. AIController 노드에서 드래그하여 Move to Actor 를 검색하고 선택합니다.

    AIController 노드에서 드래그하여 Move to Actor를 검색하고 선택합니다

  11. Is Valid 노드의 Is Valid 핀을 Move to Actor 노드에 연결합니다. Move to Actor 노드의 Acceptance Radius 를 50으로 설정합니다. Target 변수를 드래그하여 Move to Actor 노드의 Goal 핀에 연결합니다.

    Is Valid 노드의 Is Valid 핀을 Move to Actor 노드에 연결합니다

  12. Move to Actor 노드의 Filter Class 핀을 우클릭하고 변수로 승격(Promote to Variable) 을 선택합니다. 디테일(Details) 패널에서 인스턴스 편집가능(Instance Editable) 체크박스를 활성화합니다.

    Move to Actor 노드의 Filter Class 핀을 우클릭하고 변수로 승격을 선택합니다

    인스턴스 편집가능 체크박스를 활성화합니다

  13. 이벤트 그래프 를 우클릭한 뒤 이벤트 BeginPlay 를 검색하고 선택합니다. BeginPlay 이벤트 노드에서 드래그하여 MoveNPC 를 검색하고 선택합니다.

    이벤트 그래프를 우클릭한 뒤 이벤트 BeginPlay를 검색하고 선택합니다

    BeginPlay 이벤트 노드에서 드래그하여 MoveNPC를 검색하고 선택합니다

  14. 블루프린트를 컴파일(Compile) 하고 저장(Save) 합니다. 최종 블루프린트는 아래 이미지와 같습니다.

    최종 블루프린트 구성입니다

  15. BP_NPC_CustomZone 블루프린트를 레벨로 드래그합니다. 디테일(Details) 패널에서 Target 옆의 드롭다운을 클릭합니다. 아래와 같이 Sphere 를 검색하고 선택합니다.

    BP_NPC_CustomZone 블루프린트를 레벨로 드래그합니다

    디테일 패널에서 Target 옆의 드롭다운을 클릭합니다. Sphere를 검색하고 선택합니다

  16. 시뮬레이트(Simulate) 를 누르고 에이전트가 스피어(Sphere)를 향해 움직이는 것을 확인합니다.

    이제 에이전트가 스피어를 향해 이동합니다

섹션 결과

이 섹션에서는 목표를 향해 이동하고 내비게이션 쿼리 필터(Navigation Query Filter)를 사용하는 에이전트를 만들었습니다. 이제 커스텀 내비게이션 영역 및 쿼리 필터를 추가하는 방법을 학습할 준비가 되었습니다.

태그