UE4 Chapter 5-1. 보스 AI : 블루프린트 생성 및 애니메이션 세팅

Date:     Updated:

카테고리:

태그:

인프런에 있는 황대희님의 언리얼 엔진4 3D 횡스크롤 게임 만들기 강의를 듣고 정리한 필기입니다. 😀
언리얼 엔진 공식 문서 https://docs.unrealengine.com/ko/index.html

보스 만들 준비

🔔 에셋 임포트

보스의 Mesh와 애니메이션들을 드래그 해 가져왔다. 임포트할 때 애니메이션의 Skeleton을 보스의 뼈대로 설정해주는 것 잊지 말기.


🔔 블루프린트 생성

기존 몬스터와 비슷한 부분이 많기 때문에 몬스터 블루프린트를 복사해서 생성할 것이다.

  • 보스의 블루프린트
    • 몬스터의 블루프린트인 “DefaultMonsterBP”를 복붙하여 이름만 변경해주었다.
      • 몬스터의 블루프린트를 복사해서 만들었기 때문에, 플레이어를 쫓아가서 공격하거나 맞으면 빨개지거나 하는 몬스터의 기능들을 그대로 보스도 기능하게 된다!
    • 이름 “Boss1MonsterBP”
  • 보스의 애니메이션 블루프린트
    • 몬스터와 Skeleton이 다르기 때문에 애니메이션 블루프린트는 복사해서 만들지 못한다. 아예 새로 만들어주기.
    • 이름 “Boss1MonsterAnimBP”
    • 보스 Skeleton 선택.


🚩 “Boss1MonsterBP” 블루프린트

image

  • Mesh를 보스로 바꿔 주기
    • 몬스터의 블루프린트인 “DefaultMonsterBP”를 복사해서 만든 것이기 때문에 일단 Mesh를 몬스터가 아닌 보스로 바꿔주어야 한다.
    • “mutant”로 변경
  • 보스는 칼을 안쓸거라 칼 Mesh 를 삭제했다.
  • 애니메이션 블루 프린트를 "Boss1MonsterAnimBP"로 설정
  • 크기를 (1, 1, 1)로 키워주었다.


🔔 블루프린트 설정

애니메이션 블루프린트

🚩 “Boss1MonsterAnimBP” 애니메이션 블루프린트 이벤트 그래프

image

Skeleton이 달라 아예 몬스터의 애니메이션 블루프린트를 복사해서 만들진 못했지만 몬스터의 애니메이션 블루프린트의 이벤트 그래프의 전체 노드들을 전부 복사해서 붙여넣어 주었다. 몬스터랑 애니메이션 방식도 거의 똑같아서..

  • 단, Speed 변수는 따로 “Boss1MonsterAnimBP” 애니메이션 블루프린트의 변수로 추가하여 다시 Set Speed 노드를 새롭게 추가해 주었다.
    • Speed 변수 값은 Idle 애니메이션에서 Walk 애니메이션으로, Wlake 애니메이션에서 idle 애니메이션으로 바뀌는 조건에 사용될 것이다.
      • Try Get Pawn Owner 의 속도의 크기를 Speed에 할당. 즉, 자기 자신(보스)의 속도 크기를 할당하게 된다.
      • BluePrint Update Animation 이벤트에 의해 매 프레임마다 Speed 할당이 실행됨.
  • 복사 해온 노드들의 세부적인 값을 수정하는 일은 밑에서 할 것.


정지 👉 걷기, 걷기 👉 정지 애니메이션

🚩 “Boss1MonsterAnimBP” 애니메이션 블루프린트 애님 그래프

image

애님 몽타주를 사용할 것이기 때문에 DefaultSlot 슬롯과 함께 상태 머신을 추가하여 애니메이션 재생시킬 준비.

image

image

image

  • 상태 머신
    • 정지 👉 걷기 : Speed이 0.1 보다 작을 때
    • 걷기 👉 정지 : Speed이 0.1 보다 클 때


🚩 “mutant_walking” 애니메이션 파일

마찬가지로 보스의 걷기 애니메이션은 앞으로 뚜벅 뚜벅 걷는 애니메이션이기 때문에 이동을 한다. 따라서 이동 속도 변경 스크립팅에 영향가지 않도록 루트 모션을 잠궈주자.

image


보스의 애님 몽타주 생성

  1. 죽는 애님 몽타주 “mutant_dying_Montage”
  2. 스킬 사용하기 전에 준비 자세인 애님 몽타주 “mutant_flexing_muscles_Montage”
  3. 기본 공격으로 사용할 애님 몽타주 “mutant_punch_Montage”
  4. 스킬 공격으로 사용할 애님 몽타주 “mutant_swiping_Montage”


보스의 블루프린트 세부적인 설정들 바꿔주기

🚩 “Boss1MonsterBP” 블루프린트

몬스터의 블루프린트인 “DefaultMonsterBP”를 복붙해서 만든 블루프린트이므로 노드의 세부적인 값들을 몬스터에 맞게 다 바꿔주어야 한다. Ctrl + F로 노드들을 찾아서 다 바꿔주자.

  • Play Montage 노드의 재생할 몽타주들을 보스의 애님 몽타주들로 상황에 맞게 다 바꿔 주었다.


image

몬스터 애니메이션 블루프린트로부터 복사 해온 노드들이다. 노티파이 이벤트 노드들도 있으므로 몬스터 몽타주에서 설정했던 것처럼 애님 보스의 공격 애님 몽타주에도 노티파이 이벤트를 추가해주자.

  • OnCollStart_Attack
    • 공격 애니메이션의 주먹을 휘두르기 시작하는 부분
    • 이 부분부터 충돌 처리가 가능해져야 하기 때문에 발생시킨 노티파이
  • OnCollEnd_Attack
    • 공격 애니메이션의 주먹을 다 휘두른 부분
    • 이 부분부터 충돌 처리를 다시 막아두어야 하기 때문에 발생시킨 노티파이
  • OnAnimEnd_Attack
    • 공격 애니메이션이 전부 완료되는 끝 부분
    • 이 부분부터 공격이 끝났다고 간주하고 플레이어를 쫓아갈지 마저 반복적으로 공격 애니메이션을 재생할지 결정해야 하기 때문에 발생시킨 노티파이

🚩 “mutant_punch_Montage” 보스의 공격 애님 몽타주

image

🚩 “Boss1MonsterAnimBP” 애니메이션 블루프린트 이벤트 그래프

image

각각의 노티파이 이벤트 발생이 “Boss1MonsterBP”의 동명의 커스텀 이벤트 발생으로 이어질 수 있도록 노드를 수정. (“Boss1MonsterBP”로 형변환하여 다시 이어줌)

🚩 “mutant_dying_Montage” 보스의 죽는 애님 몽타주

image

죽는 애니메이션 중 쓰러진 끝 부분만 무한 반복 재생되게 하기. 죽어도 다시 상태 머신에 의하여 Idle 애니메이션을 재생하지 않게끔. 끝 부분에 Loop 이라는 이름의 섹션 추가하여 반복 재생.



🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

UE4 Lesson 1 카테고리 내 다른 글 보러가기

댓글 남기기