AI 퍼셉션

이 문서에서는 AI 퍼셉션 컴포넌트를 소개하고 이를 사용하여 AI 인지 기능을 생성하는 방법에 대해 설명합니다.

Choose your operating system:

Windows

macOS

Linux

AI에 감각 데이터를 제공하는 AI 프레임워크에서는 실행할 로직을 결정하는 용도의 비헤이비어 트리와 환경 정보를 구하는 용도의 인바이런먼트 쿼리 시스템(EQS) 외에도 AI 퍼셉션 시스템(AI Perception System) 을 사용할 수 있습니다. 이를 통해 폰은 노이즈가 어디에서 발생하는지, AI가 대미지를 입었는지, AI가 무엇을 보는지 등의 데이터를 환경에서 수신합니다. 이 같은 데이터 수집은 자극 리스너 역할을 하고 등록된 자극 소스(Stimuli Source)를 수집하는 AI 퍼셉션 컴포넌트(AI Perception Component) 에서 수행합니다.

자극 소스가 등록되면 퍼셉션 업데이트 시(On Perception Updated) 또는 타깃이 선택된 경우 타깃 퍼셉션 업데이트 시(On Target Perception Updated) 이벤트를 호출하여 새 블루프린트 스크립트를 실행하거나 비헤이비어 트리의 브랜치를 검증하는 데 사용되는 변수를 업데이트할 수 있습니다.

AI 퍼셉션 컴포넌트

AI 퍼셉션 컴포넌트컴포넌트(Component) 창에서 폰의 AIController 블루프린트에 추가할 수 있는 컴포넌트 의 한 가지 유형으로서 리스닝할 감각, 해당 감각의 파라미터, 감각이 탐지됐을 때의 반응 방식 등을 정의하는 데 사용됩니다. 또한 다양한 함수를 사용하여 무엇이 감각되었는지, 어떤 액터가 감각되었는지에 대한 정보를 얻거나 특정 감각 유형을 활성화 또는 비활성화할 수도 있습니다.

AI 퍼셉션 컴포넌트 를 추가하려면 +추가(+Add) 버튼을 블루프린트에서 클릭한 후 AIPerception 을 선택합니다.

블루프린트에서 +추가 버튼을 클릭한 후 AIPerception을 선택합니다

AI 퍼셉션 컴포넌트 를 추가한 다음에는 디테일(Details) 패널에서 해당 프로퍼티에 액세스할 수 있습니다.

AI 퍼셉션 프로퍼티

디테일(Details) 패널에서 사용 가능한 AI 퍼셉션 컴포넌트 의 일반 프로퍼티 외에도 AI 퍼셉션(AI Perception)감각 환경설정(Senses Config) 섹션에서 인지할 감각(Senses) 유형을 추가할 수 있습니다. 감각 유형에 따라 감각 의 인지 방식을 조정하는 다양한 프로퍼티를 사용할 수 있습니다.

감각 유형에 따라 감각의 인지 방식을 조정하는 다양한 프로퍼티를 사용할 수 있습니다

주도적인 감각(Dominant Sense) 프로퍼티를 사용하면 감각된 액터의 위치를 결정할 때 다른 감각보다 우선할 감각 을 할당할 수 있습니다. 이는 감각 환경설정 섹션에서 환경설정한 감각 가운데 하나로 설정하거나 없음(None) 으로 설정해야 합니다.

AI 대미지

AI가 이벤트 모든 대미지(Event Any Damage) , 이벤트 포인트 대미지(Event Point Damage) , 이벤트 방사상 대미지(Event Radial Damage) 같은 대미지 이벤트에 반응하게 하려면 AI 대미지 감각 환경설정(AI Damage Sense Config) 을 사용합니다. 구현 프로퍼티(디폴트는 엔진 클래스 AISense_Damage )를 사용하여 대미지 이벤트가 처리되는 방식을 결정할 수도 있지만, C++ 코드로 자체적인 대미지 클래스를 생성할 수도 있습니다.

