[Unreal_블루프린트]#15_Combo Attack, 콤보 구현

2022. 9. 14. 00:01· 게임개발/Unreal 블루프린트
목차
  1.  
  2. [Unreal_블루프린트]#15_Combo Attack, 콤보 구현

 

[Unreal_블루프린트]#15_Combo Attack, 콤보 구현

Unreal 블루프린트 개발 중 "Combo Attack"에 대해 알아보겠습니다.

"블루 프린트" 활용에 대한 내용입니다.

 

 


 

Notify State

 

1. Notify State 생성

Animation Notify State 추가 화면

1. 블루프린트 클래스 -> Anim Notify State 생성

Anim Notify State는 "Begin ~ End" 구간을 설정하는 Notify입니다. Animation 플레이 중 "Begin ~ End" 구간에 진입하면 Notify가 호출됩니다!

 

2. Enable Next Combo 노티파이 스테이트 생성 및 구현

ANS_Enable Next Combo 의 Received Notify Begin 함수와 Received Notify End 함수 구현 화면

1. Received Notify Begin : Notify의 시작 지점에서 발동되는 함수

간단하게, BP_Player 객체의 "Enable Next Combo" 변수를 "True"로 설정합니다. 

2. Received Notify End: Notify의 마지막 지점에서 발동되는 함수

간단하게, BP_Player 객체의 "Enable Next Combo" 변수를 "False"로 설정합니다. 


* 추후에 있을 BP_Player에서 구현할 "Combo Attack"을 위해 준비합니다!

 

Combo Attack 구현

 

1. Attack Animation 정보를 담은 구조체 생성

구조체 생성 화면

 

2. Attack 애니메이션 정보를 담은 구조체 정의

FCombo Table 구조체 에디터 창

1. Montage : Anim Montage 오브젝트 타입
2. Play Rate : Float 타입
3. Start Section Name : FName 타입
4. CanMove : Boolean 타입

 

2. Play Sword Combo Montage 함수 생성

BP_Player의 에디터 창에서 함수 생성 화면

 

3. 함수 구현

BP_Player의 "Play Sword Combo" 함수 구현 내부

1. Sword Combo Datas

FCombo Table에서 생성한 구조체 형식들을 통해 "Attack 1 ~ 3" 애니메이션의 정보들을 담고 있습니다!
1 ~ 3번까지 존재하는 구조체를 "Sword Combo Datas" 배열에 저장합니다.

2. Sword Combo Count

"Sword Combo Datas" 구조체 배열의 Index를 결정합니다!

3. Play Anim Montage 생성

Sword Combo Datas 배열의 특정 구조체 내부의 정보들을 가져와 Play 합니다!

4. CanMove 변수 설정

Combo Attack 애니메이션 애셋을 재생할 동안 Character의 움직임을 제한하기 위해 Sword Combo Datas 배열이 담고 있는 구조체의 원소 중 "CanMove"변수를 캐릭터 블루프린트에서 별도로 생성한 동명의 변수 값으로 설정해줍니다.

* 다음으로, 이 함수를 호출해줄 커스텀 이벤트가 필요하겠죠?

 

Attacking Event 노드 그룹

 

1. Attack 입력 액션 수정

BP_Player의 Event Graph 중 "Attaking Event" 노드 그룹 화면

1. Attack 입력 액션

미리 매핑한 액션의 입력을 받아오기 위함입니다!

2. Enable Next Combo (Boolean 변수)

각 Attack 애님 몽타주의 "Notify State" 구간에서 변경되는 이 Boolean 변수는 다음 Attack 애님 몽타주를 플레이할지 여부를 결정합니다!

3. Sword Combo Count (Int 변수)

애님 몽타주가 순차적으로 재생되면서 몇 번째 애님 몽타주를 플레이할지 확인하는 변수입니다!

4. Sword Exist Next Combo (Boolean 변수)

애님 몽타주의 "Enable Next Combo" 노티파이 스테이트 구간이 지나면 "Enable Next Combo"가 곧 이어 "False"로 변경되며 "End Attack" 커스텀 이벤트에게 다음 공격을 재생시켜야한다고 알려줄 변수가 필요하죠!

5. Enable Next Combo 가 False 라면?

"Enable Next Combo" 노티파이 스테이트 구간에서 후속 입력이 없을 경우, 기존의 기본 공격 애님 몽타주를 플레이해야죠! 간단하게, "CanMove"가 "True"인지 체크하고, 캐릭터의 상태를 "Attacking"으로 변경하고 원래 기본 공격 애님 몽타주를 재생합니다!

 

2. Check Sword Next Combo 커스텀 이벤트 구현

