Time of Flight


을 사용한다.

 

 

 

 

 

 

 

Maximum Height (Peek Height)


을 사용한다.

 

 

 

 

Range


을 사용한다.

 

 

 

 

출처 : https://www.youtube.com/watch?v=WO7jj6LTjp8&ab_channel=IIT-JEEPhysicsClasses

공격에 사용할 AnimNotifyState를 하나 생성한다.

 

생성한후 실행하여 다음과 같이 오버라이트 한다.

 

사용할 몽타주를 열어 적절한 공격에니메이션 시간에 배치한다.

 

AnimNotifyState는

Start, Tick, End 이벤트가 설정한 위치에서 실행된다.

 

 

이후,

AnimNotifyState를 다음과 같이 수정한다.

 

SphereTrace 생성하기 위해서 매쉬의 LeftHand와 RightHand 로케이션을 사용 하였다.

원하는 것을 사용하면 된다.

 

이제 게임을 실행해 적을 공격해 보면 다음과 같이 보인다.

 

보다시피, 순식간에 수많은 공격이벤트가 들어가기때문에 추가적인 로직구성을 해야한다.

 

다음 게시물에서 이어서 진행한다.

https://gamdekong.tistory.com/205

 

Mongtage(몽타주)이용하여 공격 에니메이션 구현하기

다음 게시물을 이어서 작성한다. https://gamdekong.tistory.com/203?category=954310 Blend Space 2d 사용하여 에니메이션 적용하기. 우선 에니메이션을 적용시키기 위한 캐릭터를 상속받아 블루프린터를 생성한.

gamdekong.tistory.com

 

저번 게시물에서 공격을 마무리 하기 위해

bIsAttacking을 false상태로 돌려야 한다.

 

몽타주에 Anim Notify를 적용해보자.

 

Nofies 탭에서 오른쪽 버튼 클릭하여  다음과 같이 생성한다.

 

그후 에니메이션 블루프린트에서 다음과 같이 수정한다.

 

게임을 실행해보면, 공격후 다시 공격이 가능한 것을 볼 수 있다.

 

 

 

 

다음은 공격시 데미지를 주기 위해서 Anim Notify를 이용하여 구현한다.

데미지를 구현하는 방법은

1. Line Trace Method

2. Collision Method

두가지 방법이 있지만 여기서는 Collision Method를 이용한다.

 

일단 공격할 적을 대충 블루프린트로 만들어보자.

위 에너미를 공격 할 것이다.

 

 

공격에 사용할 컬리전 컴퍼넌트를을 생성하여 캐릭터에 붙인다.

FistCollision 을 Mesh 컴퍼넌트의 LeftHand에 붙였다.

소켓 이름은 Skeleton에 들어가면 볼 수 있고 원하는 곳에 붙이면 된다.

 

붙이 콜리전모양을 수정해 보자.

이 FistCollision에 충돌구현을 해준다.

Generate Overlap Events 는 일단 false로 설정해 둔다.

 

공격 몽타주에 Anim Notify를 설정한다.

 

공격이 들어가는 에니메이션 시간에 다음과 같이 추가한다.

에니메이션 블루프린트에 다음고 같이 추가한다.

 

위와같이 공격시 컬리전 오버랩을 활성화 하고 끝날때 비활성화 한다.

 

게임을 시작해보면 적을 공격해 보면 데미지가 들어가는것을 확인 할 수 있다.

 

 

+ Recent posts