Make Unreal REAL.
article thumbnail
이득우의 언리얼 C++ 게임 개발의 정석

 

기존에 Attack1에 들어있던 애니메이션은 4개의 공격을 하나의 몽타주로 연결하기 위해 각 길이를 단축시킨 애니메이션이다.

모두 지우고 다시 드래그해 배치한다.

 

각 애니메이션의 시작점에 Section을 설정한다.

  • 섹션을 추가하면 각 섹션이 연결되어 재생되는데 Link를 끊어 각각을 독립적인 섹션으로 만든다.

 

각 섹션의 AttackHitCheck 노티파이는 나중에 타격 판정을 위해 사용되고 NextAttackCheck는 콤보 연계 판정을 위해 사용된다.

 

콤보 연계의 경우 현재 섹션의 공격이 시작된 이후부터 NextAttackCheck 노티파이 전까지 공격 키가 눌렸으면 연계가 가능하게 된다.

 

 

해당 프레임에 즉각적인 반응을 요구하는 콤보 공격 등을 구현할 때는 Montage Tick Type을 Branching Point로 설정하는 것이 좋다.

  • 기본값인 Queued는 타이밍에 민감하지 않은 사운드나 이펙트를 발생시킬 때 적합하다.

 

 

애님 인스턴스에 델리게이트를 활용해 노티파이 함수를 구현한다.

  • 델리게이트를 이용해 노티파이 함수를 만들면 애님 인스턴스는 델리게이트를 사용하는 객체가 어떤 것인지 몰라도 무방하므로 다른 클래스와의 의존성을 끊을 수 있다.

 

여러 개의 함수를 등록할 수 있도록 멀티캐스트 델리게이트로 선언한다.

DECLARE_MULTICAST_DELEGATE(FOnMyEvent);
FOnMyEvent OnMyEvent;

 

 

멀티캐스트 델리게이트에 등록된 모든 함수를 실행하는 명령은 .Broadcast()이다.

 

 

기타 몽타주 관련 함수도 구현한다.

  • Montage_JumpToSection() 함수는 섹션을 이동할 뿐 자동으로 재생하지는 않는다.
    이미 재생 중이었다면 이어서 재생한다.

 

 

콤보 공격을 위한 변수와 함수를 선언한다.

 

 

생성자에서 콤보 공격을 위한 변수를 초기화한다.

 

 

공격이 수행될 때 변수를 초기화하고 콤보를 증가시킨다.

 

 

공격이 종료될 때 변수를 초기화한다.

 

 

PostInitializeComponents() 함수에서 NextAttackCheck 노티파이에 실행할 델리게이트를 등록한다.

 

현재 콤보 공격과 노티파이 사이에 공격 키가 눌려서 IsComboInputOn이 true이면 다음 콤보를 연계한다.

 

 

공격 함수는 처음 공격 키가 눌렸을 때와 아닐 때를 구분해 구현한다.

 

NextAttackCheck 노티파이가 발생하면 CanNextCombo는 false가 되어 이후부터는 공격 키를 눌러도 IsComboInputOn을 true로 만들 수 없다.

 

 

몽타주(여기서는 섹션) 재생이 끝나면 콤보 공격을 위한 변수를 초기화한다.

 

 

콤보 공격 구현에 성공했다.

 

'Unreal Engine > 이득우의 언리얼 C++ 게임 개발의 정석' 카테고리의 다른 글

디버그 드로잉  (0) 2023.03.09
콜리전과 공격 판정  (0) 2023.03.08
애니메이션 노티파이  (0) 2023.03.07
델리게이트(Delegate)  (0) 2023.03.07
애니메이션 몽타주  (0) 2023.03.07
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그