언어:
페이지 정보
엔진 버전:
언리얼 엔진

11. 서비스 생성

언리얼 엔진

Service, 서비스는 Composite 노드에 붙으며, 분기 실행 도중 정해진 빈도대로 실행합니다. 종종 블랙보드 검사 및 업데이트에 사용됩니다. 다른 비헤이비어 트리 시스템의 전통적인 Parrallel 노드에 해당하는 노드입니다.

여기서 서비스는 AI 캐릭터가 아닌 을 찾은 다음, TargetToFollow 와 TargetLocation 블랙보드 키를 설정합니다.

단계

  1. 콘텐츠 브라우저 에서 FollowerBT 비헤이비어 트리를 더블클릭 하여 엽니다.

  2. 새 서비스 버튼을 클릭합니다.

    비헤이비어 트리와 같은 폴더에 생성됩니다.

  3. 콘텐츠 브라우저 에서 그 이름을 "AgroCheck" 로 변경합니다.

  4. 에디터가 이미 그것이 편집가능한 상태로 열려있을 것이지만, 그렇지 않은 경우 콘텐츠 브라우저 에서 더블클릭 해 줍니다.

  5. 다음과 같이 그래프를 만들어 줍니다:

    Copy Example

    이미지를 클릭하면 확대, 또는 여기 를 클릭하면 새 창에서 엽니다.

    variables.png

    이 블루프린트에 대한 변수 이름, 유형, 값입니다:

    변수 이름

    유형

    DesiredObjectTypes

    EObjectTypeQuery 배열

    Pawn 으로 설정된 항목 하나

    MyLocation

    Vector 3

    0,0,0

    AI_CON_Ref

    Follower_AI_CON_C

    None

    TargetToFollow

    BlackboardKeySelector

    None - 하지만 이 값은 "편집가능" 옵션이 True 로 설정되어 있어서, 비헤이비어 트리에서 인스턴스별로 변경 가능합니다.

    TargetLocation

    BlackboardKeySelector

    None - 하지만 이 값은 "편집가능" 옵션이 True 로 설정되어 있어서, 비헤이비어 트리에서 인스턴스별로 변경 가능합니다.

DesiredObjectTypes 변수는 하나의 엘리먼트가 Pawn 으로 설정된 EObjectTypeQuery 유형의 배열입니다. 이렇게 하려면, 내 블루프린트 패널에서 DesiredObjectTypes 변수를 선택한 다음, 디테일 패널에서 Default Value 카테고리 아래 plus_button.png 버튼을 눌러 엘리먼트를 추가합니다. 그 엘리먼트의 풀다운 버튼을 누른 다음 Pawn 을 선택합니다.

Default Values 카테고리에 아무것도 표시되지 않는다면, 블루프린트를 컴파일하세요.

이 그래프에서 벌어지는 일은 이렇습니다:

  1. Event Tick 은 액터에서도 동일하게 작동하나, 비헤이비어 트리에 정의된 속도로 틱이 일어납니다.

  2. 전달된 Owner Actor 는 항상 비헤이비어 트리를 호출하는 컨트롤러이니, 그것을 저장합시다.

  3. 제어되는 폰의 위치를 기반으로 Multi Sphere Trace for Objects 를 하고, 모든 폰을 구한 다음, 제어되는 폰을 뺍니다.

  4. 그런 다음 For Each 루프로 플레이어가 걸렸는지 알아냅니다.

  5. 그렇다면 AI 폰이 플레이어 폰을 볼 수 있는지, 가시성 검사를 합니다.

  6. 볼 수 있다면, AI 폰에 대한 블랙보드 오브젝트에 (Target to FollowTarget Location) 값을 적절히 설정해 줍니다.

  7. 볼 수 없다면, 블랙보드의 Target to Follow 키를 비워줍니다.