AI 대미지 감각 환경설정을 사용할 수 있습니다

프로퍼티

설명

구현(Implementation)

이 엔트리에 사용할 AI 감각 클래스입니다. 디폴트는 AISense_Damage 입니다.

디버그 컬러

AI 디버깅 툴을 사용할 때 디버그 라인을 그릴 색입니다.

최대 수명

이 감각으로 생성된 자극이 잊히기까지의 기간을 결정합니다. 0이면 절대 잊히지 않습니다.

활성화 상태로 시작

지정된 감각이 활성화 상태에서 시작하는지, 수동으로 활성화 또는 비활성화해야 하는지 결정합니다.

AI 청각

AI 청각(AI Hearing) 감각은 노이즈 이벤트 보고(Report Noise Event) 에서 생성된 사운드를 탐지하는 데 사용됩니다. 예를 들어 발사체가 무언가에 부딪혀서 내는 소리를 AI 청각 감각으로 등록할 수 있습니다.

AI 청각 감각은 노이즈 이벤트 보고에서 생성된 사운드를 탐지하는 데 사용됩니다

프로퍼티

설명

구현

이 엔트리에 사용할 AI 감각 클래스입니다. 디폴트는 AISense_Hearing 입니다.

청각 범위(Hearing Range)

이 감각이 AI 퍼셉션 시스템에서 지각될 수 있는 거리입니다.

Lo SHearing 범위

디버거에서 청각 범위 의 다른 반경을 표시하는 데 사용됩니다.

소속별 탐지(Detection by Affiliation)

적(Enemies), 중립자(Neutrals), 아군(Friendlies) 이 이 감각을 트리거할 수 있는지 결정합니다.

디버그 컬러

AI 디버깅 툴을 사용할 때 디버그 라인을 그릴 색입니다.

최대 수명

이 감각으로 생성된 자극이 잊히기까지의 기간을 결정합니다. 0이면 절대 잊히지 않습니다.

활성화 상태로 시작

지정된 감각이 활성화 상태에서 시작하는지, 수동으로 활성화 또는 비활성화해야 하는지 결정합니다.

AI 예측(AI Prediction)

PredictionTime(초)에 PredictedActor의 예측된 위치로 요청자(Requestor)를 제공하도록 퍼셉션 시스템에 요청합니다.

PredictionTime(초)에 PredictedActor의 예측된 위치로 요청자(Requestor)를 제공하도록 퍼셉션 시스템에 요청합니다

프로퍼티

설명

디버그 컬러

AI 디버깅 툴을 사용할 때 디버그 라인을 그릴 색입니다.

최대 수명

이 감각으로 생성된 자극이 잊히기까지의 기간을 결정합니다. 0이면 절대 잊히지 않습니다.

활성화 상태로 시작

지정된 감각이 활성화 상태에서 시작하는지, 수동으로 활성화 또는 비활성화해야 하는지 결정합니다.

AI 시각

AI 시각(AI Sight) 구성은 AI 캐릭터가 레벨에서 사물을 '보게' 하는 파라미터를 정의합니다. 액터가 시각 반경(Sight Radius) 에 들어가면 AI 퍼셉션 시스템이 업데이트 신호를 보내고 발견된 액터를 통과합니다(예: 플레이어가 반경에 들어가서 시각 퍼셉션이 있는 AI에게 인지된 경우).

AI 시각(AI Sight) 구성은 AI 캐릭터가 레벨에서 사물을 '보게' 하는 파라미터를 정의합니다

프로퍼티

설명

구현

이 엔트리에 대해 사용할 AI 감각 클래스입니다(디폴트는 AISense_Sight ).

시각 반경

이 감각이 인지되기 시작하는 최대 거리입니다.

시각 상실 반경

타깃이 더 이상 시각으로 인지되지 않는 최대 거리입니다.

