초보 코린이의 성장 일지

UE4 TPS Weapon AutoFire, Widget 본문

언리얼

UE4 TPS Weapon AutoFire, Widget

코오린이 2023. 3. 24. 17:31

CWeapon.h
CWeapon.h
CWeapon.cpp
CWeaponComponent.cpp

1. 연사를 하게 만들어 주기 위해 부모인 Weapon에 함수를 정의해준다.

2. UI에 on, off를 확인하기 위해서는 속해있는 컴포넌트에서 진행해야한다.

3. 컴포넌트를 통해서 명령을 내려줄 것이므로, 조건 체크를 해준다.

CWeaponComponent.h
CWeaponComponent.cpp

1. Weapon에 선언했던 ToggleAutoFire를 컴포넌트에서 연결해준다.

CPlayer.cpp

1. 플레이어로 가서 키 연결해주기.

 

1. 키를 눌러서 AutoFire 켜주면 연사로 발사가 가능하고, 끄면 단발로 발사되는걸 볼 수 있다.

 

CWeapon.h
CWeapon.h
CWeapon_AR4.cpp
CWeapon.cpp

1. 반복해서 나가는 시간을 설정해주기 위해 TimerManager를 사용

2. 간격을 설정해준다.

3. Begin, End에서 조건 판단 후 실행 해제 반복

4. 이제 연사를 하다가 키를 눌러 연사모드를 해제해도 계속 나가는 버그가 해결된다.

 

CWeapon.h
CWeapon.cpp

1. 1인칭에서 움직이면 카메라를 벗어나느 현상 발생. 부드럽게 따라가는 현상 때문에 발생하는거라 꺼줘야한다.

2. springArm에 있는 CameraLag 꺼준다.

3. 이제 조준상태로 움직여도 흔들림이 사라질 것이다.

 


CWeapon.h
CWeapon.cpp
CWeapon_AR4.cpp

1. 반동을 넣어줄 것이다. 좌우위아래 전부를 흔들어 주는게 정석이지만, 위아래만 흔들려도 좌우가 같이 흔들리는 것처럼 보인다.

2. Pitch값이 뒤집어져 있다는걸 생각하고, 음수로 값을 준다. 그리고 랜덤으로 반동을 결정.


1. 반동이 있고 에임이 있다면, FPS에서는 탄퍼짐 각도와, 에임이 벌려지는 각도를 일치시켜서 벌어지는 느낌을 줘야한다.

2. 하지만 어려운 부분이있어 간단하게 에임만 벌어지도록 만들어 보겠다.

3. UI를 BP에서 다루는게 아닌 C++에서 다뤄보겠다.

4. 위젯을 생서해준다.

 

1. 부모를 만들어 준 위젯으로 변경해준다.

2. 사용하게될 팔레트 재료들. Border를 4개 추가해서 상하좌우로 이름 변경.

3. 이미지를 4개 넣을것이므로, 추가해준다.

 

1. Top 영역.

2. Alignment 수치를 조절해서 사각형 4개를 사용하여 조준점 위치를 잡을 것이다.

3. X를 0.5로 정중앙, Y를 1.5로 올려준다.

1. Bottom 영역.

2. Alignment, Y축을 - 0.5로 줘야 아래로 내려간다. (0.5로 준 이유는 현재 기준이 화면 중앙에 잡혀있기때문)

3. 또 한 UI축이 뒤집혀져있기 때문.

1. Left 영역.

2. Alignment 는 동일하게 주고, 새로가 아닌 가로로 만들어 줘야하므로, Image Size에 X, Y를 뒤집어서 수치를 준다.

1. Right 영역.

2. Alignment, X축 -0.5, Y축 0.5로 설정. 뒤집혀있으므로 X축이 음수가 된다.

 

1. 상속 받은 UUserWidget로 가서 virtual된 함수를 override해서 사용한다.

 

1. 아까 만들어 놓은 위젯에 이 구조를 Tree구조라고 위젯에서는 부른다.

CUserWidget_CrossHair.h
CUserWidget_CrossHair.cpp
CUserWidget_CrossHair.cpp

1. 위젯에 설정해 놓은 재료들인 border를 가져다가 넣어준다.

2. 화면에 나올수 있도록 변환해주기.

CWeapon.h
CWeapon.h
CWeapon.AR4.cpp

1. 에임 UI는 총기마다 다른 크기로 사용될 것이므로, 선언 후 사용할 총기로 가서 작업해줘야 한다.

2. 구현해놓은 AR4로 가서 받아오기.

CWeapon.cpp

1. Begin_Play에서 체크해준다.

2. 크로스헤어 생성.

CWeapon.cpp

1. End_Equip에서 보여주기.

2. 이제 숨겨야하는 모션을 찾아야한다.

CWeapon.cpp

1. End_Equip에서 보여준걸 다시 숨겨준다.

 

 

https://www.youtube.com/watch?v=-DlkQkhn4X8 

 

'언리얼' 카테고리의 다른 글

UE4 Magazine, Reloa  (0) 2023.03.28
UE4 Weapon CrossHair, Reload  (0) 2023.03.27
UE4 TPS Weapon Fire, Sound, Widget  (0) 2023.03.22
UE4 TPS Weapon IK, Fire  (0) 2023.03.22
UE4 TPS Weapon, AnimNotifyState  (0) 2023.03.17
Comments