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

[25강] Damaged Enemy - 3

whereareyoung 2024. 6. 6. 23:42

색을 변경 한 후 일정시간 뒤에 색이 원래대로 돌아오는 것을 구현 

 

1. 다음과 같이 그래프를 연결함 

- Delay 함수를 이용하고, Duration 값을 0.1을 주어 0.1초 뒤에 "Change Material" 함수 실행 

 

2. "Color" 값에 Enemy Material 의 원래 16진 선형 값을 복사, 붙여넣기 해 설정해줌  

 

플레이를 해 보면 0.1초뒤에 원래 색으로 돌아오는것이 정상적으로 확인된다. 

 

3. 새로 만든 부분을 다음과 같이 "Change Color" 로 정리하여 둔다 

 

<사망 처리 구현>

 

1. 사망처리를 위해서는 애니메이션 몽타주가 필요하다. 믹사모에서 애니메이션을 다운받아 변환하여 탐색기에서 표시 > 엔진에 넣어준다. 

 

2. 생성 > 애님몽타주생성 Montage 파일로 옮기기

 

3. 몽타주에 넣어줄 슬롯을 생성하기 위해 Skel_Mannequin > 애님 슬롯 애니 > "FullBody" 생성

 

4. ABP_Enemy 를 다음과 같이 설정하여 준다. 

1) Savepose (캐시 포즈 새로 저장) > "Final Pose" 생성 

2) 몸 전체 동작이 나오도록 해야해서 전체를 섞기 위해 Bone Name은 Root로 설정, FullBody 가 들어오는 순간 전체를 섞어 FullBody의 몽타주가 플레이 될 수 있도록 해줌 

 

* 주의 : 다음의 경우 임시적인 구현일 뿐, 잘못된 구현임 

사망에서는 제대로 처리되는 걸로 보이지만 실무에서는 몽타주가 플레이가 되면 이전거를 다 죽여버려서 뒤에게 다 초기화가 됨 

 

5. 애님 몽타주 설정 이어서 해주기 

1) 애니 플레이 끝 시간을 늘려 마지막 동작 플레이 시간을 늘려주기

 

2) 몽타주 플레이시 딜레이 타임을 0으로 만들어 주기 

 

3) 플레이가 늦게 시작되니 34초에 몽타주 섹션 "Start" 생성

* 몽타주 섹션 : 지정한 구역부터 몽타주를 플레이시키기 위해 사용 

 

6. BP_Enemy 이벤트 그래프 설정 

1) Change Color 에 노드를 추가로 연결하여야 하므로 다음과 같이 노드를 열어준다. 

 

2) if 연결하여서 Health 연결 

Hp를 가져와서 Health가 0보다 작거나 같느나 0보다 작거나 같으면 사망하도록 설정한다. 

 

3) 노드접기 > "Die" 

 이제 사망 처리의 경우 내부로 들어가서 True 로 처리하고, 사망이 아니면 False 로 출력하여 연결 될 수 있게 다음과 같이 처리 

 

4) 사망일 경우 다음과 같이 처리 

 

만들어 두었던 몽타주 섹션 "Start" 지점부터 GetHigBackFall 애니메이션 몽타주가 실행됨 

 

5) 파괴 처리 세팅 

- Start Section 까지 1.163f 정도 + 시간만큼의Delay 를 해주고 Destroy Actor 를 해주면 사망후 파괴된다 

- Self 파괴후 칼도 Destroy 처리를 해줌

*Play Anim Montage : 애니메이션 플레이 시간이 리턴됨

 

현재 이 구현은 True가 계속 들어오기 때문에 죽은 후 때리면 다시 살아난다는 버그를 가지고 있다. 

다음 시간에 이어서 이 문제를 해결하고 Fitting 피격 처리를 추가 진행할 예정이다.

 

휴일에 공부를 하면서 즐거운 시간을 보내 행복했다 

내일 출근이 기대된다 

 

 

'Unreal Engine > 게임클래스 - 언리얼엔진 기초' 카테고리의 다른 글

[27강] Player Combo - 1  (0) 2024.06.16
[26강] Damaged Enemy - 4  (0) 2024.06.10
[24강] Damaged Enemy - 2  (1) 2024.06.06
[23강] Damaged Enemy - 1  (1) 2024.05.15
[22강] Enemy  (1) 2023.10.13