주변 시야 반각

AI가 측면으로 몇 도까지 볼 수 있는지 지정합니다. 이 값은 전체 범위가 아니라 전방 벡터에 대해 측정된 각도를 나타냅니다.

블루프린트에서 SetPeripheralVisionAngle 을 사용하여 런타임에 이 값을 변경할 수 있습니다.

소속별 탐지

적, 중립, 아군 이 이 감각을 트리거할 수 있는지 결정합니다.

이 프로퍼티를 사용하여 팀의 시각 인지를 구성할 수 있습니다. 현재 소속(Affiliation) 은 C++에서만 정의할 수 있습니다. 블루프린트에서는 중립 탐지(Detect Neutrals) 옵션으로 모든 액터를 탐지한 후 태그(Tags) 를 사용하여 액터 타입을 필터로 걸러내세요.

마지막으로 본 위치에서 범위 자동 성공

이 값이 0보다 크다면, AI는 한 번 발견한 타깃이 여기 지정된 범위 내에 있는 한 항상 볼 수 있습니다.

시점 백워드 오프셋

시점이 원뿔 계산을 위해 뒤로 이동할 거리입니다. 근접 클리핑 거리에 따라 근접한 대상 인지 및 주변 시야 역할을 합니다.

근거리 클리핑 반경

시점 백워드 오프셋과 함께 사용하는 근접 클리핑 거리입니다. 근접한 대상 인지 및 주변 시야 역할을 합니다.

디버그 컬러

AI 디버깅 툴을 사용할 때 디버그 라인을 그릴 색입니다.

최대 수명

이 감각으로 생성된 자극이 잊히기까지의 기간을 결정합니다. 0이면 절대 잊히지 않습니다.

활성화 상태로 시작

지정된 감각이 활성화 상태에서 시작하는지, 수동으로 활성화 또는 비활성화해야 하는지 결정합니다.

AI 팀

같은 팀의 누군가가 근접해 있으면 퍼셉션 컴포넌트 오너에게 알림을 보냅니다. 반경은 해당 이벤트를 전송하는 게임플레이 코드에 의해 전송됩니다.

퍼셉션 컴포넌트 오너에게 같은 팀의 누군가가 근접해 있다는 알림을 보냅니다

프로퍼티

설명

디버그 컬러

AI 디버깅 툴을 사용할 때 디버그 라인을 그릴 색입니다.

최대 수명

이 감각으로 생성된 자극이 잊히기까지의 기간을 결정합니다. 0이면 절대 잊히지 않습니다.

활성화 상태로 시작

지정된 감각이 활성화 상태에서 시작하는지, 수동으로 활성화 또는 비활성화해야 하는지 결정합니다.

AI 촉각

AI 촉각(AI Touch) 은 AI가 무언가 또는 누군가와 부딪힐 때 이를 탐지하는 기능을 부여하는 환경설정 세팅입니다. 예를 들어 잠입 게임에서는 플레이어가 적 AI에 닿지 않고 몰래 침투해야 할 수 있습니다. 이 감각을 사용하면 플레이어가 AI에 닿을 때를 판별하여 다양한 로직으로 반응하게 만들 수 있습니다.

AI 촉각은 AI가 무언가 또는 누군가와 부딪힐 때 이를 탐지하는 기능을 부여하는 환경설정 세팅입니다

프로퍼티

설명

디버그 컬러

AI 디버깅 툴을 사용할 때 디버그 라인을 그릴 색입니다.

최대 수명

이 감각으로 생성된 자극이 잊히기까지의 기간을 결정합니다. 0이면 절대 잊히지 않습니다.

활성화 상태로 시작

지정된 감각이 활성화 상태에서 시작하는지, 수동으로 활성화 또는 비활성화해야 하는지 결정합니다.

퍼셉션 이벤트

