초보 코린이의 성장 일지

UE4 경직(Hit Stop), 카메라 진동, 무기 추가(Fist) 본문

언리얼

UE4 경직(Hit Stop), 카메라 진동, 무기 추가(Fist)

코오린이 2023. 1. 19. 15:11

경직 동작과 카메라가 흔들리면서 타격감을 극대화 시키는 작업을 해볼 것이다.

 

 Enemy로 가서 피격됐을때 상태를 설정할 것이다.

 

사용할 변수 중 HitData, DelationActors 사용

 

CameraShake로 블루프린트 클래스 생성해준다. 동작만을 위한 클래스라 이벤트그래프는 작성안 할 것이다.

값 설정은 딱 Oscillation, Y, Z 축만 해준다.

Duration = 진동하는 시간

Blend in Time = 카메라가 흔들리는 상태에서 현재 상태로 오는데 걸리는 시간

Blend Out Time = 흔들리면서 원래 카메라로 돌아오는 시간

Amplitude = 진동 강도

Frequency = 진동 기간(시간)

initial Offset = 최초 시작하는 부분 설정 zero, random 2개 설정가능

Waveform = 규칙적인지 불규칙적인지 설정

 

엑셀을 열어서 Hit_Data 부분 ShakeClass에 위에 만든 CS_Sword 레퍼런스 복사해서 넣어준다.

Class 타입으로 받은 경우우는 레퍼런스 주소 복사한 뒤 ' 부분전에 _C를 입력해줘야한다. 

 

클래스 타입으로 받는 객체는 내부에서 해당 클래스 타입으로 객체를 생성해서 return 해준다. ★★★

Is Valid Class로 Null이 아니라면 if로 연결

Get Player Camera Manager 선언 후 안을 살펴보면 Start Camera Shake가 들어있다 선언해준다.

 

왼쪽 시작부분

Hit Stop에 float은 Nearly Equal (float)를 사용해야한다 Error Tolerance는 B의 값 + , -가 저 안에 값에 들어오면 근사치라고 생각한다.

Get All Actors Of Class 해당 클래스 타입을 전부 찾아준다 Actor로 설정해주면 된다.

그리고 배열이기 때문에 For Each Loop을 돌려줘야한다.

이 Actor중에 하나는 Pawn으로 캐스팅해준다.

오른쪽 나머지 부분

Get Component by Class를 사용하여 Mesh 컴포넌트를 찾아와야 한다.

Is Valid로 캐스팅 실패 했다면 Mesh 컴포넌트를 가지고 있는지 다시 한번 체크해준다 왜? 그려줘야하는 존재기 때문

Mobility가 == 로 Moveble와 같고 true라면 늦처줘야한다.

변수유형 Actor를 배열로 만든 변수를 가져다 add로 if와 Pawn 형변환과 이어준다 확인하기 위해

break에 있는 Array Element를 add에 연결해준다. 

Actor에 Custom Time Dilation를 선언 자기자신만 시간을 늦춰주는 용도로 사용할 것이다. 시간은 0.001

for이 다 돌면 Completed에서 어느 객체에 있는 함수를 실행시킬껀지 찾기 위해 Set Timer by Function Name로 연결해준다. 자기 자신꺼를 실행시킬 것이기 때문에 self로 연결해준다. Name안에도 설정해준다.

이제 Hit Stop를 연결해주면 된다.

이제 custom 이벤트로 위에 정해준 Name이벤트를 발생시킨다. 그 이벤트는 Delation Actors를 원래 시간대로 for문을 통해 돌려준면 된다. Custom Time Dilation을 1초로 다시 설정 그다음 Clear로 비워주면 된다.

 

엑셀표로 다시 돌아가 HitStop 값을 넣어준다 자연스럽게 만들기 위한 수치 값이 없거나 0이면 일어나지 않는다.

 

이제 맨손공격을 위해 블루프린트 클래스로 Actor을 하나 만들어 준다.

애니메이션에서도 생성해준다.

방금 생성한 BS_Fist를 가져와 연결

 

다시 그래프로 넘어와서 Fist 핀 추가해주고 연결해준다.

그다음 타입도 변경해주면 애니메이션 실행된다. 

 

이제 무기 장착만 해주면 된다.

컴포넌트에 들어가서 등록해준다.

SetFistMode를 만들어준다 위에 Sword 복사해서 안에만 수정해주면 된다.

 

BP_Player에서도 입력 액션 Sword와 똑같이 등록 이제 2번을 누르면 무기 사용이 가능하다.

 

컴포넌트를 클릭해서 설정란에 state에 맞는 숫자에 등록해준다.

애니메이션 몽타주로 3개 생성 후 Attack 1, 2, 3 설정해준다. 3개다 이동금지 시킬거라 FullBody로 설정

 

 

엑셀 Sword와 다르게 수정, 다만 Effect랑 ShakeClass는 삭제해준다.

 

이제 임포트 해줘서 가지고 온다.

Combo_Fist 들어와서 맞게 수정해준다.

 

https://www.youtube.com/watch?v=T3oHzs4qpsg 

 

- 무기도 추가해보고 카메라 시점까지 흔들리게 해보니까 게임다워 지는거 같다.

Comments