1. ABP_Slingshot 새총 애니메이션 블루프린트

(1) 스테이트 머신 생성

 

새총의 Idle 상태를 Main으로 하는 스테이트 머신을 생성한다.

 

(2) SKM_Goblin 소켓 이름 변경

고블린의 오른손 소켓 이름을 변경한다.

 

 

(3) ABP_Slingshot 이벤트 그래프 수정

블루프린트가 초기화되면 Owner의 메시를 가져온다.

매 틱마다 메시에서 오른손 소켓을 가져와 멤버 변수로 설정한다.

 

 

(4) ABP_Slingshot 애님 그래프 수정

본 트랜스폼 노드를 사용하여 오른손 소켓에 대한 이동과 회전을 가져올 것이다.

해당 노드의 디테일 창에서 새총의 본에 가져온 이동과 회전을 적용한다.

 

 

(5) BP_Goblin_Slingshot 새총 고블린 무기에 애님 클래스 할당

Weapon 컴포넌트를 클릭하고 애님 클래스를 지정한다.

 

 

2. 새총 발사 몽타주 재생

(1) ABP_Slingshot 애님 그래프 수정

기본값으로 true를 가지는 멤버 변수를 생성한다.

부울로 포즈 블렌딩을 사용하여 고블린이 파우치를 잡고 있지 않을 때는 새총이 Idle 애니메이션 상태로 있을 것이다.

 

 

(2) AM_Montage_Goblin_Slingshot 몽타주 수정

기본적으로 에셋에 있는 스켈레톤 노티파이 두 개를 이용하여 돌을 놓는 지점과 다시 파우치를 잡는 지점에 노티파이를 생성한다.

 

 

(3) AuraCharacterBase - 무기를 블루프린트에 노출시키기

	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Combat")
	TObjectPtr<USkeletalMeshComponent> Weapon;

무기의 메시를 가져와 사용하기 위해 블루프린트에 노출시킨다.

 

 

(4) ABP_Goblin_Slingshot

이제 새총 고블린에게서 무기의 메시를 가져와 멤버 변수로 지정할 것이다.

 

(4-1) Release Rock 애님 노티파이

해당 노티파이가 작동하면 HoldingPouch 변수를 false로 만들고 새총이 전진하는 몽타주를 재생한다.

ABP_Slingshot 멤버변수가 유효하지 않으면 다시 Owner를 가져와 캐스팅 후 Set한다.

 

(4-2) Grab Pouch 애님 노티파이

 

이제 새총이 제대로 당겨지고 놓아지는지 확인한다.

 

 

3. 디버그

(1) 카메라 충돌 수정

생성되는 투사체인 BP_SlingshotRock이 카메라와 충돌한다면 콜리전을 수정하여 카메라 채널을 무시하도록 한다.

 

(2) 새총 고블린이 이동할 때 미끄러짐

애니메이션 초기화 이벤트에서 부모의 함수 호출한다.