이벤트(Events) 섹션에서는 AI 퍼셉션 시스템이 업데이트를 수신하거나 AI 퍼셉션 컴포넌트가 활성화 또는 비활성화되어 있을 때 어떤 일이 일어나는지 정의할 수 있습니다.

이벤트 섹션에서는 AI 퍼셉션 시스템이 업데이트를 수신하거나 AI 퍼셉션 컴포넌트가 활성화 또는 비활성화되어 있을 때 어떤 일이 일어나는지 정의할 수 있습니다

프로퍼티

설명

퍼셉션 업데이트 시(On Perception Updated)

퍼셉션 업데이트 시

이 이벤트는 퍼셉션 시스템이 업데이트를 수신할 때 실행되어 업데이트 신호를 보낸 액터 배열을 반환합니다.

타깃 퍼셉션 정보 업데이트 시(On Target Perception Info Updated)

타깃 퍼셉션 정보 업데이트 이벤트

해당 타깃에 대한 퍼셉션 정보가 업데이트되었다고 바인딩된 모든 오브젝트에 알립니다. 이 알림은 수신되는 모든 자극에 대해, 또는 자극 환경설정에 따라 스테이트가 변경될 때 브로드캐스트됩니다.

타깃 퍼셉션 업데이트 시

타깃 퍼셉션 업데이트 시

이 이벤트는 퍼셉션 시스템이 업데이트를 수신할 때 실행되어 업데이트 신호를 보낸 액터를 반환합니다. 또한 분석하여 추가 정보를 얻을 수 있는 AI 자극(AI Stimulus) 구조체도 반환합니다.

타깃 퍼셉션 자극 이벤트

프로퍼티

설명

수명

자극이 발생한 후 경과한 시간입니다.

만료 수명(Expiration Age)

자극이 무효화되기까지 걸리는 시간입니다.

세기

자극에서 정의된 가중치입니다.

자극 위치

자극이 발생한 위치입니다.

리시버 위치

AI 퍼셉션 시스템에서 자극을 등록한 위치입니다.

태그

자극과 관련된 게임플레이 태그입니다.

감각 성공 여부

자극이 AI 퍼셉션 시스템으로 감각되었는지 여부입니다. True 또는 False를 반환합니다.

컴포넌트 활성화 시

AI 퍼셉션 컴포넌트가 활성화될 때 발생하는 이벤트입니다.

컴포넌트 비활성화 시

AI 퍼셉션 컴포넌트가 비활성화되었을 때 발생하는 이벤트입니다.

퍼셉션 함수 호출

다음 함수는 블루프린트를 통해 호출되어 퍼셉션 시스템에서 정보를 구하거나 퍼셉션 시스템에 영향을 미칠 수 있습니다.

함수

설명

액터 퍼셉션 구하기(Get Actors Perception)

지정된 액터에 대해 무엇이 감각되었는지 구하고 감각된 액터의 데이터 구조체를 반환합니다.

현재 인지된 액터 구하기(Get Currently Perceived Actors)

지정된 감각을 바탕으로 인지되고 있는 모든 액터를 반환합니다. 감각을 지정하지 않으면 어떤 방식으로든 현재 인지되고 있는 액터가 모두 반환됩니다.

알려진 인지된 액터 구하기(Get Known Perceived Actors)

지정된 감각을 바탕으로 인지되었고 아직 잊히지 않은 모든 액터를 반환합니다. 감각을 지정하지 않으면 인지된 액터가 모두 반환됩니다.

인지된 적대 액터 구하기(Get Perceived Hostile Actors)

만료되지 않았거나 성공적으로 감각된 자극이 있는 적대 액터의 목록을 반환합니다. 사용자가 원하는 액터 목록을 반환하도록 블루프린트에서 메서드를 오버라이드할 수 있습니다.

자극 리스너 업데이트 요청(Request Stimuli Listener Update)

AI 퍼셉션 시스템이 지정된 타깃 자극 리스너에 대해 프로퍼티를 업데이트하도록 수동으로 강제합니다.

