초보 코린이의 성장 일지

UE4 Weapon CrossHair, Reload 본문

언리얼

UE4 Weapon CrossHair, Reload

코오린이 2023. 3. 27. 16:50

에임에 기본값에서 쏠때 벌어지는각을 최대값으로 생각하고 천천히 비율을 구해서 벌어지게끔 만들어 볼 것이다.

 

CUserWidget_CrossHair.h
CUserWidget_CrossHair.cpp
CUserWidget_CrossHair.cpp

1. 에임을 만들때 상하좌우 4개를 따로 만들어서 에임처럼 만들었다.

2. 4방향을 동일하게 for문을 돌려주기 위해 enum으로 만들어준다.

3. 현재값, 최대값을 Lerp로 돌려서 비율로 천천히 에임이 벌어지도록 코드 작성.

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

1. 부모인 Weapon에서 선언해준다.

2. Weapon에서 기본인 초기상태를 세팅해준다.

3. 벌어지는 각을 중첩시켜서 값을 넣어준다.

4. 계속 쏘는 상태에 값 변동은 Tick에서 진행.

5. 사용할 곳 AR4로 가서 값을 설정해준다.

 

 

1. 쏘는 만큼 점차 에임이 벌어지는걸 확인 할 수 있다.

 


 

1. 총알을 만들어 줄 것이다.

2. 모양을 잡아주고, 머터리얼을 생성해 추가해줘서 총알 색을 표현해줄 것이다.

3. 머터리얼 생성.

1. 알맞은 위치에 생성 후 연결.

2. 인스턴스로 생성해준다.

 

1. 색을 노란색으로 지정 기능을 하나씩 확인해 볼 것이다.

Specular = 정반사광, 빛을 받는 부위에 주는 효과

Loughness = 거칠기, 빛에 흡수를 강하게 한다. 강할수록 반사가 덜 일어나게된다.

Metalic = 재질을 표현한다, 0금속, 1비금속 

Emissive = 검은색 맵안에 검은색 옷을 입은 캐릭터가 있다면 캐릭터색이 묻히게 되는 현상을 방지하기 위해 외각선 색을 주게된다.

1. Metalic 값 1을 준 상태.

1. Loughness 값 1을 준 상태, 반사광이 많이 사라진다.

1. Emissive 값이 1보다 아래라면, 베이스 컬러를 대체를 한다.

2. 만일 1보다 큰 값이 들어가면, 밖으로 색을 방출하게 된다.

3. 언리얼 조명에서만 적용되는 방법일뿐, DX에서는 다르게 표현된다.

1. 1의 수치가 넘어가면 방출되면서 색이 변한다.

2. 우선 총알에 사용할 머터리얼 색은 이렇게 완료가된다.


 

CBullet.h
CBullet.cpp
CBullet.cpp
CBullet.cpp

1. 총알을 표현하기 위해, 설정

2. 만든 머터리얼을 입혀준다.

3. 쏘는 속도 설정.

4. 총알이 캡슐이므로, 소멸을 시키지 않으면, 캐릭터 캡슐과 충돌이 일어나기 때문에 자연스럽게 소멸하도록 설정.


CWeapon.h
CWeapon.cpp

1. 총알이 나가야 하는건 당연하게 발사상태여야 하기 때문에, Fire로 가서 세팅해준다. 

2. 나가야하는 부분은 총구여야 하므로, Mesh에서 소켓을 생성해준다.

3. 총구에서 정해놓은 총알이 자연스럽게 나가게 된다.

 


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

1. uint8로 선언한것은 0 ~ 255인 1byte를 나타내는 것으로, 255발로 지정해 놓은 것이다.

2. 현재 탄수를 지정해 놓고 0이 되었을때 다시 장전시 갈아주는 방법으로 구현할 것이다.

3. Weapon에서 선언 후 사용할 무기로 AR4로 이동하여 시작 30발로 설정해준다.

 

CWeapon.h
CWeapon.cpp
CWeapon.cpp

1. 장전 조건들을 체크해준다.

2. 몽타주 실행.

CWeaponComponent.h
CWeaponComponent.cpp

1. 컴포넌트를 통해 명령을 전달.

CPlayer.cpp

1. 플레이어를 통해 실행.

 

CUserWIdget_HUD.h

1. 위젯에서 보여줘야하므로, 선언.

CWepon.h

1. 위젯에 탄수가 재장전 할때 보여야하므로, 선언

CWeaponComponent.cpp

1. 컴포넌트를 통해서 들어가므로, 이 안에서 설정해준다.

1. 현재 탄수 / 초기 탄수 값을 위젯에서 보여주기 위함.

 

1. 몽타주를 생성하고 커브를 추가해준다. 부위는 LeftHand 기준.

2. 손이 붙어있는 상황이 0, 떨어지는 상황이 1이다.

3. 손이 붙고, 떨어지는 위치에 커브를 지정한다.

 

CWeapon.h
CWeapon.cpp
CWeapon_AR4.cpp

1. CWeapon에서는 Reload일때 몽타주만 플레이해주면 된다.

2. 사용할 무기에서는 그 몽타주를 받아서 실행시켜준다.

 

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

 

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

UE4 Miaxmo, AK47  (0) 2023.03.29
UE4 Magazine, Reloa  (0) 2023.03.28
UE4 TPS Weapon AutoFire, Widget  (0) 2023.03.24
UE4 TPS Weapon Fire, Sound, Widget  (0) 2023.03.22
UE4 TPS Weapon IK, Fire  (0) 2023.03.22
Comments