초보 코린이의 성장 일지

UE4 Miaxmo, AK47 본문

언리얼

UE4 Miaxmo, AK47

코오린이 2023. 3. 29. 14:17

1. 만들어 놓은 백팩을 소켓에 장착시켜 줄 것이다.

2. spine_02에 소켓 생성을 해준다.

3. 프리뷰 애셋을 적용한 상태. 수치들은 자연스럽게 보이도록 설정해준다.

 

CPlayer.h
CPlayer.cpp
CPlayer.cpp

1. 컴포넌트 생성해주면서, Mesh에 붙여준다.

2. 혹시 모를 백팩과 총에 충돌때문에 Collision을 꺼준다.

3. 이제 장착이 완료된다.


 

 

1. 다음 무기인 AK47을 만들기 위해 파생 클래스를 생성해준다.

2. AK47은 만들었던 AR4와 다른점이 모양과 색상밖에 없다. 그래서 복사를 몇가지만 수정 후 해서 그대로 사용하게 될 것이다.

CWeapon_AK47.h
CWeapon_AK47.cpp
CWeapon_AK47.cpp
CWeapon_AK47.cpp

1. 조절해준건 위치값과 쏘는 속도

2. 몽타주와 AK47 무기의 레퍼런스 주소 제외하고는 동일하다.

3. Begin_Equip와 End_Equip는 나중에 다루게 될 것이다. 이유는 AK는 왼편에서 무기를 뽑는 모션이 들어가므로, 설정이 따로 필요하다.

 

1. c++에서 소켓 위치를 설정해준 것처럼 동일하게 Mesh에서 소켓을 추가해서 프리뷰 애셋을 추가해서 수치까지 설정해준다.

1. 교체해줄 탄창도 동일하게 소켓을 추가해서 만들어 준다.

 

1. Player로 가서 Weapon에 만들어 준 AK47를 사용할 수 있도록추가해준다.

2. 이제 장착을 시켜주러 가볼 것이다.

CWeaponComponent.h
CWeaponComponent.cpp
CPlayer.cpp

1. 컴포넌트에서 동일하게 코드 작성, 플레이어로가서도 알맞은 모드로 설정해준다.

1. 애니메이션으로 가서 AK47 핀을 추가해주고, 포즈를 만들어서 이어준다.

 

1. 왼손도 동일하게 AK를 들었을때 IK가 잘 적용된 걸 볼 수 있다.

2. 위에 보시다 시피 AK는 왼편에서 왼손으로 꺼내서 오른손으로 이동하면서 장착이 된다.

3. 하지만 왼손 몽타주가 없어서 모션을 반전시켜서 사용할 것이다.

4. 지금 우리가 사용하는 Mesh를 반전시키면, 머터리얼이 깨지는 현상이 발생하기 때문.

 

 

1. Mixamo 사이트에서 T Pose 모션과 애니메이션을 다운받아서 가져온다.

2. 다운 받을 때 주의해야하는 점은 반전시켜야 하기 때문에 Mirror를 체크해서 다운 받아준다.

1. 그리고 플러그인을 다운받아서 사용할 것이다.

 

 

1. 다운받은 모션과 포즈를 임포트 시켜준다.

2. Use TO As Ref Pose를 체크해줘야한다. T 포즈를 설정해주고, 임포트 시켜준다.

3. 어차피 리타겟팅을 통해 포즈를 변경시켜 줄 것이다.

 

1. 릭을 휴머노이드로 설정해주고 저장해준다.

2. Mesh 우클릭해서 Retarget Mixamo를 눌러 현재 사용하는 Mesh로 설정해준다.

3. 그리고 Mesh로 들어가 좌측하단에 포즈보기를 눌르면, Y Pose로 변환된걸 볼 수 있다.

 

1. 사용할 AK47 애니메이션을 가져와 몽타주로 생성해준다.

 

1. Equip 를 넣어주고, 커브를 왼손으로 설정해서 조절해준다.

2. 자연스러워진건 맞지만, 왼손에서 오른손으로 이동하는건 다른 곳에서도 설정을 해줘야한다.

 

1. 왼손에 탄창이 가도록 만들어줘야 하므로 소켓 생성.

 

 

1. 부모인 Weapon에서 Begin_Equip, End_Equip가 오른손으로 정해져있기 때문.

2. Begin_Equip때 왼손에 붙어있는 상태에서, End_Equip때 오른손으로 보낼것이다.

3. 그래서 가상으로 받아서 재정의해서 자식에서 사용하게 만들 것이다.

 

CWeapon_AK47.h
CWeapon_AK47.cpp

1. 왼손은 AK47만 사용할 부분이라, 소켓을 공통으로 사용하지 않을것이므로, 따로 선언해준다.

CWeapon.h
CWeapon_AK47.h
CWeapon_AK47.cpp

1. 부모에 함수를 재정의해서 사용하기 위해 override

2. 잘 생각해봐야 할게 있다. 부모에 Begin_Equip는 오른손에 붙이는 작업을한다. 하지만 여기서는 왼손에 붙여야하므로, Super을 해버리면 안되므로, 왼손 소켓으로 바꿔준다.

3. End_Equip에서는 왼손에 Begin_Equip를 걸처서 -> 왼손에서 오른손으로 넘어온다 -> 그러면 오른손에서 장착이 완료되고 해제도 오른손에서 진행되므로 -> 부모의 Begin_Equip를 호출해서 자연스럽게 만들어주고, End_Equip로 해제해준다.

 

1. 이제 동작이 자연스럽게 변경된다. 하지만 자연스럽게 나오는 이유중에 하나는 애니메이션 블렌드 포즈에 시간으로 자연스럽게 섞이기 때문에 그런 효과가 나오는 것이다.

 

1. AK47를 발사했을때, 탄이 나가는 발사 궤적이 보이지 않는다. 

2. 소켓에 넣어주지 않았기 때문이므로, 소켓을 추가해준다.

3. 이미 코드에서는 넣어놓은 상태이므로, 잘 나오게 될 것이다.

1. 총열에서도 나오는 효과도 주기위해 소켓을 동일하게 하나 추가해준다.

2. 이제 효과가 나오는걸 볼 수 있다.

 

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

 

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

UE4 FPS Pistol  (0) 2023.03.31
UE4 FPS AK47, DotSight  (0) 2023.03.30
UE4 Magazine, Reloa  (0) 2023.03.28
UE4 Weapon CrossHair, Reload  (0) 2023.03.27
UE4 TPS Weapon AutoFire, Widget  (0) 2023.03.24
Comments