언리얼엔진 BP 공부 복습용 -6- 캐릭터 점프

우선 점프를 하려면 점프 키가 있어야하니 액션 매핑에 스페이스바 이름은 Jumping으로 해주자.

자 블루프린트 무브이벤트에서 빈곳에다 Jumping 을 불러와주고

그냥 점프를 추가해주면 끝!
언리얼에서 지원해주는 점프기능이다
하지만 실제로 쓴다면 아마 그냥 캐릭터가 멈춘상태로 위아래로만 움직인다.
애니메이션을 넣어주자
조건은 공중에 떠있을때 점프모션을 출력해주면 될것이다.
예전에 만든 애니메이션 블루프린트를 열자

그리고 탭에 Anim 그래프를 클릭
우리가 만든 스테이트 머신을 더블클릭

여기서

빈칸에 우클릭 새로운 스테이트를 추가시켜주고

점프스타트라고 해주자
점프 스타트를 들어가고

오른쪽에 에셋브라우져를 눌러서 현재 가지고있는 애니메이션을 본다.
그후
점프 스타트 부분을
끌어다 넣어주자,.

이렇게됫다면 다시 나가자 위에 Default를 누르면된다.

이렇게 점핑과 점프엔드도 똑같이 해주자.

자이제 무브에서 마우스를끌어다 화살표로 다음 동작을 연결시켜줄수있는데

이렇게 만들어 줍시다.
그이후에 선가운데에 무슨 트레이드?

이표시가 있는데
저표시가 이제 어떤경우에 갈것인지 체크해주는 녀석이다.
우선 점프스타트의 조건만 만족하면 나머지는 다시 돌아 무브로 올것이기때문에
무브에서 점프스타트 부분으로 가는부분만 더블클릭해서 들어가보자.

보면 이렇게 횡한데
이제 저 빨간색 (Bool)이 트루일때만 보내준다는것이다.
우리는 지금 공중상태일때를 검사해줘야하므로 우선 변수를하나만들어주자.

옆쪽에 변수추가를 통해 이름은 Falling 타입은 bool 타입으로 하나 만들어주자

그리고 겟으로 가져와 꼿아주면 된다.
자우선 무브에서 점프시작의 조건은됫지만
점프시작에서 점핑중 그이후 점프끝은 자연스레 연결시켜야하기때문에
그냥 어느정도 시간이 지나면 재생시켜주자.

이제 보면 Time Remaining이 시간지나면 다음으로 보내주는 함수이지만 두개가 보면 하나는Ratio가 있다
이는 재생의 퍼센트를 나타내며 아래는 정확한 시간을 말해준다.
간단하게말하면 위에거에서 0.8로하면 80퍼센트 재생하고 다음동작을 재생시켜주고 아래꺼에서 0.8을하면 0.8초 남았을때 다음동작을 재생시켜주는것이다. 보통은 ratio를 많이쓰는편이다 더 자연스럽기 때문.

이후 < 연산자를 넣어주고

이렇게 0.5로하면 저 스타트가 0.5퍼센트 재생됬을때 트루를 내보내주고 이제 점핑애니메이션을 보여줄것이다.
점프끝 -> 무브 도 이처럼 만들어주자.

점프끝은 한 0.8정도
자그럼 이제 문제의 점프중 -> 점프끝 부분인데 우선 점프중은 루프모션이고 땅에 닿지않은 이상 계속출력해줘야하기때문에 Falling을 계속 검새해주어야한다. (falling이 땅과 떨어졌을때 ture를 주는값이기때문)
그러면 점프끝으로 가는경우는? 바로 Falling이 faluse가 될때다

그럼이렇게하면 'falling이 faluse다 ' 이게 ture가되며 끝 애니메이션을 재생시켜줄것이다.
자
그럼 우리는 이제 이 Falling이 True인지 faluse인지 확인하는 함수 블루프린트를 만들어주자.
저기 위쪽에 이벤트 그래프 선택

우리가 저번에 만들엇던 스피드 다음에 Falling을 set으로 가져와준다
그이후 저 Falling을 넣어줘야하는데
공중에 떠잇는지 검사해주는게 너무 편하게도 언리얼에서 지원해준다.
하지만 캐릭터에있는 함수이기때문에
우선

저 함수를 갖고오고 그 줄을 또 드래그해서


이렇게 만들어주자 이러면 BP_Character에서 사용할수 있는 함수를 불러올수있다.

그이후 무브먼트를 가져와주고

Is Falling 을 가져와주자. 이게 바로 공중인지 알려주는 편리한 기능

자 이제 완료된거처럼 보이지만 저 형변환에 실행 핀을 꼿아줘야한다
하지만 선은 하나.. 이럴때 사용하는것이 시퀀스다.

이렇게 하면 끝!

자 실행해서 잘 되는지함보자.

떨어질때도 계속 출력해주는지 확인해주자.
자 이제 우선 여기까지 해보자.