자청의 유튜브 추출기

유튜브 영상의 자막과 AI요약을 추출해보세요

AI 채팅

BETA

언리얼 엔진 3인칭 게임: 적 AI 플레이어 추격 시스템 (Part 11)

게시일: 작성자: 자청의 유튜브 추출기

적 AI 추격 기능 만들기

이번 영상에서는 적이 플레이어를 쫓아오는 기능을 만들어 볼 거야.

1. AI 폴더 만들고 파일 준비하기

  1. 새 폴더 만들기: '커스텀 콘텐츠' 폴더 안에 'AI'라는 새 폴더를 만들어.
  2. 블랙보드 만들기: AI 폴더 안에서 마우스 오른쪽 버튼을 누르고 '아티피셜 인텔리전스' > '블랙보드'를 선택해. 이름은 BBI라고 지어줘.
    • 블랙보드: AI가 기억하고 사용할 정보(변수 같은 것)를 관리하는 곳이야.
  3. 비헤이비어 트리 만들기: AI 폴더 안에서 마우스 오른쪽 버튼을 누르고 '아티피셜 인텔리전스' > '비헤이비어 트리'를 선택해. 이름은 BT_Enemy라고 지어줘.
    • 비헤이비어 트리: AI가 실제로 어떻게 행동할지(이동, 공격 등)를 정하는 곳이야. 블랙보드에 있는 정보를 가져와서 사용해.

2. 블랙보드에 플레이어 정보 넣기

  1. BBI 블랙보드를 열어.
  2. 왼쪽 위에 있는 'New Key' 버튼을 눌러.
  3. 'Object'를 선택하고 키 이름을 Player라고 지어줘.
  4. 오른쪽 'Key Type' 메뉴를 열어서 'Base Class'를 BP_PlayerCharacter_C로 선택해.

3. 비헤이비어 트리로 플레이어 따라가기 설정하기

  1. BT_Enemy 비헤이비어 트리를 열어.
  2. 가장 위에 있는 'Root' 노드에서 선을 끌어내서 'Selector' 노드를 만들어.
    • Selector: 여러 행동 중에 하나라도 성공하면 전체를 성공으로 판단하는 노드야.
  3. 'Selector' 노드에서 선을 끌어내서 'Move To' 태스크를 만들어.
  4. 오른쪽 디테일 패널에서 'Blackboard' 섹션을 찾아.
  5. 'Blackboard Key' 드롭다운 메뉴에서 아까 만든 Player를 선택해줘.
    • 이제 적은 Player라는 정보를 보고 플레이어를 따라가려고 할 거야.

4. AI 컨트롤러 만들기

  1. AI 폴더에서 마우스 오른쪽 버튼을 누르고 'Blueprint Class'를 선택해.
  2. 'All Classes'를 누르고 'AI Controller'를 검색해서 선택해. 이름은 AIC_Enemy라고 지어줘.
  3. 이제 적 캐릭터 블루프린트(BP_Enemy)를 열어.
  4. 오른쪽 디테일 패널에서 'AI Controller Class'를 AIC_Enemy로 바꿔줘.
    • 이제 이 적 캐릭터는 AIC_Enemy 컨트롤러를 통해 움직일 수 있게 돼.

5. AI 컨트롤러에 블랙보드와 비헤이비어 트리 연결하기

  1. AIC_Enemy 블루프린트를 열어.
  2. 'Event BeginPlay' 노드에서 선을 끌어내서 'Use Blackboard' 노드를 만들어. 'Blackboard Asset'은 BBI로 설정해줘.
  3. 'Use Blackboard' 노드에서 선을 끌어내서 'Run Behavior Tree' 노드를 만들어. 'BTAsset'은 BT_Enemy로 설정해줘.
    • 이렇게 하면 AI 컨트롤러가 블랙보드와 비헤이비어 트리를 사용하게 돼.

6. 플레이어를 타겟으로 설정하는 이벤트 만들기

  1. AIC_Enemy 블루프린트에서 마우스 오른쪽 버튼을 누르고 'Add Custom Event'를 선택해. 이름은 SetTarget이라고 지어줘.
  2. 'SetTarget' 이벤트에서 선을 끌어내서 'Get Blackboard' 노드를 만들어.
  3. 'Get Blackboard' 노드에서 선을 끌어내서 'Set Value as Object' 노드를 만들어.
  4. 'Set Value as Object' 노드의 'Key Name'에 'Make Literal String' 노드를 연결하고, 문자열 값은 Player라고 입력해줘. (오타 조심!)
  5. 'SetTarget' 이벤트의 'Target' 핀을 'Set Value as Object' 노드의 'Value' 핀에 연결해줘.

7. 플레이어가 감지되면 타겟 설정하기

  1. 적 캐릭터 블루프린트(BP_Enemy)를 열어.
  2. 'Viewport' 탭에서 'Add' 버튼을 누르고 'Sphere Collision'을 추가해. 이름은 TempDetector라고 지어줘.
  3. TempDetector의 'Sphere Radius'를 500 정도로 키워줘. (이건 적이 플레이어를 감지할 범위야.)
  4. TempDetector를 선택한 상태에서 오른쪽 디테일 패널 맨 아래로 내려가.
  5. 'On Component Begin Overlap' 이벤트를 찾아 클릭해줘.
  6. 이벤트 그래프에 'On Component Begin Overlap' 이벤트가 생겼을 거야.
  7. 'Other Actor' 핀에서 선을 끌어내서 'Cast To BP_PlayerCharacter_C' 노드를 만들어.
  8. 'Cast To BP_PlayerCharacter_C' 노드에서 선을 끌어내서 'Get AI Controller' 노드를 만들어.
  9. 'Get AI Controller' 노드에서 선을 끌어내서 'Cast To AIC_Enemy' 노드를 만들어.
  10. 'Cast To AIC_Enemy' 노드에서 선을 끌어내서 'SetTarget' 이벤트를 만들어.
  11. 'Cast To BP_PlayerCharacter_C' 노드의 'As BP Player Character' 핀을 'SetTarget' 이벤트의 'Player' 핀에 연결해줘.

8. 길 찾기 설정하기

  1. 레벨에서 'Quick Add' 버튼을 눌러.
  2. 'Volumes' > 'Nav Mesh Bounds Volume'을 선택해.
  3. 이 볼륨의 크기를 키워서 적이 돌아다닐 수 있는 모든 영역을 덮도록 해줘.
  4. 레벨에서 이 볼륨을 선택하고 키보드 'P'를 누르면 초록색으로 표시될 거야. 이 초록색 영역 안에서 적은 길을 찾을 수 있어.

9. 테스트하기

이제 레벨을 실행하고 플레이어를 적 근처의 TempDetector 범위 안으로 들어가게 해봐. 그러면 적이 플레이어를 쫓아올 거야!

아직 애니메이션이 없어서 좀 어색하지만, 이렇게 해서 적이 플레이어를 따라다니게 만들었어. 다음 영상에서는 적의 애니메이션을 추가해 볼게!

최근 검색 기록