UE4 Chapter 8-2. 콤보 공격 : 적 때릴 때 넉백 시키기

Date:     Updated:

카테고리:

태그:

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

🚖 적 때릴 때 넉백 시키기

적에서 👉 플레이어로 향하는 방향의 반대 방향으로 넉백, 즉 이동시켜야 한다.


맞을 때마다 반대 방향으로 이동시키기

🚩 몬스터 블루프린트 이벤트 그래프

image

몬스터가 데미지를 입으면 발생하는 이벤트인 Any Damage 이벤트가 발생하면 HP 검사하고 Chanage Damage Color 이벤트 호출시키고 난 후

  • Launch Character
    • 타겟으로 들어온 캐릭터를 Lauch Velocity 벡터값 만큼 강제로 이동시킨다.
      • DirToPlayerChar * -1.0 * 300
        • 밀려날 방향 👉 DirToPlayerChar * -1.0
          • 몬스터가 플레이어를 향하는 방향의 정반대 방향벡터
        • 밀려날 거리 300 👉 3 미터 정도


죽으면 맞을 때마다 했던 처리 X

image

이렇게 되어 있었던 상태. 죽으면 Collision을 비 활성화 하도록. 그러나 Launch Character 노드를 추가한 후 이 부분에 의하여 몬스터가 사망하면 땅을 뚫고 떨어지는 문제가 발생했다.

image

따라서 Collision 을 비활성화 시켜주는 부분을 했던 두 노드를 삭제 했다.

image

처음부터 몬스터가 죽은 상태였는지를 검사하고 죽었다면 맞을 때마다 했던 처리들(빨간색으로 바꾸기, 넉백)들을 하지 않도록 한다.


🚖 적 때릴 때 넉백 애니메이션

넉백 애님 몽타주 노티파이

🚩 몬스터의 넉백 애니메이션의 애님 몽타주

image

몬스터의 넉백 애니메이션을 재생 시키기 위하여 애님 몽타주를 생성하였다. 넉백 애니메이션이 끝나가는 시점에 OnAnimEnd_Impact 노티파이를 추가 하였다. OnAnimEnd_Attack 공격 애니메이션이 끝날 때 하는 처리들 처럼 넉백 애니메이션이 끝나면 하는 처리를 해주기 위하여.


🚩 몬스터 블루프린트 이벤트 그래프

image

OnAnimEnd_Impact 노티파이가 발생하면 자동 호출 시킬 커스텀 이벤트 OnAnimEnd_Impact 를 만들었다.


🚩 몬스터 애니메이션 블루프린트 이벤트 그래프

image

OnAnimEnd_Impact 노티파이가 발생하면 커스텀 이벤트 OnAnimEnd_Impact 가 발생하도록 애니메이션 블루프린트에서 작업해준다.


맞았을 때 죽지 않았다면 넉백 애니메이션 재생

🚩 MonsterState Enumeration 몬스터 상태 정의

image

몬스터가 맞아서 넉백 당하는 상태인 Impact 상태를 추가해주었다.


🚩 몬스터 블루프린트 이벤트 그래프

image

  • Any Damage 몬스터가 공격 받았을 때 호출되는 이벤트
    • 넉백 시키고 난 후 Launch Character
      • hp가 0 이하면, 즉 죽었다면
        • 사망 애니메이션 재생, 몬스터 파괴 등등 사망 처리
      • 죽지 않았다면
        • 넉백 애님 몽타주를 재생 시키고
        • 몬스터의 상태를 Impact로 설정

image

  • Any Damage 몬스터가 공격 받았을 때 호출되는 이벤트
    • 몬스터가 맞았는데 아직 죽지 않은 상태라면
      • 넉백 하는 중에 몬스터의 칼이 플레이어와 충돌하여 플레이어에게 데미지를 입힐 수도 있기 때문에
        • IsAttacking을 False
        • 칼 충돌체를 비활성화 해주었다.


넉백 애니메이션이 끝나갈 때

🚩 몬스터 블루프린트 이벤트 그래프

image

공격 애니메이션이 끝나갈 때 즈음이면 플레이어가 죽었는지 스테이지가 클리어 되었는지를 확인한 후에 플레이어를 계속 쫓을지 공격을 이어서 계속 할지 등등의 실행을 처리하였었다. 이와 같은 처리 내용들은 넉백 애니메이션이 끝나도 실행해야 하는 부분들이므로 복붙 하기 보다는 이 과정들을 NextActionDecision이라는 커스텀 이벤트로 묶었고 공격 애니메이션이 끝나면 발생하는 OnAnimEnd_Impact 혹은 넉백 애니메이션이 끝나면 발생하는 OnAnimEnd_Impact 이벤트가 발생하면 위 과정을 실행하도록 하였다.

image



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

맨 위로 이동하기

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

댓글 남기기