본문 바로가기

Unreal Engine 5/모작프로젝트_OrcsMustDie!3

언리얼 엔진 5 1-2. 캐릭터 무기 만들고 손에 쥐어주기

반응형

캐릭터 움직임은 대략 설정 했으니 이제 캐릭터에 각종 무기를 입히는 방법을 알아보자.

 

 

--------------------------------------------------- (수정) ---------------------------------------------------

여기에 사용된 각종 Idle 애니메이션이랑 무기는

이걸 Add To Project해서 사용했다.

--------------------------------------------------- (수정) ---------------------------------------------------

 

1. 가장 먼저 필요한 폴더를 만들어보자

 

 

2. 이후에 Enums에서 Blueprints -> Enumeration을 만들고 WeaponType이라고 이름 짓고 아래와 같이 추가하자(일단 무기는 6개 있다고 가정하자)

 

3. Structs에서 Blueprints -> Structure을 만들고 WeaponData로 이름 지어준 후 아래와 같이 3개를 만들어준다. IconImage는 Texture 2D (Object Reference)로 만들어둔다.

 

4. 이후 Weapons 폴더 안에 Actor Blueprint를 하나 만들고 이름을 BP_WeaponBase로 지어주고 Structs의 WeaponData의 WeaponToSpawn을 BP_WeaponBase Class Reference로 바꿔준다.

 

5. Blueprints의 BP_WeaponBase에 들어가서 Scene이랑 SkeletalMesh를 추가해준다.

 

6. 이후 Scene을 이용해 DefaultSceneRoot를 중첩시켜준다.

 

 

7. BP_WeaponBase에서 필요한 Variable를 추가하기 위해 SocketName이라는 Name 변수 하나랑 WeaponType이라는 WeaponType 변수를 하나 만들자(WeaponType 변수는 우리가 만든 WeaponType Enum이다.)

 

 

8. 이제 실제 총을 하나 만들기 위해 Weapons 폴더로 돌아온 다음에 BP_WeaponBase의 아들을 하나 만들고 이름에 AssaultRifle를 추가해준다.

 

 

9. BP_WeaponBase_AssaultRifle에 들어가서

1) GunMesh의 Skeletal Mesh를 Assault_Rifle_A를 입히고

2) Show Inherited Variables를 통해 상속된 변수를 보이게 하고 

3) WeaponType을 AssaultRifle로 바꾸고

4) SocketName을 AssaultRifle_Socket으로 초기화시킨다.

 

 

10. 8 ~ 9를 똑같이 Pistol에 관해서 진행해준다.

 

 

11. 내가 사용하는 캐릭터 (BP_PlayerCharacter의 SkeletalMesh를 찾아서)에서 내가 무기를 쥐어주고 싶은 곳에 가장 근접한 Socket을 찾는다. (Weapon Socket이 따로 있으면 좋지만, 나는 없어서 중간 손가락으로 골랐다.) 이후에 BP_WeaponBase의 SocketName을 middle_01_r처럼 이 소킷에 초기화시켜준다 (혹시 모르니깐 하는거라 꼭 할 필요 없음).

 

 

12. 이후

1) 해당 위치에 AddSocket을 해서 우리가 필요한 (AssaultRifle_Socket이랑 Pistol_Socket)것을 만들어주고

2) 우측상단에 Details 말고 Preview Scene Setting를 눌러 Preview Controller를 Use Specific Animation으로 바꿔주고 Preview Controller을 Idle Rifle인 상태로 바꿔준다. 

 

13. 이후 우리가 원하는 Socket에 AddPreviewPreset을 통해 AssaultRifle를 배치한 후 나타난 총의 위치를 직접 조정하거나 우측상단 Details에서 Location, Rotation 등을 조정한다. 이후에 RemoveAllAttachedAssests를 해주고 Pistol에 대해서도 똑같이 해준다.

 

14. 여기까지 끝!!!!

 

 

 

-------------------------------------------------------------------------------------------- 더 알아볼 것!!! -----------------------------------------------

언리얼 엔진에서 Texture 2D "Object Reference"가 뭔지 찾아보자.

반응형