언리얼4 무기 줍기

Intro

  • 언리얼4 무기 줍기

무기 액터 제작

총기 스태틱메시와 캡슐컴포넌트 추가

1

이벤트 그래프

2

타임라인을 이용한 360도 회전효과를 주고 캡슐 트리거에 Begin Overlap 이벤트가 발생하면 블루프린트 인터페이스를 이용해 EquipWeapon 메시지전송후 액터 삭제

5

새로운 Collision 프리셋을 만들어 캐릭터만 Overlap 이벤트가 발생하도록함

변수 선언

Player.h

UPROPERTY(VisibleAnywhere, BlueprintReadWrite)
bool CheckWeapon;

Player.cpp

CheckWeapon = false;

캐릭터 클래스에 무기를 들고있는지 체크하는 bool 변수 선언후 초기값을 false로 둠

Equip Weapon 이벤트

트리거에서 받은 이벤트 발생시 Hand소켓에 무기 부착후 CheckWeapon 변수를 True로 바꿔준다.

3

애니메이션

CheckWeapon을 리턴해주는 함수 선언

Player.h

bool GetWeaponState();

Player.cpp

bool AFPSPlayer::GetWeaponState()
{
	return CheckWeapon;
}

AnimInstance에서 받아오도록함

AnimInstance.h

UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Pawn, Meta = (AllowPrivateAccess = true))
bool WeaponState;

AnimInstace.cpp

auto Character = Cast<AFPSPlayer>(Pawn);
if (Character)
{
    IsInAir = Character->GetMovementComponent()->IsFalling();
    CurrentWalkSpeed = Character->GetMovementComponent()->GetMaxSpeed();
    WeaponState = Character->GetWeaponState();
}

받아온 변수를 이용해 무기를 든상태의 애니메이션과 블렌딩

4

실행결과

44

참고문서

이득우, 이득우의 언리얼 C++ 게임개발의 정석,2018, 314쪽

댓글남기기