개요
이 문서에서는 내비게이션 시스템(Navigation System)의 커스텀 영역(Custom Area)과 쿼리 필터(Query Filter)를 학습하기 위해 레벨과 AI 에이전트를 생성하는 준비 단계를 안내합니다.
이 가이드에서 다루는 머티리얼이 모두 포함된 전체 샘플 프로젝트를 다운로드할 수도 있습니다.
목적
-
새 레벨을 생성하고 레벨에 내비게이션 메시(Navigation Mesh) 액터를 배치하여 내비게이션을 구성합니다.
-
ThirdPersonCharacter 블루프린트를 수정하여 특정 쿼리 필터에 따라 타깃을 향해 이동하게 합니다.
1 - 필수 설정
-
언리얼 프로젝트 브라우저(Unreal Project Browser)의 새 프로젝트 카테고리(New Project Categories) 섹션에서 게임(Games) > 삼인칭(Third Person) 템플릿을 선택합니다.
-
블루프린트(Blueprint) 와 시작용 콘텐츠 없음(No Starter Content) 옵션을 선택한 뒤 생성(Create) 을 클릭합니다.
섹션 결과
새 삼인칭 프로젝트를 생성했으니 이제 영역 클래스와 내비게이션 쿼리 필터를 생성하는 방법을 학습할 준비가 되었습니다.
2 - 테스트 레벨 만들기
-
메뉴 바에서 파일(File) > 새 레벨(New Level) 을 클릭합니다.
-
기본(Basic) 레벨을 선택하고 생성(Create) 을 클릭합니다.
-
아웃라이너(Outliner) 에서 Floor 스태틱 메시 액터(Static Mesh Actor)를 선택하고 디테일(Details) 패널에서 스케일(Scale) 을 X = 10, Y = 10, Z = 1로 설정합니다.
-
액터 배치(Place Actors) 패널에서 NavMeshBoundsVolume 을 검색합니다. 볼륨을 레벨로 드래그하여 바닥 메시 위에 배치합니다.
-
NavMeshBoundsVolume 을 선택한 채로 디테일(Details) 패널에서 스케일(Scale) 을 X = 5, Y = 10, Z = 1으로 설정합니다.
-
액터 배치(Place Actors) 패널로 이동하고 셰이프(Shapes) 카테고리로 이동합니다. 스피어(Sphere ) 액터를 레벨로 드래그합니다.
섹션 결과
이 섹션에서는 새 레벨을 생성하고 내비게이션 메시와 스피어 액터를 추가했습니다. 이제 스피어 목표를 향해 걸어갈 에이전트를 만들 준비가 되었습니다.
3 - 에이전트 만들기
이 섹션에서는 타깃 액터를 향해 이동할 에이전트를 만듭니다.
-
콘텐츠 드로어(Content Drawer) 에서 우클릭하고 새 폴더(New Folder) 를 선택하여 새 폴더를 생성합니다. 폴더를 NavigationSystem 으로 명명합니다.
-
콘텐츠 드로어 에서 ThirdPersonBP > Blueprints 폴더로 이동하여 BP_ThirdPersonCharacter 블루프린트를 선택합니다. NavigationSystem 폴더로 드래그하고 여기에 복사(Copy Here) 옵션을 선택합니다.
-
NavigationSystem 폴더로 이동하여 블루프린트 이름을 BP_NPC_CustomZone 으로 변경합니다. 블루프린트를 더블클릭하여 열고 이벤트 그래프(Event Graph) 로 이동합니다. 모든 입력 노드를 선택해서 지웁니다.
-
이벤트 그래프 를 우클릭한 뒤 커스텀 이벤트 추가(Add Custom Event) 를 검색하고 선택합니다. 이벤트를 MoveNPC 로 명명합니다.
-
내 블루프린트(My Blueprint) 패널에서 변수(Variables) 옆의 추가(+) 버튼을 클릭하여 새 변수를 생성합니다. 변수를 Target 으로 명명합니다.
-
디테일(Details) 패널에서 변수 유형(Variable Type) 드롭다운을 클릭합니다. 액터(Actor) 를 검색하고 오브젝트 레퍼런스(Object Reference) 를 선택합니다. 인스턴스 편집가능(Instance Editable) 체크박스를 활성화합니다.
-
Target 변수를 이벤트 그래프(Event Graph) 로 드래그하고 Get Target 옵션을 선택합니다. Target 노드에서 드래그하여 아래와 같이 Is Valid 매크로를 검색하고 선택합니다.
-
이벤트 그래프(Event Graph) 를 우클릭한 뒤 셀프 레퍼런스 가져오기(Get reference to self) 를 검색하고 선택합니다.
-
Self 노드에서 드래그하여 Get AIController 를 검색하고 선택합니다.
-
AIController 노드에서 드래그하여 Move to Actor 를 검색하고 선택합니다.
-
Is Valid 노드의 Is Valid 핀을 Move to Actor 노드에 연결합니다. Move to Actor 노드의 Acceptance Radius 를 50으로 설정합니다. Target 변수를 드래그하여 Move to Actor 노드의 Goal 핀에 연결합니다.
-
Move to Actor 노드의 Filter Class 핀을 우클릭하고 변수로 승격(Promote to Variable) 을 선택합니다. 디테일(Details) 패널에서 인스턴스 편집가능(Instance Editable) 체크박스를 활성화합니다.
-
이벤트 그래프 를 우클릭한 뒤 이벤트 BeginPlay 를 검색하고 선택합니다. BeginPlay 이벤트 노드에서 드래그하여 MoveNPC 를 검색하고 선택합니다.
-
블루프린트를 컴파일(Compile) 하고 저장(Save) 합니다. 최종 블루프린트는 아래 이미지와 같습니다.
-
BP_NPC_CustomZone 블루프린트를 레벨로 드래그합니다. 디테일(Details) 패널에서 Target 옆의 드롭다운을 클릭합니다. 아래와 같이 Sphere 를 검색하고 선택합니다.
-
시뮬레이트(Simulate) 를 누르고 에이전트가 스피어(Sphere)를 향해 움직이는 것을 확인합니다.
섹션 결과
이 섹션에서는 목표를 향해 이동하고 내비게이션 쿼리 필터(Navigation Query Filter)를 사용하는 에이전트를 만들었습니다. 이제 커스텀 내비게이션 영역 및 쿼리 필터를 추가하는 방법을 학습할 준비가 되었습니다.