이번시간을 통해서는 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 타입에 따른 포즈 선택
여기까지 마법모드 구현이 완료되었는데, 마법모드 에서 칼을 빼는것도 동작하여야 하니
내일 퇴근 후에는 칼 > 마법모드, 마법모드 > 칼 전환을 다루도록 하겠다. 기대가 된다!
'Unreal Engine > 게임클래스 - 언리얼엔진 기초' 카테고리의 다른 글
[37강] Wizard & Sword Mode (0) | 2024.07.16 |
---|---|
[36강] Wizard & Sword Mode (0) | 2024.07.11 |
[34강] Wizard Mode (0) | 2024.07.05 |
[33강] Sword Trail (Particle & Attach) (0) | 2024.07.03 |
[32강] Sword Trail (Material) (0) | 2024.07.03 |