[내일배움캠프/AI] AI - 2

김세희·2025년 7월 24일

✍️Today I Learned

언리얼 AI - 2


AI - 1에 이어 AI 시야 감지 후 이동을 구현하는 파트이다.

AI의 작동 프로세스

  1. Blackboard 저장소 기반으로
  2. Behavior tree에 의해 의사 결정
  3. AI Controller가 실제로 명령을 내리면
  4. Character가 동작한다.

4. BlackBoard

AI의 기억, AI가 감지한 것을 저장하는 곳이다.
실시간 업데이트 및 AI 끼리 공유가 가능하다. 이 블루프린트에서 정보를 저장할 변수를 key로 정의한다.
SelfActor: 지금 블랙보드를 바라보는 AI 자기자신을 가리키는 포인터. 언리얼이 자동으로 넣어주는 포인터다.
AI Controller에서 디폴트 블랙보드 에셋을 설정해줘야 AI들이 해당 블랙보드를 사용할 수 있다.

5. Behavior Tree

AI의 의사 결정 트리, AI의 행동 설계 공간이다.

Behavior Tree Node

  1. 루트 노드
    비해비어 트리의 시작점 역할을 하는 노드이다. 해당 트리의 고유한 노드이며 하나의 연결만 가질 수 있다. 다른 데코레이터나 서비스 노드의 어태치를 지원하지 않지만 여기서 비해비어 트리의 블랙보드 에셋을 설정할 수 있다.
  2. 컴포짓 노드
    분기의 루트와 해당 분기가 실행되는 방식의 기본 규칙을 정의한다.
    1. Selector
    왼쪽에서 오른쪽 순서로 자손을 실행한다. 자손 중 하나가 성공하면 실행을 중단하며 셀렉터도 성공으로 처리된다. 모든 자손이 실패하면 셀렉터도 실패한다.
    2. Sequence
    왼쪽에서 오른쪽 순서로 자손을 실행한다. 자손이 하나라도 실패하면 시퀀스도 실패하며 자손이 모두 성공해야 시퀀스도 성공한다.
    3. Simple Parallel
    메인 태스크 노드 하나를 전체 트리와 함께 실행한다. 메인 태스크가 완료되면 모드 완료 세팅에 따라 보조 트리를 중단하고 즉시 완료되거나 보조트리가 완료될 때까지 대기한다.
  3. 태스크 노드
    비해비어 트리의 리프이다. 실행할 수 있는 액션을 나타내며 출력 연결을 갖지 않는다.
  4. 데코레이터 노드
    조건식이다. 다른 노드에 어태치되어 트리의 분기나 단일 노드의 실행 여부를 결정한다.
  5. 서비스 노드
    컴포짓 노드에 어태치되며 자신의 분기가 실행되는 동안에 한해 정의된 주기로 실행된다. 보통 블랙보드의 확인과 업데이트에 사용된다. 이 노드는 병렬 노드를 대체한다.

출처: 스파르타코딩 내일배움캠프

0개의 댓글