UE4 Chapter 5-1. 보스 AI : 블루프린트 생성 및 애니메이션 세팅
카테고리: UE4 Lesson 1
태그: UE4 Game Engine
인프런에 있는 황대희님의 언리얼 엔진4 3D 횡스크롤 게임 만들기 강의를 듣고 정리한 필기입니다. 😀
언리얼 엔진 공식 문서 https://docs.unrealengine.com/ko/index.html
보스 만들 준비
🔔 에셋 임포트
보스의 Mesh와 애니메이션들을 드래그 해 가져왔다. 임포트할 때 애니메이션의 Skeleton을 보스의 뼈대로 설정해주는 것 잊지 말기.
🔔 블루프린트 생성
기존 몬스터와 비슷한 부분이 많기 때문에 몬스터 블루프린트를 복사해서 생성할 것이다.
- 보스의 블루프린트
- 몬스터의 블루프린트인 “DefaultMonsterBP”를 복붙하여 이름만 변경해주었다.
- 몬스터의 블루프린트를 복사해서 만들었기 때문에, 플레이어를 쫓아가서 공격하거나 맞으면 빨개지거나 하는 몬스터의 기능들을 그대로 보스도 기능하게 된다!
- 이름 “Boss1MonsterBP”
- 몬스터의 블루프린트인 “DefaultMonsterBP”를 복붙하여 이름만 변경해주었다.
- 보스의 애니메이션 블루프린트
- 몬스터와 Skeleton이 다르기 때문에 애니메이션 블루프린트는 복사해서 만들지 못한다. 아예 새로 만들어주기.
- 이름 “Boss1MonsterAnimBP”
- 보스 Skeleton 선택.
🚩 “Boss1MonsterBP” 블루프린트
- Mesh를 보스로 바꿔 주기
- 몬스터의 블루프린트인 “DefaultMonsterBP”를 복사해서 만든 것이기 때문에 일단 Mesh를 몬스터가 아닌 보스로 바꿔주어야 한다.
- “mutant”로 변경
- 보스는 칼을 안쓸거라 칼 Mesh 를 삭제했다.
- 애니메이션 블루 프린트를 "Boss1MonsterAnimBP"로 설정
- 크기를 (1, 1, 1)로 키워주었다.
🔔 블루프린트 설정
애니메이션 블루프린트
🚩 “Boss1MonsterAnimBP” 애니메이션 블루프린트 이벤트 그래프
Skeleton이 달라 아예 몬스터의 애니메이션 블루프린트를 복사해서 만들진 못했지만 몬스터의 애니메이션 블루프린트의 이벤트 그래프의 전체 노드들을 전부 복사해서 붙여넣어 주었다. 몬스터랑 애니메이션 방식도 거의 똑같아서..
- 단,
Speed
변수는 따로 “Boss1MonsterAnimBP” 애니메이션 블루프린트의 변수로 추가하여 다시 Set Speed 노드를 새롭게 추가해 주었다.Speed
변수 값은 Idle 애니메이션에서 Walk 애니메이션으로, Wlake 애니메이션에서 idle 애니메이션으로 바뀌는 조건에 사용될 것이다.- Try Get Pawn Owner 의 속도의 크기를
Speed
에 할당. 즉, 자기 자신(보스)의 속도 크기를 할당하게 된다. - BluePrint Update Animation 이벤트에 의해 매 프레임마다
Speed
할당이 실행됨.
- Try Get Pawn Owner 의 속도의 크기를
- 복사 해온 노드들의 세부적인 값을 수정하는 일은 밑에서 할 것.
정지 👉 걷기, 걷기 👉 정지 애니메이션
🚩 “Boss1MonsterAnimBP” 애니메이션 블루프린트 애님 그래프
애님 몽타주를 사용할 것이기 때문에 DefaultSlot 슬롯과 함께 상태 머신을 추가하여 애니메이션 재생시킬 준비.
- 상태 머신
- 정지 👉 걷기 :
Speed
이 0.1 보다 작을 때 - 걷기 👉 정지 :
Speed
이 0.1 보다 클 때
- 정지 👉 걷기 :
🚩 “mutant_walking” 애니메이션 파일
마찬가지로 보스의 걷기 애니메이션은 앞으로 뚜벅 뚜벅 걷는 애니메이션이기 때문에 이동을 한다. 따라서 이동 속도 변경 스크립팅에 영향가지 않도록 루트 모션을 잠궈주자.
보스의 애님 몽타주 생성
- 죽는 애님 몽타주 “mutant_dying_Montage”
- 스킬 사용하기 전에 준비 자세인 애님 몽타주 “mutant_flexing_muscles_Montage”
- 기본 공격으로 사용할 애님 몽타주 “mutant_punch_Montage”
- 스킬 공격으로 사용할 애님 몽타주 “mutant_swiping_Montage”
보스의 블루프린트 세부적인 설정들 바꿔주기
🚩 “Boss1MonsterBP” 블루프린트
몬스터의 블루프린트인 “DefaultMonsterBP”를 복붙해서 만든 블루프린트이므로 노드의 세부적인 값들을 몬스터에 맞게 다 바꿔주어야 한다. Ctrl + F로 노드들을 찾아서 다 바꿔주자.
- Play Montage 노드의 재생할 몽타주들을 보스의 애님 몽타주들로 상황에 맞게 다 바꿔 주었다.
몬스터 애니메이션 블루프린트로부터 복사 해온 노드들이다. 노티파이 이벤트 노드들도 있으므로 몬스터 몽타주에서 설정했던 것처럼 애님 보스의 공격 애님 몽타주에도 노티파이 이벤트를 추가해주자.
OnCollStart_Attack
- 공격 애니메이션의 주먹을 휘두르기 시작하는 부분
- 이 부분부터 충돌 처리가 가능해져야 하기 때문에 발생시킨 노티파이
OnCollEnd_Attack
- 공격 애니메이션의 주먹을 다 휘두른 부분
- 이 부분부터 충돌 처리를 다시 막아두어야 하기 때문에 발생시킨 노티파이
OnAnimEnd_Attack
- 공격 애니메이션이 전부 완료되는 끝 부분
- 이 부분부터 공격이 끝났다고 간주하고 플레이어를 쫓아갈지 마저 반복적으로 공격 애니메이션을 재생할지 결정해야 하기 때문에 발생시킨 노티파이
🚩 “mutant_punch_Montage” 보스의 공격 애님 몽타주
🚩 “Boss1MonsterAnimBP” 애니메이션 블루프린트 이벤트 그래프
각각의 노티파이 이벤트 발생이 “Boss1MonsterBP”의 동명의 커스텀 이벤트 발생으로 이어질 수 있도록 노드를 수정. (“Boss1MonsterBP”로 형변환하여 다시 이어줌)
🚩 “mutant_dying_Montage” 보스의 죽는 애님 몽타주
죽는 애니메이션 중 쓰러진 끝 부분만 무한 반복 재생되게 하기. 죽어도 다시 상태 머신에 의하여 Idle 애니메이션을 재생하지 않게끔. 끝 부분에 Loop 이라는 이름의 섹션 추가하여 반복 재생.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글남기기