점프 애니메이션을 Unity와 통합하는 방법

오늘 저는 Blender에서 첫 점프 애니메이션을 마쳤으며 Unity에 통합하고 싶었습니다. 나는“점프 버튼을 눌렀을 때 점프 애니메이션을 트리거하면 바로 그 것입니다!”와 같은 일을해야한다고 생각했습니다. 근처에도 안!

나는 이것을했고 그 결과는 ... 내가 기대했던 것과는 다릅니다.

앞서 설명한 프로세스가 특정 경우에는 작동하지만 슬프게도 내 경우에는 작동하지 않을 것이라고 확신합니다.

더 긴 방법으로 가야했습니다.

점프에 대한 빠른 살펴보기

규칙적인 점프는 세 단계로 나눌 수 있습니다 :

  • 점프의 충동 : 캐릭터가 충동과 점프를 할 때.
  • 떨어지는 단계 : 우리 캐릭터가 공중에서 안정을 유지하려고 할 때.
  • 착륙 단계 : 여전히 공중에있는 캐릭터가 땅에 닿을 준비를하고있을 때.

게임에서 어떻게 작동합니까?

플레이어가 스페이스 바를 누르면 (확실히 점프 버튼 ) 점프 애니메이션이 트리거됩니다.

플레이어가 공중에 들어 오면 또 다른 애니메이션이 시작됩니다. 떨어지는 위상은지면에 도달 할 때까지 반복됩니다.

그러면 착륙 애니메이션이 시작되지만 미묘하게 나타납니다. 캐릭터가 바닥에 도달했을 때이 애니메이션이 시작되면 너무 늦습니다! 이 단계에서 우리는 우리가 땅에 닿을 것임을 알고 있습니다 (단지 볼 수 있기 때문에). 따라서, 우리는 거리를 쉽게 평가하고 공중에있는 동안 충격에 대비할 수 있습니다.

우리가 점프 할 때 어떻게 행동하는지 생각해 보자! 우리가지면에 부딪히는 것을 볼 때, 우리는“충격”에 대비할 준비를하고 있습니다. 우리는 지상에 대한 비전을 갖고 준비가 필요할 때 신속하게 평가할 수 있기 때문에 가능합니다.

우리의 경우에 빠진 것은 지상에서 캐릭터의 거리를 평가하는 것입니다! 캐릭터에서지면까지의 거리를 평가하는 한 가지 방법을 소개하겠습니다. 그러나 다른 방법도 있습니다. 다른 게임 엔진에서 사용할 수 있습니다.

비결은 캐릭터의 속도 방향으로 캐릭터의 광선을 비추는 것입니다. 그런 다음 도달하기 직전에 적시에 착륙 애니메이션을 트리거 할 수 있습니다! 🥳

준비된?

Unity로 구현

Unity에는 Raycast라는 도구가있어 원하는 것을 정확하게 제공합니다.

우리는 두 단계로 진행합니다 :

  • 지면에 닿기 전에 거리를 결정하기 위해 속도 방향으로 레이 캐스트를 보냅니다.
  • Unity에서 세로 축 y의 속도가 음수이고 (너무 떨어지고 있음)지면이 너무 가까운 경우 착륙 애니메이션이 트리거됩니다.

완벽하지만 이제 게임에 뛰어 들면 스크립트가 적시에 애니메이션을 트리거합니다. 무한대로! ️