감각 활성화 설정(Set Sense Enabled)

지정된 감각 클래스(Sense Class) 를 활성화하거나 비활성화합니다.

지정된 감각이 타깃 컴포넌트 인스턴스에 대해 이미 환경설정된 경우에만 작동합니다.

자극 소스

AI 퍼셉션 자극 소스(AI Perception Stimuli Source) 컴포넌트를 사용하면 소유 액터가 스스로를 자동으로 퍼셉션 시스템 내에서 지정된 감각에 대한 자극 소스로 등록할 수 있습니다. 사용 사례의 예시로는 시각 기반 자극을 인지하도록 구성된 AI 퍼셉션 컴포넌트를 가진 AI 캐릭터를 만드는 것을 들 수 있습니다. 그런 다음 아이템 획득 액터 등 액터 내의 스티뮬라이 소스 컴포넌트를 시각에 대한 자극으로 등록합니다. 그러면 AI가 해당 액터를 레벨 내에서 '볼' 수 있게 됩니다.

AI 퍼셉션 스티뮬라이 소스 컴포넌트를 추가하려면 블루프린트에서 +추가(+Add) 버튼을 클릭한 후 AI 퍼셉션 자극 소스 를 선택합니다.

블루프린트에서 +추가 버튼을 클릭한 후 AI 퍼셉션 자극 소스를 선택합니다

AI 퍼셉션 자극 소스 컴포넌트를 추가하면 디테일(Details) 패널에서 해당 프로퍼티에 액세스할 수 있습니다.

자극 프로퍼티

AI 퍼셉션 스티뮬라이 소스 컴포넌트에 대한 디테일(Details) 패널에서는 AI 퍼셉션에 대해 다음 두 가지 옵션을 사용할 수 있습니다.

AI 퍼셉션 스티뮬라이 소스 컴포넌트에 대한 디테일 패널에서는 AI 퍼셉션에 대해 다음 두 가지 옵션을 사용할 수 있습니다

프로퍼티

설명

소스로 자동 등록(Auto Register as Source)

지정된 감각의 자극을 소유 액터에 대해 자동으로 등록할지 여부입니다.

감각에 대한 소스로 등록

소스로 등록할 감각 배열입니다. + 기호를 클릭하여 소스를 추가한 후 드롭다운을 클릭하여 원하는 감각을 할당합니다.

감각에 대한 소스로 등록

AISense 클래스를 베이스로 하는 커스텀 감각도 할당할 수 있습니다.

자극 함수 호출

다음 함수는 블루프린트를 통해 AI 퍼셉션 자극 소스 컴포넌트에 호출될 수 있습니다.

함수

설명

감각에 대해 등록(Register for Sense)

소유 액터를 지정된 감각 클래스의 자극 소스로 등록합니다.

퍼셉션 시스템에 등록(Register with Perception System)

감각에 대해 등록 함수 호출을 통해 소유 액터를 감각에 대한 소스로 등록 프로퍼티에 지정된 감각의 자극 소스로 등록합니다.

'소스로 자동 등록' 프로퍼티가 활성화되어 있는 경우 이 함수를 호출할 필요가 없습니다.

퍼셉션 시스템에서 등록 해제(Unregister from Perception System)

소유 액터를 감각 자극의 소스에서 등록 해제합니다.

감각에서 등록 해제(Unregister from Sense)

지정된 감각의 자극을 소유 액터에 대해 등록 해제합니다.

AI 퍼셉션 디버깅

게임이 실행 중일 때 '(아포스트로피)를 눌러 AI 디버깅 툴로 AI 퍼셉션을 디버깅할 수 있습니다. 퍼셉션 정보를 표시하려면 숫자 패드 4를 누르면 됩니다.

AI 퍼셉션 디버깅

자세한 내용은 AI 디버깅 툴 페이지와 퍼셉션 섹션을 참고하세요.