게임플레이 타기팅 시스템 레퍼런스
타기팅 요청 핸들
사용자가 비동기 타기팅 요청 을 시작하면 핸들 이 생성됩니다. 핸들은 타기팅 데이터 저장소 와 연결하는 데 사용됩니다. 데이터 저장소는 시스템과 작업이 타기팅 요청을 수행하기 위해 사용하는 일반 데이터 구조체의 템플릿 클래스입니다.
타기팅 핸들이 생성될 때 암시적으로 핸들을 해제하지 않습니다. 비동기 작업 데이터 또는 즉시 작업 데이터를 가져오고 콜백이 발동된 후 시스템이 해당 작업 데이터를 위해 핸들을 해제해야 한다는 것을 나타내는 플래그는 크리에이터가 설정해야 하며 일이며, 이외의 경우 사용자가 완료했을 때 핸들을 직접 해제해야 합니다.
타기팅 서브시스템
타기팅 서브시스템 은 비동기 타기팅 요청을 트래킹하고 즉시 타기팅 요청의 엔트리 포인트 역할을 수행합니다. 타기팅 서브시스템에는 활성 타기팅 요청에 대한 디버그 정보를 표시하는 데 도움이 되는 코드가 포함되어 있습니다.
타기팅 데이터 저장소
타기팅 데이터 저장소 는 타기팅 데이터 저장소를 정의하는 템플릿 구조체입니다. 타기팅 작업이 작업할 일반 데이터 세트를 추가, 제거, 업데이트할 수 있도록 유연한 방법을 제공하는 것이 목표입니다.
이를 통해 필요한 타기팅 목표를 달성하기 위하여 새로운 작업이나 베이스 프레임워크 아키타입에서 확장되는 작업을 작성함으로써 향후 게임이 성장할 수 있습니다.
나만의 커스텀 데이터 저장소를 생성하려면 #define 라이브러리에서 제공하는 보일러플레이트 코드가 필요합니다.
타기팅 시스템에는 3개의 데이터 저장소가 필수이며, 1개는 비동기 타기팅 요청에 필요합니다. 시스템이 타기팅 요청을 정상적으로 실행하기 전에 데이터 저장소가 설정되어야 합니다.
타기팅 작업
타기팅 작업 은 타기팅 프리셋을 구성합니다. 타기팅 작업은 타기팅 시퀀스 에서 재사용 가능한 작은 부분이어야 합니다. 타기팅 작업은 비헤이비어를 정의하기 위한 가상의 Init 및 Execute 함수를 가집니다.
여기에는 화면에 디버그 정보를 그리는 가상 함수가 포함되어 있습니다. 타기팅 작업은 일반적으로 다음 카테고리 중 하나에 해당합니다.
| 카테고리 | 설명 |
|---|---|
선택 |
선택 작업은 월드에서 액터를 선택하고 타깃 목록에 추가합니다. 플러그인이 제공하는 간단한 예시에는 라인 트레이스에 적중한 모든 액터 선택하기, 이펙트의 영역 내에 있는 모든 액터 선택하기, 소스 액터 선택하기 등이 있습니다. |
정렬 |
정렬 작업은 타깃 목록의 순서를 변경합니다. 플러그인이 제공하는 간단한 예시는 소스 액터에서의 거리를 기준으로 정렬하는 것입니다. |
필터링 |
필터링 작업을 통해 타깃 결과 데이터 세트를 특정 기준을 충족하는 타깃으로 추립니다. 플러그인이 제공하는 간단한 예시는 액터 클래스를 기준으로 필터링하는 것입니다. 플러그인은 가상 ShouldFilterTarget 함수를 사용한 필터링 작업을 위한 기본 템플릿도 제공합니다. |
플러그인이 제공하는 타기팅 작업에는 다음이 포함됩니다.
TargetingFilterTask_ActorClass |
RequiredActorClassFilters 목록의 클래스와 일치하지 않는 액터를 제거하거나, IgnoredActorClassFilters 목록의 클래스와 일치하는 액터를 제거하는 간단한 필터링 작업입니다. |
TargetingFilterTask_BasicFilterTemplate |
타깃이 목록에서 제거되어야 하면 true 를 반환하는 가상 함수 ShouldFilterTarget 이 포함된 필터링 작업의 템플릿입니다. |
TargetingFilterTask_SortByDistance |
소스 액터 위치에서의 거리를 기준으로 타깃 목록을 정렬합니다. TargetDefaultResultsData 에 거리를 Score 변수로 저장합니다. |
TargetingSelectionTask_AOE |
소스 액터 위치를 중심으로 하고 선택적 오프셋을 적용한 영역에 충돌하는 모든 액터를 가져오는 선택 작업입니다. 다양한 셰이프(박스, 원기둥, 스피어, 캡슐)를 지원하며, 컴포넌트 태그로 지정된 소스 액터의 컴포넌트를 사용하는 것도 지원합니다. |
TargetingSelectionTask_SourceActor |
타깃 목록에 소스 액터를 추가하는 선택 작업입니다. |
TargetingSelectionTask_Trace |
라인 트레이스에 적중하거나 첫 블로킹 히트(또는 그 엔드포인트)의 스윕에 해당하는 모든 액터를 추가하는 선택 작업입니다. 명시적으로 방향이 제공되지 않는 한, 트레이스는 소스 액터 위치에서 시작해 소스 액터의 정면 벡터(또는 폰인 경우, 폰의 제어 회전) 방향으로 트레이싱합니다. |
TargetingTaskSet |
타깃을 찾고 처리하기 위해 타기팅 요청이 사용하는 작업의 세트입니다. |
TargetingDefaultResultData |
단일 타깃을 나타내는 FHitResult 와 score 변수를 가지는 간단한 구조체입니다. |
TargetingDefaultResultsSet |
프레임워크 수준에서 구현된 작업이 사용하는 베이스 타기팅 결과 데이터입니다. 타기팅 요청을 완료하기 위해 작업이 추가, 제거, 정렬할 수 있는 데이터(결과 히트 / 점수) 배열을 제공합니다. |
TargetingSourceContext |
소스 액터, 인스티게이터, 위치 등 타기팅 요청에 대한 컨텍스트 데이터를 저장하는 구조체입니다. |
TargetingRequestData |
타기팅 요청과 관련된 데이터와 델리게이트를 저장하는 구조체이며, 타기팅 요청의 완료 여부와 완료 시 네이티브 및 블루프린트 콜백 또한 저장합니다. |
TargetingAsyncTaskData |
비동기 타기팅 요청을 위한 기록 데이터를 저장하는 구조체입니다. |
TargetingImmediateTaskData |
즉시 타기팅 요청에 대한 기록 데이터를 저장하는 구조체입니다. |