11. 서비스 생성

11 단계. 서비스 생성

Windows
MacOS
Linux
On this page

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 키를 비워줍니다.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback