언리얼 AI

Woogle·2022년 11월 24일
0

언리얼 엔진 5

목록 보기
37/59

📄 Pawn

  • AI Controller에 의해 컨트롤되는 대상 (Body)
  • Pawn이 AI Controller를 가지고 있음

📄 AI Controller

  • AI가 빙의한 Pawn을 조종하는 의지 (Soul)
  • 보통 AI Controller 안에서 Behavior Tree가 실행됨

📄 Behavior Tree

  • Pawn의 상황에 따라 실행할 행동을 결정함 (Brain)
  • Blackboard 내의 key 값을 읽어 판단하고 Task를 실행함
  • Root(시작), Composite(규칙), Task(행동), Decorator(조건), Service(반복)

✏️ Root

  • Behavior tree의 시작점
  • 사용할 Blackboard 에셋을 지정함

✏️ Selector (Composite)

  • 왼쪽에서 오른쪽으로 실행. 자식 중 하나가 성공을 리턴하면 종료.
  • 어떤게 필요할지 결정한 다음 실행할 작업이나 브랜치를 선택할 때 유용

✏️ Sequence (Composite)

  • 왼쪽에서 오른쪽으로 실행. 자식 중 하나가 실패를 리턴하면 종료.
  • 하나라도 Failure가 발생하면 브랜치를 전부 취소하고 싶을 때 유용

✏️ Decorator

  • 연결된 Composite의 실행 여부를 설정
  • Blackboard based condition : Blackboard key 값이 어떨 때 브랜치를 실행할지
  • Flow Control : Aborts 조건과 범위를 설정

✏️ Service

  • 연결된 Composite가 실행되는 동안 반복적으로 실행
  • 보통 Blackboard 업데이트나 검사를 할 때 사용
  • Receive Tick AI : Interval마다 반복적으로 노드를 실행

✏️ Task

  • 실행할 동작
  • Receive Execute AI : 신호를 받아 노드를 실행
  • Finish Execute : Task를 종료하고 Success/Fail 여부를 반환

📄 Blackboard

  • Behavior Tree가 판단하는데 필요한 정보를 모아둔 저장 공간 (Memory)

✏️ Blackboard key

  • Behavior tree를 사용하는 모든 객체들이 공유하고 있는 기억 정보
  • Blackboard의 값은 변수명으로 접근하는 것이 아니라, key 값을 맵핑해주는 방식으로 설계됨
  • Set blackboard value as XXX : Task에서 key 값을 수정할 때 사용
  • Get blackboard value as XXX : Task에서 key 값을 읽을 때 사용

📄 Perception System

✏️ AI Perception

  • 주변 환경에 대한 변화를 감지하는 컴포넌트 (Sensor)
  • 부착하면 보는 것, 듣는 것, 데미지 감별, 팀 감별 등의 지각 능력을 갖게 됨.
  • Behavior tree와 통신하기 위해서는 On Target Perception Update 이벤트에서 블랙보드의 key를 수정하면 된다.

✏️ AI Perception Stimuli Source

  • AI Perception Component에서 감지한 변화에 대한 트리거를 만들 수 있음.

✏️ Nav Mesh Volume

  • AI의 길찾기가 실행되는 영역을 만들어 줌

참고자료

profile
노력하는 게임 개발자

0개의 댓글