BP_Player의 "Attacking Event" 노드 그룹 중 "Check Sword Next Combo" 커스텀 이벤트

1. Sword Exist Next Combo(Boolean)

"Attack" 입력 이벤트에서 설정한 Boolean 변수로, 현재 재생 중인 애님 몽타주의 "Enable Next Combo" 노티파이 스테이트 구간에 "Attack" 입력이 한번 더 들어왔는지 체크하는 변수입니다. 따라서, "Sword Exist Next Combo" 변수가 True 라면 현재 애님 몽타주에 이어서 다음 애님 몽타주를 재생해야 겠죠!

2. Sword Last Combo(Boolean)

현재 재생되고 있는 콤보 애님 몽타주 중 마지막 애님 몽타주가 재생되고 있다면, Sword Last Combo 변수를 True로 만듭니다!

 

3. End Attack 커스텀 이벤트 수정

BP_Player의 Event Graph 중 "Attaking Event" 노드 그룹 화면

1. Sword Exist Next Combo (Boolean 변수)

앞서 Attack 입력 이벤트 구현에서 "Enable Next Combo" 애님 노티파이 스테이트 구간에 후속 입력이 추가로 들어오면 "Sword Exist Next Combo" 변수를 "True"로 변경했었죠? 따라서, 애님 몽타주의 "End Attack" 애님 노티파이 스테이트 구간에서 "Sword Exist Next Combo" 변수가 True 인 채로 진입하면 다음 애님 몽타주를 재생함으로써 콤보 어택을 화면에 그려냅니다!

2. 그 외

다음 Combo Attack이 유효하지 않을 경우, 기존의 End Attack의 구현처럼 캐릭터 상태 변수 변경 등을 진행합니다.

 

Animation 블렌딩

 

Attack_3 애님 몽타주 화면

Attack 1을 제외한 나머지 공격 애님 몽타주 들은 이동을 제한하고 플레이되는 "Full Body" 슬롯에 해당되기 때문에 Animation 블루프린트에서 구현한 "Layerd Blend per Bone"에 함께 블렌딩 되도록 Default 슬롯을 "Full Body"로 설정해주면 정상적으로 "Combo Attack"을 구현할 수 있습니다!

 

 

 

'게임개발 > Unreal 블루프린트' 카테고리의 다른 글

[Unreal_블루프린트]#17_Particle System, Trailer, 공격 이펙트  (0) 2022.09.14
[Unreal_블루프린트]#16_Camera Shake, 카메라 컨트롤  (0) 2022.09.14
[Unreal_블루프린트]#14_Impact Animation, 피격 애니메이션  (1) 2022.09.11
[Unreal_블루프린트]#13_Death Animation, Double Blending  (0) 2022.09.07
[Unreal_블루프린트]#12_Look At Attacker  (0) 2022.09.07
  1.  
  2. [Unreal_블루프린트]#15_Combo Attack, 콤보 구현
'게임개발/Unreal 블루프린트' 카테고리의 다른 글
  • [Unreal_블루프린트]#17_Particle System, Trailer, 공격 이펙트
  • [Unreal_블루프린트]#16_Camera Shake, 카메라 컨트롤
  • [Unreal_블루프린트]#14_Impact Animation, 피격 애니메이션
  • [Unreal_블루프린트]#13_Death Animation, Double Blending
Hardii2
Hardii2
Hardii2
개발 블로그
Hardii2
전체
오늘
어제
  • 분류 전체보기
    • 알고리즘
    • 웹 개발
      • Node.js
      • React
    • 게임개발
      • DirectX12
      • 관련 지식
      • Unreal C++
      • Unreal 블루프린트
    • 언어
      • Effective C++
      • Basic C++
      • 디자인 패턴
      • 자료구조
      • 기술 질문
    • 문제 풀이
      • BOJ 문제 풀이
      • Programmers 문제 풀이
      • geeksForgeeks 문제 풀이
    • 수학
      • 확률과 통계
      • 게임수학
    • 개인프로젝트
    • 그룹프로젝트
      • PM
      • Dev
    • Github

블로그 메뉴

  • 홈
  • 글쓰기

공지사항

인기 글

태그

  • 알고리즘
  • unreal
  • set
  • Unreal Blueprint
  • programmers
  • stl
  • 그래프
  • Effective C++
  • dfs
  • 개발
  • DP
  • BOJ
  • 기술 질문
  • 우선순위 큐
  • C++
  • 최단 경로
  • BFS
  • 트리
  • 정렬
  • 디자인 패턴

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Hardii2
[Unreal_블루프린트]#15_Combo Attack, 콤보 구현
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.