Unreal Engine/게임클래스 - 언리얼엔진 기초

[35강] Wizard Animation

whereareyoung 2024. 7. 6. 09:54

이번시간을 통해서는 Wizard Mode를 구현할 예정인데, 다음과 같이 구현할 것이다. 

- Unarmed 에서 Wizard 모드로 들어가는 것 

- Wizard Animation 을 Combat 파일에 섞는 것 

 

마법모드로 들어가는 입력키 생성 

현재 키보드 1번 입력 키로 Sword를 사용 할 때 "Sword Event" 가 사용된다. 같은 방식으로 키보드 2번을 입력했을 때 Wizard Event 도 추가를 하여 준다. 

 

1. 프로젝트 세팅 > 입력 > Action Mappings > "Wizard" 키보드 "2" 추가

현재 "Sword" 모드 전환 키가 "1" 이므로, "2"번으로 설정하여 준다. 

 

2. "BP_Player" 에 다음과 같이 세팅해 준다. 

   1) Custom Event "Start Wizard Mode", "End Wizard Mode" 추가 후 다음과 같이 세팅

Start 일때와 End일때가 반대가 되게 설정 

   2) 방금 제작한 Wizard 입력 액션("2"키를 눌렀을 때) 세팅 

위저드도 Combet Type 에 따라 갈릴것임 

- Combet Type 이 Unarmed 였다면, Wizard 로 리턴

- Wizard 였다면 Unarmed 로 리턴 

(Sword 였다면 칼을 집어 넣고 Wizard로 돌려주면 되는데, 이 과정은 차후에 작업 예정이다)

 

3) 컴파일 하여 준다. 

 

3. "ABP_Player" > 애님그래프 > "Jumping" 세팅

현재 다음과 같이 되어있는데 각 동작(unarmed, Sword, Wizard) 에 따른 상태 머신으로 분할을 하여야 한다. 

 

1)  "ABP_Player" > 애님그래프 > "Jumping" 노드 이름 정리 

- "Jumping" > "Sword" 로 Rename

- " Jumping Pose " > "Sword Pose" 로 Rename

일반 점프가 아니라 Sword 점프이니 다음과 같이 정리 

 

2) 기존 "Jumping" 역할 노드 생성 

- "ABP_Player" > 애님그래프 > "new state machine" 추가, "Jumping"으로 Rename

- "ABP_Player" > 애님그래프 > "Sword" 다음 상단 3가지 노드 복사 

- "ABP_Player" > 애님그래프 > "Jumping" 에 다음과 같이 붙여넣기 

Jumping 스테이트에서는 각 동작의 결과를 가져와 Jumping 과 섞어서 사용할 예정이다. 

 

- "ABP_Player" > 애님그래프 > "Sword" 다음 상단 3가지 노드 삭제 

 

 

3) "ABP_Player" > 애님그래프 > "new state machine" 추가, "Wizard"로 Rename

현재 Sword 는 Unarmed 와 Sword를 커버하는 모드이다. 마찬가지로 Wizard 를 커버하는 모드가 있어야 하므로 위와 같이 생성하여 준다. 

 

4) "ABP_Player" > 애님그래프 > "Wizard" 다음과 같이 세팅 

- 이전에 제작하였던 "BS_Wizard" 를 다음과 같이 연결하여준다. 

- BS_Wizard 에 변수 Direction 값과 Speed 값을 연결해 준다. 

 

5) "Save pose" 생성 후 "Wizard Pose" 로 Rename, 다음과 같이 세팅하여 저장하여준다. 

 

6) 변수 정리

- Drawing, Sheathing 변수를 삭제하여준다. 

 

- 다음과 같이 열거형 변수 "CombatType", "StateType" 두가지를 생성 하여준다.  

7) "ABP_Player" 다음과 같이 세팅하여 준다

- 다음 부분에서 빨간 박스 부분을 제외하고 삭제하여 준다. 

- 다음과 같이 세팅한다. 

 

8) "ABP_Player" > 애님그래프 > "Sword" 세팅

 

4. "ABP_Player" > 애님그래프 세팅

1) 혼동이 올 수 있으니 Sword > Unarmed/Sword 로 Rename 하여준다. 

 

2) 이 단계에서는 다음과 같이 Unarmed, Sword, Wizard를 섞어 줄 것이다.

- 블랜드 포즈에 마우스 클릭하여 포즈들 추가하여 주어 세팅, "Save pose" 노드 생성하여 "Combat Pose" 로 Rename 

* 블랜드 포즈 : 각에 따라 기본 포즈를 선택할 수 있음 

* 블랜드 시간 : 기본 블랜드 까지 변화되는데에 걸리는 시간 

 

3) "ABP_Player" > 애님그래프 > "jumping" 세팅

여기까지만 해도 Combat 포즈를 내보내주기 때문에 사용하여도 되는데, Jumping 도 세팅 할 것이다. 

- "Entry" 에 "스테이트 추가" > "Combat" Rename 

- "ABP_Player" > 애님그래프 > "jumping" > Combat (스테이트) 다음과 같이 세팅 

- "Jumping" 다음과 같이 세팅

Entry 에서 들어와서 Combat 에 결과가 나오고, 그 결과가 Combat 이랑 Jumping 이 섞인 경과가 나옴 

 

3) "ABP_Player" > 애님그래프 > save Pose > "Jumping Pose" Rename

 

4) "ABP_Player" > 애님그래프 다음과 같이 세팅 

Unarmed/Sword Pose 캐시포즈 사용 > JumpingPose 캐시 포즈 사용으로 변경 

+

5) 애님 프리뷰 에디터에서 테스트 해 볼 수 있음 

 

Combat 이 Unarmed Pose > Combat 저장, Jump > Combat 섞이게 된 후 Upper / Full Body 가 나눠 쓰이게 되는 형태로 처리되었다. Wizard 로 바꾸면 Wizard 와 Jump 가 섞인 포즈가 사용된다. 

 

6) 다음과 같이 노드 정리

 

5. 컴파일 후 테스트 하여 보면, 2번을 통해 Wizard로 전환 할 수 있게 되었다. 

테스트 해 보며 모드 전환 속도를 다음과 같이 조정하여 준다. 

"ABP_Player" > 애님그래프 > Combat 타입에 따른 포즈 선택

 

여기까지 마법모드 구현이 완료되었는데, 마법모드 에서 칼을 빼는것도 동작하여야 하니

내일 퇴근 후에는 칼 > 마법모드, 마법모드 > 칼 전환을 다루도록 하겠다. 기대가 된다!