Home [UE5 TPS 제작기] 10. Weapon Actor 생성
Post
Cancel

[UE5 TPS 제작기] 10. Weapon Actor 생성

이제 무기를 만들 차례이다.

TPS게임에서 무기는 소총, 권총, 칼 등 다양하게 존재하는데 우리는 소총만 생각해서 만들 것이다.(공부하는 거니까!)

1. 코드 생성

Weapon은 Actor이기 때문에 Actor를 부모클래스로 하는 C++ 클래스 파일을 만들자

그리고 Weapon을 부모 클래스로 하는 AssaultRifle C++ 클래스 파일도 생성하자

img

1
2
3
4
5
6
7
8
9
class TPS_PROTOTYPE_API AWeapon : public AActor
{

}

class TPS_PROTOTYPE_API AAssaultRifle : public AWeapon
{

}

게임에서 총 게임을 할 때 가장 기본적으로 필요한 정보는 아래와 같을 것이다.

  • 탄약 개수
  • 재장전 시간

그리고 코드로는 아래와 같이 작성할 수 있다.

총모델링은 스켈레톤 메시로 되어 있다. 
그래서 class USkeletalMeshComponent* _skeletalMeshComponent 가 필요하다.

AWeapon 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
UCLASS()
class TPS_PROTOTYPE_API AWeapon : public AActor
{
	GENERATED_BODY()
	
	UPROPERTY(EditAnywhere, meta = (AllowPrivateAccess = "true"))
	class USkeletalMeshComponent* _skeletalMeshComponent;
public:	
	// Sets default values for this actor's properties
	AWeapon();
    
	inline int GetAmmoCount() { return _ammoCount; }
	inline float GetReloadingDelayTime() { return _reloadingDelayTime; }
protected:
	UPROPERTY(EditAnywhere,Category ="Weapon Properties", meta = (AllowPrivateAccess = "true"))
	int _ammoCount = 30;
	UPROPERTY(EditAnywhere, Category = "Weapon Properties", meta = (AllowPrivateAccess = "true"))
	float _reloadingDelayTime = 3.f;

	// Called when the game starts or when spawned
	virtual void BeginPlay() override;

public:	
	// Called every frame
	virtual void Tick(float DeltaTime) override;

};
1
2
3
4
5
6
7
8
// Sets default values
AWeapon::AWeapon()
{
 	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;
	_skeletalMeshComponent = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("Skeletal Mesh"));
	_skeletalMeshComponent->SetupAttachment(GetRootComponent());
}

2. BP 생성

코드 생성 후 AssaultRifle C++ 파일 기반으로 BP 클래스를 생성해 주면 끝이다.

img_1

이후에 계속 개발을 진행하면서 필요한 내용들을 추가할 것이기 때문에 뒤의 글에서 수정되는 내용들도 확인해 보자!

This post is licensed under CC BY 4.0 by the author.

[UE5 TPS 제작기] 9. State Machine을 이용한 Idle, 이동 애니메이션 제작

[UE5 TPS 제작기] 11. Skeletal Mesh Socket을 이용한 무기 장착