UE4 Chapter 8-2. 콤보 공격 : 적 때릴 때 넉백 시키기
카테고리: UE4 Lesson 1
태그: UE4 Game Engine
인프런에 있는 황대희님의 언리얼 엔진4 3D 횡스크롤 게임 만들기 강의를 듣고 정리한 필기입니다. 😀
언리얼 엔진 공식 문서 https://docs.unrealengine.com/ko/index.html
🚖 적 때릴 때 넉백 시키기
적에서 👉 플레이어로 향하는 방향의 반대 방향으로 넉백, 즉 이동시켜야 한다.
맞을 때마다 반대 방향으로 이동시키기
🚩 몬스터 블루프린트 이벤트 그래프
몬스터가 데미지를 입으면 발생하는 이벤트인 Any Damage
이벤트가 발생하면 HP 검사하고 Chanage Damage Color
이벤트 호출시키고 난 후
- Launch Character
- 타겟으로 들어온 캐릭터를 Lauch Velocity 벡터값 만큼 강제로 이동시킨다.
DirToPlayerChar
*-1.0
*300
- 밀려날 방향 👉
DirToPlayerChar
*-1.0
- 몬스터가 플레이어를 향하는 방향의 정반대 방향벡터
- 밀려날 거리
300
👉 3 미터 정도
- 밀려날 방향 👉
- 타겟으로 들어온 캐릭터를 Lauch Velocity 벡터값 만큼 강제로 이동시킨다.
죽으면 맞을 때마다 했던 처리 X
이렇게 되어 있었던 상태. 죽으면 Collision을 비 활성화 하도록. 그러나 Launch Character 노드를 추가한 후 이 부분에 의하여 몬스터가 사망하면 땅을 뚫고 떨어지는 문제가 발생했다.
따라서 Collision 을 비활성화 시켜주는 부분을 했던 두 노드를 삭제 했다.
처음부터 몬스터가 죽은 상태였는지를 검사하고 죽었다면 맞을 때마다 했던 처리들(빨간색으로 바꾸기, 넉백)들을 하지 않도록 한다.
🚖 적 때릴 때 넉백 애니메이션
넉백 애님 몽타주 노티파이
🚩 몬스터의 넉백 애니메이션의 애님 몽타주
몬스터의 넉백 애니메이션을 재생 시키기 위하여 애님 몽타주를 생성하였다. 넉백 애니메이션이 끝나가는 시점에 OnAnimEnd_Impact
노티파이를 추가 하였다. OnAnimEnd_Attack
공격 애니메이션이 끝날 때 하는 처리들 처럼 넉백 애니메이션이 끝나면 하는 처리를 해주기 위하여.
🚩 몬스터 블루프린트 이벤트 그래프
OnAnimEnd_Impact
노티파이가 발생하면 자동 호출 시킬 커스텀 이벤트 OnAnimEnd_Impact
를 만들었다.
🚩 몬스터 애니메이션 블루프린트 이벤트 그래프
OnAnimEnd_Impact
노티파이가 발생하면 커스텀 이벤트 OnAnimEnd_Impact
가 발생하도록 애니메이션 블루프린트에서 작업해준다.
맞았을 때 죽지 않았다면 넉백 애니메이션 재생
🚩 MonsterState Enumeration 몬스터 상태 정의
몬스터가 맞아서 넉백 당하는 상태인 Impact
상태를 추가해주었다.
🚩 몬스터 블루프린트 이벤트 그래프
Any Damage
몬스터가 공격 받았을 때 호출되는 이벤트- 넉백 시키고 난 후 Launch Character
hp
가 0 이하면, 즉 죽었다면- 사망 애니메이션 재생, 몬스터 파괴 등등 사망 처리
- 죽지 않았다면
- 넉백 애님 몽타주를 재생 시키고
- 몬스터의 상태를
Impact
로 설정
- 넉백 시키고 난 후 Launch Character
Any Damage
몬스터가 공격 받았을 때 호출되는 이벤트- 몬스터가 맞았는데 아직 죽지 않은 상태라면
- 넉백 하는 중에 몬스터의 칼이 플레이어와 충돌하여 플레이어에게 데미지를 입힐 수도 있기 때문에
IsAttacking
을 False- 칼 충돌체를 비활성화 해주었다.
- 넉백 하는 중에 몬스터의 칼이 플레이어와 충돌하여 플레이어에게 데미지를 입힐 수도 있기 때문에
- 몬스터가 맞았는데 아직 죽지 않은 상태라면
넉백 애니메이션이 끝나갈 때
🚩 몬스터 블루프린트 이벤트 그래프
공격 애니메이션이 끝나갈 때 즈음이면 플레이어가 죽었는지 스테이지가 클리어 되었는지를 확인한 후에 플레이어를 계속 쫓을지 공격을 이어서 계속 할지 등등의 실행을 처리하였었다. 이와 같은 처리 내용들은 넉백 애니메이션이 끝나도 실행해야 하는 부분들이므로 복붙 하기 보다는 이 과정들을 NextActionDecision
이라는 커스텀 이벤트로 묶었고 공격 애니메이션이 끝나면 발생하는 OnAnimEnd_Impact
혹은 넉백 애니메이션이 끝나면 발생하는 OnAnimEnd_Impact
이벤트가 발생하면 위 과정을 실행하도록 하였다.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기